diff options
Diffstat (limited to 'app/controllers/lines_controller.rb')
| -rw-r--r-- | app/controllers/lines_controller.rb | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb index c6a2199c1..9a0a007aa 100644 --- a/app/controllers/lines_controller.rb +++ b/app/controllers/lines_controller.rb @@ -79,12 +79,25 @@ class LinesController < BreadcrumbController end end @q = line_referential.lines.search(params[:q]) - @lines ||= @q.result(:distinct => true).order(:number).paginate(:page => params[:page]).includes([:network, :company]) + + if sort_column && sort_direction + @lines ||= @q.result(:distinct => true).order(sort_column + ' ' + sort_direction).paginate(:page => params[:page]).includes([:network, :company]) + else + @lines ||= @q.result(:distinct => true).order(:number).paginate(:page => params[:page]).includes([:network, :company]) + end end alias_method :line_referential, :parent private + + def sort_column + line_referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'number' + end + def sort_direction + %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc' + end + def check_policy authorize resource end |
