ActiveAdmin.register Version do config.batch_actions = false actions :index, :show menu :parent => I18n.t('activerecord.models.user.other'), :if => proc { can? :index, Version } # # INDEX # filter :user, :as => 'multiple_select', :input_html => { :class => 'chosen' } filter :item_type, :as => 'multiple_select', :input_html => { :class => 'chosen' }, :collection => proc { [ 'User', 'Agent', 'Collection', 'Commission', 'Gateway', 'Limit', 'Payment', 'Provider', 'TerminalCondition', 'TerminalType', 'Terminal' ].map {|x| [I18n.t("activerecord.models.#{x.underscore}", :count => 1), x]} } filter :item_id, :as => 'numeric' index do column :id do |x| link_to x.id, [:admin, x] end column :created_at column :user column :item_type do |x| I18n.t "activerecord.models.#{x.item_type.underscore}", :count => 1 end column :item_id, :order => :item_id do |x| link_to x.item_id, :q => {:item_type_in => x.item_type, :item_id_eq => x.item_id} end column :item do |x| item = x.item || x.reify title = item.respond_to?(:title) ? item.title : "---" if x.item.blank? span(title) else span(link_to title, [:admin, x.item]) rescue span(title) end end column :event do |x| type = :ok type = :warning if x.event == 'update' type = :error if x.event == 'destroy' status_tag I18n.t("smartkiosk.version_actions.#{x.event}"), type end end # # SHOW # show do |version| attributes_table do row :id row :created_at row :user row :item_type do |x| I18n.t "activerecord.models.#{x.item_type.underscore}", :count => 1 end row :item_id do |x| x.item_id end row :item do |x| item = x.item || x.reify title = item.respond_to?(:title) ? item.title : "---" if x.item.blank? span(title) else span(link_to title, [:admin, x.item]) rescue span(title) end end row :event do |x| type = :ok type = :warning if x.event == 'update' type = :error if x.event == 'destroy' status_tag I18n.t("smartkiosk.version_actions.#{x.event}"), type end # FIELDS type = version.item_type.constantize item = version.reify || version.item row :changeset do |x| unless x.changeset.blank? ul do x.changeset.each do |k, v| li do strong "#{type.human_attribute_name k}:" span v[0] span "→".html_safe span v[1] end end end end end row :fields do |x| ul do item.attributes.each do |k, v| li do strong "#{type.human_attribute_name k}:" span v end end end end end panel I18n.t('activerecord.models.version.other') do table_for(version.item.versions, :i18n => Version) do |t| column :id do |x| link_to x.id, [:admin, x] end column :created_at column :user column :event do |x| type = :ok type = :warning if x.event == 'update' type = :error if x.event == 'destroy' status_tag I18n.t("smartkiosk.version_actions.#{x.event}"), type end end end end end