aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/companies_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/companies_controller.rb')
-rw-r--r--app/controllers/companies_controller.rb17
1 files changed, 15 insertions, 2 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