easy_admin_ui

A very simple admin UI. If you need something more fancy look try https://github.com/sferik/rails_admin.

Docs are incomplete.

Requirements

  • Ruby >= 2.0
  • Rails 4.0 or later. (0.6.x works with 3.2.x)
  • formtastic 2.2.1 or higher (specify it in your Gemfile if needed)
  • kaminari
  • jQuery

Note

Some things are currently hardwired as this is very much my own hacky admin thing. For instance it assumes you have your controllers below admin/. I.e. admin_users_path.

Installation

$ gem install easy_admin_ui

In your controller:

class Admin::UsersController < ActionController::Base
  easy_admin :per_page => 50,
    :order => 'created_at',
    :page_title => 'Users',
    :columns => ['Login', ['Email', 'my_nowrap_class'], 'Name', 'Created'],
    :show_actions => true,
    :skip_new => true,
    :include => '
       after :create do
         # Stuff you want to do after create.
       end'
end

The model is infered by the make_resourceful plugin which is why we don't need to specify it here. However, the object(s) returned will be named @item or @items (for :index).

Then you need a partial below users/ named '_user.html.erb':

<%=
  table_row(:id => "tr_user_#{user.id}", :class => "#{cyc = cycle("even", "odd")}",
    :cells => [
      user.login,
      [user.email, 'my_nowrap_class'],
      date_hm(user.created_at),
    ],
    :actions => [
      admin_edit_link(user),
      admin_delete_link_with_confirmation(user)
    ])
-%>

For deeper nested resources simply use:

admin_show_link([user, article])
admin_delete_link_with_confirmation([user, comment])

This also works for forms but you need to set

To add a class to your table cells just pass an array as done with the user.email field in the above example.

You need to provide the _form.html.erb partials yourself.

You can always override the default templates by providing templates yourself.

Optional Partials

Sometimes you'll need extra stuff on your page such as a form filter for the records. You can use the following optional partials to add functionality.

Index page only:

_index_after_title.html.erb
_index_after_table.html.erb

New/edit pages:

_modify_after_title.html.erb
_modify_after_form.html.erb

If these exist the more specific partials below will not be rendered.

Edit page only:

_edit_after_title.html.erb
_edit_after_form.html.erb

New page only:

_new_after_title.html.erb
_new_after_form.html.erb

Will be included on all actions no matter if other partials were present or not:

_after_title.html.erb
_after.html.erb