Class: Elrte::Application
- Inherits:
-
Object
- Object
- Elrte::Application
- Defined in:
- lib/elrte/application.rb
Instance Method Summary collapse
-
#register_default_assets ⇒ Object
def load_default_namespace find_or_create_namespace(default_namespace) end.
-
#router ⇒ Object
deprecated
Deprecated.
The default sort order for index pages
- #routes(rails_router) ⇒ Object
Instance Method Details
#register_default_assets ⇒ Object
def load_default_namespace
find_or_create_namespace(default_namespace)
end
Add before, around and after filters to each registered resource.
eg:
ActiveAdmin.before_filter :authenticate_admin!
def before_filter(*args, &block)
ResourceController.before_filter(*args, &block)
end
def skip_before_filter(*args, &block)
ResourceController.skip_before_filter(*args, &block)
end
def after_filter(*args, &block)
ResourceController.after_filter(*args, &block)
end
def around_filter(*args, &block)
ResourceController.around_filter(*args, &block)
end
Helper method to add a dashboard section def dashboard_section(name, options = {}, &block)
ActiveAdmin::Dashboards.add_section(name, , &block)
end
private
225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/elrte/application.rb', line 225 def register_default_assets register_stylesheet 'elrte.css', :media => 'all' #if !ActiveAdmin.use_asset_pipeline? register_javascript 'jquery.min.js' register_javascript 'jquery-ui.min.js' register_javascript 'jquery_ujs.js' #end register_javascript 'elrte.js' end |
#router ⇒ Object
The default sort order for index pages
include Settings
Adds settings to both the Application and the Namespace instance so that they can be configured independantly. def self.inheritable_setting(name, default)
Namespace.setting name, nil
setting name, default
end
The default namespace to put controllers and routes inside. Set this in config/initializers/active_admin.rb using:
config.default_namespace = :super_admin
setting :default_namespace, :admin
A hash of all the registered namespaces setting :namespaces, {}
Load paths for admin configurations. Add folders to this load path to load up other resources for administration. External gems can include their paths in this load path to provide active_admin UIs setting :load_paths, [File.expand_path(‘app/admin’, Rails.root)]
The default number of resources to display on index pages inheritable_setting :default_per_page, 30
The title which gets displayed in the main layout inheritable_setting :site_title, “”
Set the site title link href (defaults to AA dashboard) inheritable_setting :site_title_link, “”
Set the site title image displayed in the main layout (has precendence over :site_title) inheritable_setting :site_title_image, “”
The view factory to use to generate all the view classes. Take a look at ActiveAdmin::ViewFactory inheritable_setting :view_factory, ActiveAdmin::ViewFactory.new
The method to call in controllers to get the current user inheritable_setting :current_user_method, false
The method to call in the controllers to ensure that there is a currently authenticated admin user inheritable_setting :authentication_method, false
The path to log user’s out with. If set to a symbol, we assume that it’s a method to call which returns the path inheritable_setting :logout_link_path, :destroy_admin_user_session_path
The method to use when generating the link for user logout inheritable_setting :logout_link_method, :get
Active Admin makes educated guesses when displaying objects, this is the list of methods it tries calling in order setting :display_name_methods, [ :display_name,
:full_name,
:name,
:username,
:login,
:title,
:email,
:to_s ]
Deprecated Settings
deprecated_setting :default_sort_order, ‘id_desc’
DEPRECATED: This option is deprecated and will be removed. Use the #allow_comments_in option instead attr_accessor :admin_notes
include AssetRegistration
Event that gets triggered on load of Active Admin LoadEvent = ‘active_admin.application.load’.freeze
def setup!
register_default_assets
end
def prepare!
remove_active_admin_load_paths_from_rails_autoload_and_eager_load
attach_reloader
generate_stylesheets
end
Registers a brand new configuration for the given resource. def register(resource, options = {}, &block)
namespace_name = extract_namespace_name()
namespace = find_or_create_namespace(namespace_name)
namespace.register(resource, , &block)
end
Creates a namespace for the given name
Yields the namespace if a block is given
def find_or_create_namespace(name)
name ||= :root
return namespaces[name] if namespaces[name]
namespace = Namespace.new(self, name)
namespaces[name] = namespace
ActiveAdmin::Event.dispatch ActiveAdmin::Namespace::RegisterEvent, namespace
yield(namespace) if block_given?
namespace
end
alias_method :namespace, :find_or_create_namespace
Register a page
@&block The registration block.
def register_page(name, options = {}, &block)
namespace_name = extract_namespace_name()
namespace = find_or_create_namespace(namespace_name)
namespace.register_page(name, , &block)
end
Stores if everything has been loaded or we need to reload @@loaded = false
Returns true if all the configuration files have been loaded. def loaded?
@@loaded
end
Removes all the controllers that were defined by registering resources for administration.
We remove them, then load them on each request in development to allow for changes without having to restart the server. def unload!
namespaces.values.each{|namespace| namespace.unload! }
@@loaded = false
end
Loads all of the ruby files that are within the load path of ActiveAdmin.load_paths. This should load all of the administration UIs so that they are available for the router to proceed.
The files are only loaded if we haven’t already loaded all the files and they aren’t marked for re-loading. To mark the files for re-loading you must first call ActiveAdmin.unload! def load!
# No work to do if we've already loaded
return false if loaded?
# Load files
files_in_load_path.each{|file| load file }
# If no configurations, let's make sure you can still login
load_default_namespace if namespaces.values.empty?
# Load Menus
namespaces.values.each{|namespace| namespace. }
# Dispatch an ActiveAdmin::Application::LoadEvent with the Application
ActiveAdmin::Event.dispatch LoadEvent, self
@@loaded = true
end
Returns ALL the files to load from all the load paths def files_in_load_path
load_paths.flatten.compact.uniq.collect{|path| Dir["#{path}/**/*.rb"] }.flatten
end
179 180 181 |
# File 'lib/elrte/application.rb', line 179 def router @router ||= Router.new(self) end |
#routes(rails_router) ⇒ Object
183 184 185 186 187 188 189 |
# File 'lib/elrte/application.rb', line 183 def routes(rails_router) # Ensure that all the configurations (which define the routes) # are all loaded #load! router.apply(rails_router) end |