aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/companies_controller.rb17
-rw-r--r--app/controllers/lines_controller.rb15
-rw-r--r--app/controllers/networks_controller.rb16
-rw-r--r--app/controllers/referential_companies_controller.rb2
-rw-r--r--app/controllers/referential_networks_controller.rb2
-rw-r--r--app/controllers/referential_stop_areas_controller.rb6
-rw-r--r--app/controllers/stop_areas_controller.rb33
7 files changed, 78 insertions, 13 deletions
diff --git a/app/controllers/companies_controller.rb b/app/controllers/companies_controller.rb
index 91e7c311b..bf298786a 100644
--- a/app/controllers/companies_controller.rb
+++ b/app/controllers/companies_controller.rb
@@ -34,8 +34,12 @@ class CompaniesController < BreadcrumbController
protected
def collection
@q = line_referential.companies.search(params[:q])
- @companies ||= @q.result(:distinct => true).order(:name).paginate(:page => params[:page])
- @decoratedcompanies = CompanyDecorator.decorate_collection(@companies)
+
+ 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
@@ -60,4 +64,13 @@ class CompaniesController < BreadcrumbController
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
+ line_referential.companies.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/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
diff --git a/app/controllers/networks_controller.rb b/app/controllers/networks_controller.rb
index 8d6fc9a8e..d9070e7e8 100644
--- a/app/controllers/networks_controller.rb
+++ b/app/controllers/networks_controller.rb
@@ -40,7 +40,12 @@ class NetworksController < BreadcrumbController
def collection
@q = line_referential.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)
@@ -64,4 +69,13 @@ class NetworksController < BreadcrumbController
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
+ line_referential.networks.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_companies_controller.rb b/app/controllers/referential_companies_controller.rb
index ae5ddc1bc..882796951 100644
--- a/app/controllers/referential_companies_controller.rb
+++ b/app/controllers/referential_companies_controller.rb
@@ -51,7 +51,7 @@ class ReferentialCompaniesController < ChouetteController
private
def sort_column
- referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ referential.workbench.companies.column_names.include?(params[:sort]) ? params[:sort] : 'name'
end
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
diff --git a/app/controllers/referential_networks_controller.rb b/app/controllers/referential_networks_controller.rb
index 40dcef869..711b0cc69 100644
--- a/app/controllers/referential_networks_controller.rb
+++ b/app/controllers/referential_networks_controller.rb
@@ -59,7 +59,7 @@ class ReferentialNetworksController < ChouetteController
private
def sort_column
- referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ referential.workbench.networks.column_names.include?(params[:sort]) ? params[:sort] : 'name'
end
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
diff --git a/app/controllers/referential_stop_areas_controller.rb b/app/controllers/referential_stop_areas_controller.rb
index b1faff9d4..8f0d6fea3 100644
--- a/app/controllers/referential_stop_areas_controller.rb
+++ b/app/controllers/referential_stop_areas_controller.rb
@@ -141,7 +141,11 @@ class ReferentialStopAreasController < ChouetteController
private
def sort_column
- referential.lines.column_names.include?(params[:sort]) ? params[:sort] : 'name'
+ if parent.present?
+ parent.stop_areas.include?(params[:sort]) ? params[:sort] : 'name'
+ else
+ referential.stop_areas.include?(params[:sort]) ? params[:sort] : 'name'
+ end
end
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : 'asc'
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