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