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,14 +4,11 @@ class ErrsController < ApplicationController
4 before_filter :find_app, :except => [:index, :all, :destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several] 4 before_filter :find_app, :except => [:index, :all, :destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several]
5 before_filter :find_problem, :except => [:index, :all, :destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several] 5 before_filter :find_problem, :except => [:index, :all, :destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several]
6 before_filter :find_selected_problems, :only => [:destroy_several, :resolve_several, :unresolve_several, :merge_several, :unmerge_several] 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 def index 9 def index
9 app_scope = current_user.admin? ? App.all : current_user.apps 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 @problems = Problem.for_apps(app_scope).in_env(params[:environment]).unresolved.ordered_by(@sort, @order) 12 @problems = Problem.for_apps(app_scope).in_env(params[:environment]).unresolved.ordered_by(@sort, @order)
16 @selected_problems = params[:problems] || [] 13 @selected_problems = params[:problems] || []
17 respond_to do |format| 14 respond_to do |format|
@@ -24,7 +21,7 @@ class ErrsController < ApplicationController @@ -24,7 +21,7 @@ class ErrsController < ApplicationController
24 21
25 def all 22 def all
26 app_scope = current_user.admin? ? App.all : current_user.apps 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 @selected_problems = params[:problems] || [] 25 @selected_problems = params[:problems] || []
29 end 26 end
30 27
@@ -159,5 +156,11 @@ class ErrsController < ApplicationController @@ -159,5 +156,11 @@ class ErrsController < ApplicationController
159 @selected_problems = Array(Problem.find(err_ids)) 156 @selected_problems = Array(Problem.find(err_ids))
160 end 157 end
161 end 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 end 165 end
163 166
spec/controllers/errs_controller_spec.rb
@@ -114,7 +114,7 @@ describe ErrsController do @@ -114,7 +114,7 @@ describe ErrsController do
114 errs = Kaminari.paginate_array((1..30).to_a) 114 errs = Kaminari.paginate_array((1..30).to_a)
115 3.times { errs << Factory(:err).problem } 115 3.times { errs << Factory(:err).problem }
116 3.times { errs << Factory(:err, :problem => Factory(:problem, :resolved => true)).problem } 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 mock('proxy', :page => mock('other_proxy', :per => errs)) 118 mock('proxy', :page => mock('other_proxy', :per => errs))
119 ) 119 )
120 get :all 120 get :all