File: app/controllers/application_controller.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  class: ApplicationController#3
includes
  LoginSystem   
inherits from
  Base ( ActionController )
has properties
attribute: config [RW] #16
attribute: cache [RW] #16
attribute: pagination_parameters [R] #17
method: initialize #20
method: include_stylesheet / 1 #28
method: include_javascript / 1 #32
method: template_name #36
method: rescue_action_in_public / 1 #53
method: set_current_user #64
method: set_user_locale #68
method: set_timezone #72
method: set_javascripts_and_stylesheets #76
method: set_standard_body_style #82

Class Hierarchy

Code

   1  require_dependency 'radiant'
   2 
   3  class ApplicationController < ActionController::Base
   4    include LoginSystem
   5    
   6    filter_parameter_logging :password, :password_confirmation
   7    
   8    protect_from_forgery
   9    
  10    before_filter :set_current_user
  11    before_filter :set_timezone
  12    before_filter :set_user_locale
  13    before_filter :set_javascripts_and_stylesheets
  14    before_filter :set_standard_body_style, :only => [:new, :edit, :update, :create]
  15    
  16    attr_accessor :config, :cache
  17    attr_reader :pagination_parameters
  18    helper_method :pagination_parameters
  19    
  20    def initialize
  21      super
  22      @config = Radiant::Config
  23    end
  24    
  25    # helpers to include additional assets from actions or views
  26    helper_method :include_stylesheet, :include_javascript
  27    
  28    def include_stylesheet(sheet)
  29      @stylesheets << sheet
  30    end
  31    
  32    def include_javascript(script)
  33      @javascripts << script
  34    end
  35 
  36    def template_name
  37      case self.action_name
  38      when 'index'
  39        'index'
  40      when 'new','create'
  41        'new'
  42      when 'show'
  43        'show'
  44      when 'edit', 'update'
  45        'edit'
  46      when 'remove', 'destroy'
  47        'remove'
  48      else
  49        self.action_name
  50      end
  51    end
  52      
  53    def rescue_action_in_public(exception)
  54      case exception
  55        when ActiveRecord::RecordNotFound, ActionController::UnknownController, ActionController::UnknownAction, ActionController::RoutingError
  56          render :template => "site/not_found", :status => 404
  57        else
  58          super
  59      end
  60    end
  61    
  62    private
  63    
  64      def set_current_user
  65        UserActionObserver.instance.current_user = current_user
  66      end  
  67          
  68      def set_user_locale      
  69        I18n.locale = current_user && !current_user.locale.blank? ? current_user.locale : Radiant::Config['default_locale']
  70      end
  71 
  72      def set_timezone
  73        Time.zone = Radiant::Config['local.timezone'] || Time.zone_default
  74      end
  75    
  76      def set_javascripts_and_stylesheets
  77        @stylesheets ||= []
  78        @stylesheets.concat %w(admin/main)
  79        @javascripts ||= []
  80      end
  81 
  82      def set_standard_body_style
  83        @body_classes ||= []
  84        @body_classes.concat(%w(reversed))
  85      end
  86      
  87  end