Sha256: ebc1314eeb631390308a95e5f93cf0fed0d16143286dfdbfcd0f371a9db6bd6b

Contents?: true

Size: 1.5 KB

Versions: 8

Compression:

Stored size: 1.5 KB

Contents

module Spud::BelongsToApp
  extend ActiveSupport::Concern

  included do
    extend ClassMethods
  end

  module ClassMethods
    def belongs_to_spud_app(name=nil,options={})
      @page_title = options[:page_title]
      Spud::Core.admin_applications.each do |app|
        if app[:name].parameterize.underscore.to_sym == name
          @page_application = app
          break
        end
      end
      self.class_eval do
        before_action do |controller|
          @page_thumbnail = self.class.page_application[:thumbnail]
          @application_name = self.class.page_application[:name]
          @page_name = self.class.page_title

          if !current_user.can_view_app?(self.class.page_application)
            raise Spud::AccessDeniedError.new(:item => 'module', :template => '/layouts/admin/error_page')
          end

          if controller.action_name == 'new' || controller.action_name == 'create'
            @page_name = "New #{@page_name.singularize}"
          elsif controller.action_name == 'edit' || controller.action_name == 'update'
              @page_name = "Edit #{@page_name.singularize}"
          elsif controller.action_name == 'show'
            @page_name = "Show #{@page_name.singularize}"
          end
        end
      end
    end
    
    def page_application
      @page_application || self.superclass.instance_variable_get('@page_application')
    end

    def page_title
      @page_title || self.superclass.instance_variable_get('@page_title') || page_application[:name]
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
tb_core-1.3.2 lib/spud_core/belongs_to_app.rb
tb_core-1.3.1 lib/spud_core/belongs_to_app.rb
tb_core-1.3.0 lib/spud_core/belongs_to_app.rb
tb_core-1.3.0.beta2 lib/spud_core/belongs_to_app.rb
tb_core-1.3.0.beta1 lib/spud_core/belongs_to_app.rb
tb_core-1.2.8 lib/spud_core/belongs_to_app.rb
tb_core-1.2.7 lib/spud_core/belongs_to_app.rb
tb_core-1.2.6 lib/spud_core/belongs_to_app.rb