class ActiveAdmin::Views::IndexAsTable::IndexTableFor
methods for quickly displaying items on the index page
Extend the default ActiveAdmin::Views::TableFor with some
def actions(options = {}, &block)
end
item 'Grant Admin', grant_admin_admin_user_path(admin_user)
actions defaults: false, dropdown: true, dropdown_name: 'Additional actions' do |admin_user|
# Custom actions without the defaults displayed in a Dropdown Menu.
end
item 'Grant Admin', grant_admin_admin_user_path(admin_user)
actions dropdown: true do |admin_user|
# Append some actions onto the end of the default actions displayed in a Dropdown Menu
end
item 'Grant Admin', grant_admin_admin_user_path(admin_user)
actions defaults: false do |admin_user|
# Custom actions without the defaults.
end
a 'Grant Admin', href: grant_admin_admin_user_path(admin_user)
actions do |admin_user|
# Append some actions onto the end of the default actions using arbre dsl.
end
item 'Grant User', grant_user_admin_user_path(admin_user)
item 'Grant Admin', grant_admin_admin_user_path(admin_user)
actions do |admin_user|
# Append some actions onto the end of the default actions.
actions name: 'A title!'
# Add default links with a custom column title (empty by default).
actions
# Add default links.
```ruby
Add links to perform actions.
def actions(options = {}, &block) name = options.delete(:name) { '' } defaults = options.delete(:defaults) { true } dropdown = options.delete(:dropdown) { false } dropdown_name = options.delete(:dropdown_name) { I18n.t 'active_admin.dropdown_actions.button_label', default: 'Actions' } options[:class] ||= 'col-actions' column name, options do |resource| if dropdown dropdown_menu dropdown_name do defaults(resource) if defaults instance_exec(resource, &block) if block_given? end else table_actions do defaults(resource, css_class: :member_link) if defaults if block_given? block_result = instance_exec(resource, &block) text_node block_result unless block_result.is_a? Arbre::Element end end end end end
def default_actions
def default_actions raise '`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead.' end
def defaults(resource, options = {})
def defaults(resource, options = {}) if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource) item I18n.t('active_admin.view'), resource_path(resource), class: "view_link #{options[:css_class]}", title: I18n.t('active_admin.view') end if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource) item I18n.t('active_admin.edit'), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: I18n.t('active_admin.edit') end if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource) item I18n.t('active_admin.delete'), resource_path(resource), class: "delete_link #{options[:css_class]}", title: I18n.t('active_admin.delete'), method: :delete, data: {confirm: I18n.t('active_admin.delete_confirmation')} end end
def id_column
def id_column raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource| if controller.action_methods.include?('show') link_to resource.id, resource_path(resource), class: "resource_id_link" elsif controller.action_methods.include?('edit') link_to resource.id, edit_resource_path(resource), class: "resource_id_link" else resource.id end end end
def index_column(start_value = 1)
def index_column(start_value = 1) column '#', class: 'col-index', sortable: false do |resource| @collection.offset_value + @collection.index(resource) + start_value end end
def selectable_column
def selectable_column return unless active_admin_config.batch_actions.any? column resource_selection_toggle_cell, class: 'col-selectable', sortable: false do |resource| resource_selection_cell resource end end