No commit activity in last 3 years
No release in over 3 years
Drag and drop reordering interface for ActiveAdmin tables
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Active Admin Orderable

This gem extends ActiveAdmin so that your index page's table rows can be orderable via a drag-and-drop interface.

Prerequisites

This extension assumes that you're using one of the following on any model you want to be sortable.

ActiveRecord

acts_as_list

class Page < ActiveRecord::Base
  acts_as_list
end

Mongoid

mongoid_orderable

class Page < ActiveRecord::Base
  include Mongoid::Orderable
  orderable
end

Usage

Add it to your Gemfile

gem "activeadmin-orderable"

Include the JavaScript in active_admin.js.coffee

#= require activeadmin-orderable

Include the Stylesheet in active_admin.css.scss

@import "activeadmin-orderable"

Configure your ActiveAdmin Resource

ActiveAdmin.register Page do
  config.sort_order = 'position_asc' # assumes you are using 'position' for your acts_as_list column
  config.paginate   = false # optional; drag-and-drop across pages is not supported

  orderable # creates the controller action which handles the sorting

  index do
    orderable_handle_column # inserts a drag handle
    # use a user-defined URL for ordering
    orderable_handle_column url: :sort_admin_section_path
    # alternative form with lambda
    orderable_handle_column url: -> (resource) { compute_url_from_resource(resource) }
    # other columns...
  end

  show do |c|
    attributes_table do
      row :id
      row :name
    end

    panel 'Contents' do
      table_for c.collection_memberships do
        orderable_handle_column
        column :position
        column :collectable
      end
    end
  end
end

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request