aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/lines_controller.rb
diff options
context:
space:
mode:
authorjpl2016-12-02 12:14:51 +0100
committerjpl2016-12-02 12:14:51 +0100
commit2a92002b6e4a6a54af85f8144e25944043eefb0f (patch)
tree1897142b2219b428672c5de33878be215b036e7a /app/controllers/lines_controller.rb
parent76cc4431ba302bae2edf925417f438cfcf0afd57 (diff)
downloadchouette-core-2a92002b6e4a6a54af85f8144e25944043eefb0f.tar.bz2
Refs #2015: adding sortable columns for ref_* & * (+ fix for nil values)
Diffstat (limited to 'app/controllers/lines_controller.rb')
-rw-r--r--app/controllers/lines_controller.rb15
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