Module: ActiveAdminVersioning::Extension::DSL

Defined in:
lib/active_admin_versioning/extension/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
# File 'lib/active_admin_versioning/extension/dsl.rb', line 4

def versioning
  return unless config.resource_class.try(:paper_trail_enabled_for_model?)

  controller { include ActiveAdminVersioning::Extension::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

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

  sidebar(::PaperTrail::Version.model_name.human, only: :show) do
    if versions.present?
      attributes_table_for versions[0] do
        row(::PaperTrail::Version.model_name.human) { |_| version_number }
        row(:event, &:event_i18n)
        row(:whodunnit) do |record|
          record.whodunnit.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