Commit 98f359a4ed24db7b8f3782aa7124a9f8bb2943a9

Authored by Vasiliy Ermolovich
1 parent b936ce64
Exists in master and in 1 other branch production

fix sorting on all errors page

app/controllers/errs_controller.rb
... ... @@ -4,14 +4,11 @@ class ErrsController < ApplicationController
4 4 before_filter :find_app, :except => [:index, :all, :destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several]
5 5 before_filter :find_problem, :except => [:index, :all, :destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several]
6 6 before_filter :find_selected_problems, :only => [:destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several]
  7 + before_filter :set_sorting_params, :only => [:index, :all]
7 8  
8 9 def index
9 10 app_scope = current_user.admin? ? App.all : current_user.apps
10 11  
11   - @sort = params[:sort]
12   - @sort = "last_notice_at" unless %w{app message last_notice_at last_deploy_at count}.member?(@sort)
13   - @order = params[:order] || "desc"
14   -
15 12 @problems = Problem.for_apps(app_scope).in_env(params[:environment]).unresolved.ordered_by(@sort, @order)
16 13 @selected_problems = params[:problems] || []
17 14 respond_to do |format|
... ... @@ -24,7 +21,7 @@ class ErrsController < ApplicationController
24 21  
25 22 def all
26 23 app_scope = current_user.admin? ? App.all : current_user.apps
27   - @problems = Problem.for_apps(app_scope).ordered.page(params[:page]).per(current_user.per_page)
  24 + @problems = Problem.for_apps(app_scope).ordered_by(@sort, @order).page(params[:page]).per(current_user.per_page)
28 25 @selected_problems = params[:problems] || []
29 26 end
30 27  
... ... @@ -159,5 +156,11 @@ class ErrsController < ApplicationController
159 156 @selected_problems = Array(Problem.find(err_ids))
160 157 end
161 158 end
  159 +
  160 + def set_sorting_params
  161 + @sort = params[:sort]
  162 + @sort = "last_notice_at" unless %w{app message last_notice_at last_deploy_at count}.member?(@sort)
  163 + @order = params[:order] || "desc"
  164 + end
162 165 end
163 166  
... ...
spec/controllers/errs_controller_spec.rb
... ... @@ -114,7 +114,7 @@ describe ErrsController do
114 114 errs = Kaminari.paginate_array((1..30).to_a)
115 115 3.times { errs << Factory(:err).problem }
116 116 3.times { errs << Factory(:err, :problem => Factory(:problem, :resolved => true)).problem }
117   - Problem.should_receive(:ordered).and_return(
  117 + Problem.should_receive(:ordered_by).and_return(
118 118 mock('proxy', :page => mock('other_proxy', :per => errs))
119 119 )
120 120 get :all
... ...