diff --git a/tracks/app/controllers/application.rb b/tracks/app/controllers/application.rb index 2d21906e..822f25ab 100644 --- a/tracks/app/controllers/application.rb +++ b/tracks/app/controllers/application.rb @@ -96,6 +96,14 @@ class ApplicationController < ActionController::Base redirect_back_or_default home_url end + def boolean_param(param_name) + return false if param_name.blank? + s = params[param_name] + return false if s.blank? || s == false || s =~ /^false$/i + return true if s == true || s =~ /^true$/i + raise ArgumentError.new("invalid value for Boolean: \"#{s}\"") + end + private def parse_date_per_user_prefs( s ) diff --git a/tracks/app/controllers/projects_controller.rb b/tracks/app/controllers/projects_controller.rb index e5395018..4d4bbd80 100644 --- a/tracks/app/controllers/projects_controller.rb +++ b/tracks/app/controllers/projects_controller.rb @@ -85,7 +85,7 @@ class ProjectsController < ApplicationController end @project.attributes = params['project'] if @project.save - if params['wants_render'] + if boolean_param('wants_render') if (@project.hidden?) @project_project_hidden_todo_counts = Hash.new @project_project_hidden_todo_counts[@project.id] = @project.reload().not_done_todo_count(:include_project_hidden_todos => true) @@ -93,7 +93,7 @@ class ProjectsController < ApplicationController @project_not_done_counts[@project.id] = @project.reload().not_done_todo_count(:include_project_hidden_todos => true) end render - elsif params['update_status'] + elsif boolean_param('update_status') render :action => 'update_status' else render :text => success_text || 'Success' diff --git a/tracks/app/views/contexts/_context_listing.rhtml b/tracks/app/views/contexts/_context_listing.rhtml index 95aa98ed..9194aec3 100644 --- a/tracks/app/views/contexts/_context_listing.rhtml +++ b/tracks/app/views/contexts/_context_listing.rhtml @@ -1,6 +1,6 @@ <% context = context_listing %>