diff --git a/app/try_ruby.rb b/app/try_ruby.rb index f3b93ca..bab28bb 100644 --- a/app/try_ruby.rb +++ b/app/try_ruby.rb @@ -381,6 +381,10 @@ def update_screen(item) step = item.step.to_s $document.at_css("#tryruby-index").value = step + # Disable the buttons that have no step to go to + $document.at_css('#btn_back').disabled = !@items.has_key?(item.step - 1) + $document.at_css('#btn_next').disabled = !@items.has_key?(item.step + 1) + # Set session cookie to store progress set_cookie('tryruby_step', step) diff --git a/source/stylesheets/application.css.scss b/source/stylesheets/application.css.scss index 0a88d6b..63e22fa 100644 --- a/source/stylesheets/application.css.scss +++ b/source/stylesheets/application.css.scss @@ -119,9 +119,13 @@ h3 { .btn-primary { border-radius: 1rem; font-family: sans-serif; - color: var(--button-primary-text-color); - background-color: var(--button-primary-color); - border-color: var(--button-primary-color); + + &, + &:disabled { + color: var(--button-primary-text-color); + background-color: var(--button-primary-color); + border-color: var(--button-primary-color); + } &:focus, &:focus:not(:focus-visible), diff --git a/spec/tutorial_spec.rb b/spec/tutorial_spec.rb index 13d67e0..7bf89b2 100644 --- a/spec/tutorial_spec.rb +++ b/spec/tutorial_spec.rb @@ -50,6 +50,8 @@ special = steps[step] || {} find(:css, "h1").text.should be == data["title"] + page.should have_button("Back", disabled: step == 1) + page.should have_button("Next", disabled: step == 56) unless special[:pass] case special[:code]