Module: ActiveAdminVersioning::ActiveAdmin::DSL

Defined in:
lib/active_admin_versioning/active_admin/dsl.rb

Instance Method Summary collapse

Instance Method Details

#versioningObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/active_admin_versioning/active_admin/dsl.rb', line 4

def versioning
  return unless enabled_paper_trail?

  controller { include ActiveAdminVersioning::ActiveAdmin::ResourceController }

  member_action(:versions) do
    @versions   = resource.versions.reorder(id: :desc, created_at: :desc).page(params[:page])
    @page_title = ::PaperTrail::Version.model_name.human
    render "versions"
  end

  with_options only: :show do
    action_item :version do
      link_to send("versions_admin_#{resource_instance_name}_path") do
        ::PaperTrail::Version.model_name.human
      end
    end

    sidebar ::PaperTrail::Version.model_name.human do
      if versions.present?
        attributes_table_for versions[0] do
          row ::PaperTrail::Version.model_name.human do |_|
            version_number
          end
          row :event, &:event_i18n
          row :whodunnit do |record|
            record.send(ActiveAdminVersioning.configuration.whodunnit_attribute_name).presence ||
                span(t("views.version.unknown_user"), class: "empty")
          end
          row :created_at
        end
        paginate versions, theme: :version
      else
        I18n.t("views.version.empty", model_name: ::PaperTrail::Version.model_name.human)
      end
    end
  end
end