require 'inherited_views' require 'active_admin/resource_controller/actions' require 'active_admin/resource_controller/action_builder' require 'active_admin/resource_controller/callbacks' require 'active_admin/resource_controller/collection' require 'active_admin/resource_controller/filters' require 'active_admin/resource_controller/form' require 'active_admin/resource_controller/menu' require 'active_admin/resource_controller/page_configurations' require 'active_admin/resource_controller/scoping' require 'active_admin/resource_controller/sidebars' module ActiveAdmin class ResourceController < ::InheritedViews::Base self.default_views = 'active_admin_default' helper ::ActiveAdmin::ViewHelpers layout false respond_to :html, :xml, :json respond_to :csv, :only => :index before_filter :authenticate_active_admin_user include ActiveAdmin::ActionItems include Actions include ActionBuilder include Callbacks include Collection include Filters include Form include Menu include PageConfigurations include Scoping include Sidebars class << self # Reference to the Resource object which initialized # this controller attr_accessor :active_admin_config def active_admin_config=(config) @active_admin_config = config defaults :resource_class => config.resource, :route_prefix => config.route_prefix, :instance_name => config.underscored_resource_name end public :belongs_to end # Default Sidebar Sections sidebar :filters, :only => :index do active_admin_filters_form_for assigns["search"], filters_config end # Default Action Item Links action_item :only => :show do if controller.action_methods.include?('edit') link_to("Edit #{active_admin_config.resource_name}", edit_resource_path(resource)) end end action_item :only => :show do if controller.action_methods.include?("destroy") link_to("Delete #{active_admin_config.resource_name}", resource_path(resource), :method => :delete, :confirm => "Are you sure you want to delete this?") end end action_item :except => [:new, :show] do if controller.action_methods.include?('new') link_to("New #{active_admin_config.resource_name}", new_resource_path) end end protected # Calls the authentication method as defined in ActiveAdmin.authentication_method def authenticate_active_admin_user send(ActiveAdmin.authentication_method) if ActiveAdmin.authentication_method end def current_active_admin_user send(ActiveAdmin.current_user_method) if ActiveAdmin.current_user_method end helper_method :current_active_admin_user def current_active_admin_user? !current_active_admin_user.nil? end helper_method :current_active_admin_user? def active_admin_config self.class.active_admin_config end helper_method :active_admin_config # Returns the renderer class to use for the given action. def renderer_for(action) ActiveAdmin.view_factory["#{action}_page"] end helper_method :renderer_for end end