module ActiveAdmin::StateMachine::ViewDSL

Public Instance Methods

render_state(resource, name, read_only) click to toggle source
# File lib/active_admin/state_machine/view_dsl.rb, line 10
def render_state(resource, name, read_only)
  state = resource.send(name)
  s = resource.class.state_machines[name.to_sym].states[state.to_sym]
  ret = [
    '<div class="status_tag state-' + state + '">' + s.human_name + '</div>',
    '<div style="height: 10px;"></div>'
  ]
  unless read_only
    events = resource.class.state_machines[name.to_sym].events
    resource.send("#{name}_events".to_sym).each do |event|
      ret << link_to(
        events[event].human_name,
        send("#{event}_admin_#{resource.class.model_name.singular}_path", id: resource.id, attr: name),
        method: :put,
        class: "btn event-#{event}",
        style: 'margin-bottom: 5px;'
      )
    end
  end
  ('<div style="white-space: normal;">' + ret.join(' ') + '</div>').html_safe
end
state(name = "state", read_only: false) click to toggle source
# File lib/active_admin/state_machine/view_dsl.rb, line 4
def state(name = "state", read_only: false)
  column name do |resource|
    render_state(resource, name, read_only)
  end
end