Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActiveAdmin and in-place edit

I have this system where I use ActiveAdmin to automate the backend and I was wondering if anyone tried to use in-place editing with tables for ActiveAdmin.

I see some scenarios where that would be useful: key-value tables (like State, Category, etc.) and in master-detail views (Order and OrderItems)...

Have anyone attempted to implement it? Any good pointers?

like image 386
kolrie Avatar asked Oct 07 '11 15:10

kolrie


2 Answers

We've used best_in_place Editor but only on customized views, not on generic ones.

https://github.com/bernat/best_in_place

gem "best_in_place"
bundle
rails g best_in_place:setup

Add the best_in_place script to /app/assets/javascripts/active_admin.js:

//= require best_in_place

$(document).ready(function() {
  /* Activating Best In Place */  
  jQuery(".best_in_place").best_in_place() });

in your custom view partial you can have something like

.panel
  %h3 Your Resource Table
  .panel_contents
    .attributes_table
      %table
        %tbody
          %tr
            %th Name
            %td= best_in_place resource, :name, :type => :input, :path => [:admin, resource]
            ...
            ...

As ActiveAdmin has already setup your RESTful Actions and BestInPlace is using RESTful PUT to Update too, everything should work automatically :)

You may can also use something like this, but I've not tested this yet.

index do
  column(:name) { |i| best_in_place i, :name, :type => :input, :path => [:admin, i] } 
end
like image 183
Severin Ulrich Avatar answered Oct 11 '22 15:10

Severin Ulrich


Actually Best In Place monkey patch for Active Admin views is very easy:

# app/admin/active_admin/views.rb
module ActiveAdmin::ViewHelpers
  extend BestInPlace::BestInPlaceHelpers
end
like image 23
Roman Sklenar Avatar answered Oct 11 '22 14:10

Roman Sklenar