module Adminterface::Extensions::Resource::ActionItems

Public Instance Methods

action_items_for(action, render_context = nil) click to toggle source
Calls superclass method
# File lib/adminterface/extensions/resource/action_items.rb, line 5
def action_items_for(action, render_context = nil)
  super.sort_by { |x| [x.group, x.priority] }
end
add_default_action_items() click to toggle source
# File lib/adminterface/extensions/resource/action_items.rb, line 9
def add_default_action_items
  add_default_new_action_item
  add_default_edit_action_item
  add_default_destroy_action_item
end
add_default_destroy_action_item() click to toggle source

Adds the default Destroy link on show

# File lib/adminterface/extensions/resource/action_items.rb, line 50
def add_default_destroy_action_item
  add_action_item :destroy, only: proc { components.dig(:action_items, :destroy, :only)&.map(&:to_sym) } do
    if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
      localizer = ActiveAdmin::Localizers.resource(active_admin_config)
      icon_class = active_admin_config.components.dig(:action_items, :destroy, :icon_class)
      confirm_dialog_config = {
        buttons: {
          confirm: {
            text: I18n.t(:confirm, scope: "active_admin.confirm_dialog"),
            class: active_admin_config.css_classes.dig(:confirm_dialog, :confirm)
          },
          cancel: {
            text: I18n.t(:cancel, scope: "active_admin.confirm_dialog"),
            class: active_admin_config.css_classes.dig(:confirm_dialog, :cancel)
          }
        }
      }

      link_to(
        safe_join([icon_html(icon_class), content_tag(:span, localizer.t(:delete_model))]),
        resource_path(resource),
        title: localizer.t(:delete_model),
        class: active_admin_config.components.dig(:action_items, :destroy, :css_class),
        method: :delete, data: {confirm: localizer.t(:delete_confirmation), "aa-confirm-dialog": confirm_dialog_config}
      )
    end
  end
end
add_default_edit_action_item() click to toggle source

Adds the default Edit link on show

# File lib/adminterface/extensions/resource/action_items.rb, line 33
def add_default_edit_action_item
  add_action_item :edit, only: proc { components.dig(:action_items, :edit, :only)&.map(&:to_sym) } do
    if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::UPDATE, resource)
      localizer = ActiveAdmin::Localizers.resource(active_admin_config)
      icon_class = active_admin_config.components.dig(:action_items, :edit, :icon_class)

      link_to(
        safe_join([icon_html(icon_class), content_tag(:span, localizer.t(:edit_model))]),
        edit_resource_path(resource),
        title: localizer.t(:edit_model),
        class: active_admin_config.components.dig(:action_items, :edit, :css_class)
      )
    end
  end
end
add_default_new_action_item() click to toggle source

Adds the default New link on index

# File lib/adminterface/extensions/resource/action_items.rb, line 16
def add_default_new_action_item
  add_action_item :new, only: proc { components.dig(:action_items, :new, :only)&.map(&:to_sym) } do
    if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
      localizer = ActiveAdmin::Localizers.resource(active_admin_config)
      icon_class = active_admin_config.components.dig(:action_items, :new, :icon_class)

      link_to(
        safe_join([icon_html(icon_class), content_tag(:span, localizer.t(:new_model))]),
        new_resource_path,
        title: localizer.t(:new_model),
        class: active_admin_config.components.dig(:action_items, :new, :css_class)
      )
    end
  end
end