Sha256: e58c1e4139be4548baf1de81cb0aaa9af150ca18bde69c840b479adbacc6c2b4

Contents?: true

Size: 1.84 KB

Versions: 96

Compression:

Stored size: 1.84 KB

Contents

module ActiveScaffold::Actions
  module Customize
    include ActiveScaffold::Actions::PrintBase
    def self.included(base)
      base.before_filter :customize_authorized_filter, :only => [:customize]
      base.before_filter :store_custum_list
      base.before_filter :do_customize
    end
    
    def show_customize
      respond_to do |wants|
        wants.html do
          if successful?
            render(:partial => 'show_customize', :layout => true)
          else
            return_to_main
          end
        end
        wants.js do
          render(:partial => 'show_customize', :layout => false)
        end
      end
    end

    def reset_customize
      active_scaffold_session_storage[:custom_columns] = {}
      @list_columns = nil
      update_table
    end
    
    def store_custum_list
      active_scaffold_session_storage[:custom_columns] ||= {}
      active_scaffold_session_storage[:custom_columns] = params[:custom_columns] if params[:custom_columns]
    end
    
    protected

    # The default security delegates to ActiveRecordPermissions.
    # You may override the method to customize.
    def customize_authorized?
      authorized_for?(:action => :read)
    end

    def do_customize
      # active_scaffold_session_storage[:custom_columns_default] ||= active_scaffold_tools_list_columns.collect { |col| col.name.to_sym }

      if !active_scaffold_session_storage[:custom_columns].empty? and params[:action] != :reset_custom
        @list_columns = active_scaffold_config.customize.columns.reject { |col| active_scaffold_session_storage[:custom_columns][col.name.to_sym].nil? }
      end
    end

    private

    def customize_authorized_filter
      link = active_scaffold_config.customize.link || active_scaffold_config.customize.class.link
      raise ActiveScaffold::ActionNotAllowed unless self.send(link.security_method)
    end
  end
end

Version data entries

96 entries across 96 versions & 1 rubygems

Version Path
six-updater-web-0.24.15 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.14 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.13 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.12 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.11 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.10 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.9 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.8 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.7 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.6 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.5 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.4 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.3 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.2 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.1 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.24.0 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.23.7 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.23.6 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.23.5 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb
six-updater-web-0.23.4 lib/six-updater-web/vendor/plugins/active_scaffold/lib/active_scaffold/actions/customize.rb