app/controllers/administrate/application_controller.rb in administrate-0.14.0 vs app/controllers/administrate/application_controller.rb in administrate-0.15.0
- old
+ new
@@ -1,17 +1,18 @@
module Administrate
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def index
+ authorize_resource(resource_class)
search_term = params[:search].to_s.strip
resources = Administrate::Search.new(scoped_resource,
dashboard_class,
search_term).run
resources = apply_collection_includes(resources)
resources = order.apply(resources)
- resources = resources.page(params[:page]).per(records_per_page)
+ resources = resources.page(params[:_page]).per(records_per_page)
page = Administrate::Page::Collection.new(dashboard, order: order)
render locals: {
resources: resources,
search_term: search_term,
@@ -50,11 +51,11 @@
notice: translate_with_resource("create.success"),
)
else
render :new, locals: {
page: Administrate::Page::Form.new(dashboard, resource),
- }
+ }, status: :unprocessable_entity
end
end
def update
if requested_resource.update(resource_params)
@@ -63,11 +64,11 @@
notice: translate_with_resource("update.success"),
)
else
render :edit, locals: {
page: Administrate::Page::Form.new(dashboard, requested_resource),
- }
+ }, status: :unprocessable_entity
end
end
def destroy
if requested_resource.destroy
@@ -103,31 +104,29 @@
def order
@order ||= Administrate::Order.new(sorting_attribute, sorting_direction)
end
def sorting_attribute
- params.fetch(resource_name, {}).fetch(
- :order,
- default_sorting_attribute,
- )
+ sorting_params.fetch(:order) { default_sorting_attribute }
end
def default_sorting_attribute
nil
end
def sorting_direction
- params.fetch(resource_name, {}).fetch(
- :direction,
- default_sorting_direction,
- )
+ sorting_params.fetch(:direction) { default_sorting_direction }
end
def default_sorting_direction
nil
end
+ def sorting_params
+ Hash.try_convert(request.query_parameters[resource_name]) || {}
+ end
+
def dashboard
@dashboard ||= dashboard_class.new
end
def requested_resource
@@ -172,9 +171,10 @@
delegate :dashboard_class, :resource_class, :resource_name, :namespace,
to: :resource_resolver
helper_method :namespace
helper_method :resource_name
+ helper_method :resource_class
def resource_resolver
@resource_resolver ||=
Administrate::ResourceResolver.new(controller_path)
end