Class: Elrte::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/elrte/application.rb

Instance Method Summary collapse

Instance Method Details

#register_default_assetsObject

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, options, &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

#routerObject

Deprecated.

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(options)
namespace = find_or_create_namespace(namespace_name)
namespace.register(resource, options, &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(options)
namespace = find_or_create_namespace(namespace_name)
namespace.register_page(name, options, &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.load_menu! }

# 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

Parameters:

  • name (String)

    The page name



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