lib/administrate/base_controller.rb in administrate-base_controller-0.2.0 vs lib/administrate/base_controller.rb in administrate-base_controller-0.3.0

- old
+ new

@@ -8,18 +8,15 @@ def index resources = index_resources resources = apply_resource_includes(resources) resources = order.apply(resources) resources = resources.page(params[:page]).per(records_per_page) - page = index_page - render locals: { - resources: resources, - search_term: search_term, - page: page, - show_search_bar: show_search_bar?, - } + respond_to do |format| + format.json { render_index_json(resources) } + format.any { render_index_any(resources, format: format) } + end end def new resource = new_resource authorize_resource(resource) @@ -29,11 +26,14 @@ def edit render locals: { page: edit_page(requested_resource) } end def show - render locals: { page: show_page } + respond_to do |format| + format.json { render_show_json(requested_resource) } + format.any { render_show_any(requested_resource, format: format) } + end end protected def search_term @@ -50,12 +50,12 @@ def index_page Administrate::Page::Collection.new(dashboard, order: order) end - def show_page - Administrate::Page::Show.new(dashboard, requested_resource) + def show_page(resource = requested_resource) + Administrate::Page::Show.new(dashboard, resource) end def new_page(resource) Administrate::Page::Form.new(dashboard, resource) end @@ -83,9 +83,32 @@ if data.is_a?(ActionController::Parameters) && data[:type] return read_param_value(data) end data + end + + def render_index_json(resources) + render json: resources + end + + 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 + + def render_show_json(resource = requested_resource) + render json: resource + end + + def render_show_any(resource = requested_resource, format:) + render locals: { page: show_page(resource) } end private attr_writer :search_term