Commit 98f359a4ed24db7b8f3782aa7124a9f8bb2943a9
1 parent
b936ce64
Exists in
master
and in
1 other branch
fix sorting on all errors page
Showing
2 changed files
with
9 additions
and
6 deletions
Show diff stats
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 |