diff --git a/app/controllers/problems_controller.rb b/app/controllers/problems_controller.rb
--- a/app/controllers/problems_controller.rb
+++ b/app/controllers/problems_controller.rb
@@ -82,9 +82,13 @@
end
def toggle
- @problem = Problem.find(params[:id])
- @problem.available = !(@problem.available)
- @problem.save
+ respond_to do |wants|
+ wants.js {
+ @problem = Problem.find(params[:id])
+ @problem.available = !(@problem.available)
+ @problem.save
+ }
+ end
end
def turn_all_off
diff --git a/app/views/problems/list.rhtml b/app/views/problems/list.rhtml
--- a/app/views/problems/list.rhtml
+++ b/app/views/problems/list.rhtml
@@ -29,7 +29,7 @@
<%= in_place_editor_field :problem, :full_name, {}, :rows=>1 %> |
<%= in_place_editor_field :problem, :full_score, {}, :rows=>1 %> |
<%= problem.date_added %> |
- <%= problem.available %> |
+ <%= problem.available %> |
<%= problem.test_allowed %> |
<%= link_to_remote '[Toggle]', :url => {:action => 'toggle', :id => problem.id } %> |
diff --git a/app/views/problems/toggle.js.rjs b/app/views/problems/toggle.js.rjs
--- a/app/views/problems/toggle.js.rjs
+++ b/app/views/problems/toggle.js.rjs
@@ -2,4 +2,5 @@
page["prob-#{@problem.id}"].className = "available"
else
page["prob-#{@problem.id}"].className = "not-available"
-end
\ No newline at end of file
+end
+page["prob-#{@problem.id}-avail"].innerHTML = @problem.available.to_s