diff options
| author | jpl | 2016-12-02 12:14:51 +0100 | 
|---|---|---|
| committer | jpl | 2016-12-02 12:14:51 +0100 | 
| commit | 2a92002b6e4a6a54af85f8144e25944043eefb0f (patch) | |
| tree | 1897142b2219b428672c5de33878be215b036e7a /app/controllers/stop_areas_controller.rb | |
| parent | 76cc4431ba302bae2edf925417f438cfcf0afd57 (diff) | |
| download | chouette-core-2a92002b6e4a6a54af85f8144e25944043eefb0f.tar.bz2 | |
Refs #2015: adding sortable columns for ref_* & * (+ fix for nil values)
Diffstat (limited to 'app/controllers/stop_areas_controller.rb')
| -rw-r--r-- | app/controllers/stop_areas_controller.rb | 33 | 
1 files changed, 27 insertions, 6 deletions
| diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb index 1fe904a40..fca33bdfb 100644 --- a/app/controllers/stop_areas_controller.rb +++ b/app/controllers/stop_areas_controller.rb @@ -139,16 +139,37 @@ class StopAreasController < BreadcrumbController    def collection      @q = parent.present? ? parent.stop_areas.search(params[:q]) : referential.stop_areas.search(params[:q]) -    @stop_areas ||= -      begin -        stop_areas = @q.result.order(:name) -        stop_areas = stop_areas.paginate(:page => params[:page], :per_page => @per_page) if @per_page.present? -        stop_areas -      end + +    if sort_column && sort_direction +      @stop_areas ||= +        begin +          stop_areas = @q.result.order(sort_column + ' ' + sort_direction) +          stop_areas = stop_areas.paginate(:page => params[:page], :per_page => @per_page) if @per_page.present? +          stop_areas +        end +    else +      @stop_areas ||= +        begin +          stop_areas = @q.result.order(:name) +          stop_areas = stop_areas.paginate(:page => params[:page], :per_page => @per_page) if @per_page.present? +          stop_areas +        end +    end    end    private +  def sort_column +    if parent.present? +      parent.stop_areas.column_names.include?(params[:sort]) ? params[:sort] : 'name' +    else +      referential.stop_areas.column_names.include?(params[:sort]) ? params[:sort] : 'name' +    end +  end +  def sort_direction +    %w[asc desc].include?(params[:direction]) ?  params[:direction] : 'asc' +  end +    alias_method :current_referential, :stop_area_referential    helper_method :current_referential | 
