Sha256: e4d2997ce34b03159a722f57125fe60f5bc1bc509dfd8a77a3a7b4c38269ddfb
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
module RailsAdmin module Config module Actions class State < Base RailsAdmin::Config::Actions.register(self) # Is the action acting on the root level (Example: /admin/contact) register_instance_option :root? do false end register_instance_option :collection? do false end # Is the action on an object scope (Example: /admin/team/1/edit) register_instance_option :member? do true end register_instance_option :controller do Proc.new do |klass| @state_machine_options = ::RailsAdminState::Configuration.new @abstract_model if params['id'].present? begin raise 'event disabled' if @state_machine_options.disabled?(params[:event].to_sym) obj = @abstract_model.model.find(params['id']) if obj.send("fire_#{params[:attr]}_event".to_sym, params[:event].to_sym) obj.save! flash[:success] = I18n.t('admin.state_machine.event_fired', attr: params[:method], event: params[:event]) else flash[:error] = obj.errors.full_messages.join(', ') end rescue Exception => e flash[:error] = I18n.t('admin.state_machine.error', err: e.to_s) end else flash[:error] = I18n.t('admin.state_machine.no_id') end redirect_to :back end end register_instance_option :http_methods do [:post] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_admin_state-1.2.0 | lib/rails_admin_state/action.rb |