module Administrate::BaseController
Constants
- VERSION
Attributes
search_term[W]
Public Instance Methods
edit()
click to toggle source
# File lib/administrate/base_controller.rb, line 23 def edit render locals: { page: edit_page(requested_resource) } end
index()
click to toggle source
# File lib/administrate/base_controller.rb, line 5 def index resources = index_resources resources = apply_collection_includes(resources) resources = order.apply(resources) resources = resources.page(params[:_page]).per(records_per_page) respond_to do |format| format.json { render_index_json(resources) } format.any { render_index_any(resources, format: format) } end end
new()
click to toggle source
# File lib/administrate/base_controller.rb, line 17 def new resource = new_resource authorize_resource(resource) render locals: { page: new_page(resource) } end
show()
click to toggle source
# File lib/administrate/base_controller.rb, line 27 def show respond_to do |format| format.json { render_show_json(requested_resource) } format.any { render_show_any(requested_resource, format: format) } end end
Protected Instance Methods
edit_page(resource)
click to toggle source
The page used for edit
# File lib/administrate/base_controller.rb, line 85 def edit_page(resource) new_page(resource) end
index_page()
click to toggle source
The page used for index
.
# File lib/administrate/base_controller.rb, line 64 def index_page Administrate::Page::Collection.new(dashboard, order: order) end
index_resources()
click to toggle source
Wraps the index_scoped_resource
.
By default this constructs the Administrate::Search
decorator, wraps the resources and runs it with the dashboard_class
and search_term
. Overwrite this to turn off search.
# File lib/administrate/base_controller.rb, line 57 def index_resources Administrate::Search.new(index_scoped_resource, dashboard_class, search_term).run end
index_scoped_resource()
click to toggle source
The resource scope only used for index
.
By default this calls scoped_resource
but it's common to overwrite this in controllers that would like a scoped view on the index page only. This way a subset of resources is shown, based on some state such as the path or a cookie or the current user, but find_resource
still works as intended when accessing the show path.
# File lib/administrate/base_controller.rb, line 47 def index_scoped_resource scoped_resource end
new_page(resource)
click to toggle source
The page used for new
# File lib/administrate/base_controller.rb, line 78 def new_page(resource) Administrate::Page::Form.new(dashboard, resource) end
read_param(_, data)
click to toggle source
# File lib/administrate/base_controller.rb, line 104 def read_param(_, data) if data.is_a?(Hash) && data[:type] if data[:type] == Administrate::Field::Polymorphic.to_s return GlobalID::Locator.locate(data[:value]) end end data end
render_index_any(resources, format:)
click to toggle source
# File lib/administrate/base_controller.rb, line 118 def render_index_any(resources, format:) page = index_page render locals: { resources: resources, search_term: search_term, page: page, show_search_bar: show_search_bar?, } end
render_index_json(resources)
click to toggle source
# File lib/administrate/base_controller.rb, line 114 def render_index_json(resources) render json: resources end
render_show_any(resource = requested_resource, format:)
click to toggle source
# File lib/administrate/base_controller.rb, line 133 def render_show_any(resource = requested_resource, format:) render locals: { page: show_page(resource) } end
render_show_json(resource = requested_resource)
click to toggle source
# File lib/administrate/base_controller.rb, line 129 def render_show_json(resource = requested_resource) render json: resource end
resource_params()
click to toggle source
# File lib/administrate/base_controller.rb, line 94 def resource_params permitted = params.require(resource_class.model_name.param_key) .permit(dashboard.permitted_attributes) .to_h permitted.each_with_object(permitted) do |(k, v), result| result[k] = read_param(k, v) end end
search_term()
click to toggle source
# File lib/administrate/base_controller.rb, line 36 def search_term @search_term ||= params[:search].to_s.strip end
show_page(resource = requested_resource)
click to toggle source
The page used for show
# File lib/administrate/base_controller.rb, line 71 def show_page(resource = requested_resource) Administrate::Page::Show.new(dashboard, resource) end