aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjpl2016-12-02 10:33:33 +0100
committerjpl2016-12-02 10:33:33 +0100
commit76cc4431ba302bae2edf925417f438cfcf0afd57 (patch)
treec87c285bc4bcd2db808718d0b1752d3586c6086f
parent1dd654a793ae7eaec20c621b1d6268f6206b342c (diff)
downloadchouette-core-76cc4431ba302bae2edf925417f438cfcf0afd57.tar.bz2
Refs #2015: adding sortable columns for ref_*
-rw-r--r--app/controllers/referential_companies_controller.rb17
-rw-r--r--app/controllers/referential_lines_controller.rb2
-rw-r--r--app/controllers/referential_networks_controller.rb16
-rw-r--r--app/controllers/referential_stop_areas_controller.rb29
4 files changed, 54 insertions, 10 deletions
diff --git a/app/controllers/referential_companies_controller.rb b/app/controllers/referential_companies_controller.rb
index a369488ba..ae5ddc1bc 100644
--- a/app/controllers/referential_companies_controller.rb
+++ b/app/controllers/referential_companies_controller.rb
@@ -28,7 +28,12 @@ class ReferentialCompaniesController < ChouetteController
def collection
@q = referential.workbench.companies.search(params[:q])
- @companies ||= @q.result(:distinct => true).order(:name).paginate(:page => params[:page])
+
+ if sort_column && sort_direction
+ @companies ||= @q.result(:distinct => true).order(sort_column + ' ' + sort_direction).paginate(:page => params[:page])
+ else
+ @companies ||= @q.result(:distinct => true).order(:name).paginate(:page => params[:page])
+ end
end
def resource_url(company = nil)
@@ -42,4 +47,14 @@ class ReferentialCompaniesController < ChouetteController
def company_params
params.require(:company).permit( :objectid, :object_version, :creation_time, :creator_id, :name, :short_name, :organizational_unit, :operating_department_name, :code, :phone, :fax, :email, :registration_number, :url, :time_zone )
end
+
+ private
+
+ def sort_column
+ referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ end
+ def sort_direction
+ %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
+ end
+
end
diff --git a/app/controllers/referential_lines_controller.rb b/app/controllers/referential_lines_controller.rb
index efbc856df..4ffee27cb 100644
--- a/app/controllers/referential_lines_controller.rb
+++ b/app/controllers/referential_lines_controller.rb
@@ -89,11 +89,9 @@ class ReferentialLinesController < ChouetteController
private
def sort_column
- # params[:sort] || 'number'
referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'number'
end
def sort_direction
- # params[:direction] || 'asc'
%w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
end
diff --git a/app/controllers/referential_networks_controller.rb b/app/controllers/referential_networks_controller.rb
index 00c680c65..40dcef869 100644
--- a/app/controllers/referential_networks_controller.rb
+++ b/app/controllers/referential_networks_controller.rb
@@ -36,7 +36,12 @@ class ReferentialNetworksController < ChouetteController
def collection
@q = referential.workbench.networks.search(params[:q])
- @networks ||= @q.result(:distinct => true).order(:name).paginate(:page => params[:page])
+
+ if sort_column && sort_direction
+ @networks ||= @q.result(:distinct => true).order(sort_column + ' ' + sort_direction).paginate(:page => params[:page])
+ else
+ @networks ||= @q.result(:distinct => true).order(:name).paginate(:page => params[:page])
+ end
end
def resource_url(network = nil)
@@ -51,4 +56,13 @@ class ReferentialNetworksController < ChouetteController
params.require(:network).permit(:objectid, :object_version, :creation_time, :creator_id, :version_date, :description, :name, :registration_number, :source_name, :source_type_name, :source_identifier, :comment )
end
+ private
+
+ def sort_column
+ referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ end
+ def sort_direction
+ %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
+ end
+
end
diff --git a/app/controllers/referential_stop_areas_controller.rb b/app/controllers/referential_stop_areas_controller.rb
index e0eae9aed..b1faff9d4 100644
--- a/app/controllers/referential_stop_areas_controller.rb
+++ b/app/controllers/referential_stop_areas_controller.rb
@@ -120,16 +120,33 @@ class ReferentialStopAreasController < ChouetteController
def collection
@q = parent.present? ? parent.stop_areas.search(params[:q]) : referential.stop_areas.search(params[:q])
- @stop_areas ||=
- begin
- stop_areas = @q.result(:distinct => true).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(:distinct => true).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(:distinct => true).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
+ referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ end
+ def sort_direction
+ %w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
+ end
+
def stop_area_params
params.require(:stop_area).permit( :routing_stop_ids, :routing_line_ids, :children_ids, :stop_area_type, :parent_id, :objectid, :object_version, :creation_time, :creator_id, :name, :comment, :area_type, :registration_number, :nearest_topic_name, :fare_code, :longitude, :latitude, :long_lat_type, :country_code, :street_name, :zip_code, :city_name, :mobility_restricted_suitability, :stairs_availability, :lift_availability, :int_user_needs, :coordinates, :url, :time_zone )
end