diff options
Diffstat (limited to 'app/controllers/referential_lines_controller.rb')
| -rw-r--r-- | app/controllers/referential_lines_controller.rb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/app/controllers/referential_lines_controller.rb b/app/controllers/referential_lines_controller.rb index bd244d13b..4842cebc1 100644 --- a/app/controllers/referential_lines_controller.rb +++ b/app/controllers/referential_lines_controller.rb @@ -24,7 +24,16 @@ class ReferentialLinesController < ChouetteController def show @map = LineMap.new(resource).with_helpers(self) - @routes = @line.routes.order(:name).paginate(page: params[:page], per_page: 10) + + @q = @line.routes.ransack(params[:q]) + + if sort_route_column && sort_route_direction + @routes ||= @q.result(distinct: true).order(sort_route_column + ' ' + sort_route_direction) + else + @routes ||= @q.result(distinct: true).order(:name) + end + @routes = @routes.paginate(page: params[:page], per_page: 10) + @group_of_lines = @line.group_of_lines show! do build_breadcrumb :show @@ -96,6 +105,13 @@ class ReferentialLinesController < ChouetteController %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc' end + def sort_route_column + @line.routes.column_names.include?(params[:sort]) ? params[:sort] : 'name' + end + def sort_route_direction + %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc' + end + def line_params params.require(:line).permit( :transport_mode, |
