[![Gem Version](https://badge.fury.io/rb/activeadmin-audit.svg)](https://badge.fury.io/rb/activeadmin-audit) [![Build Status](https://travis-ci.org/holyketzer/activeadmin-audit.svg?branch=master)](https://travis-ci.org/holyketzer/activeadmin-audit) [![Code Climate](https://codeclimate.com/github/holyketzer/activeadmin-audit/badges/gpa.svg)](https://codeclimate.com/github/holyketzer/activeadmin-audit) [![Test Coverage](https://codeclimate.com/github/holyketzer/activeadmin-audit/badges/coverage.svg)](https://codeclimate.com/github/holyketzer/activeadmin-audit/coverage) # Activeadmin::Audit This gem allows you to track changes of records which done through ActiveAdmin panel. Also works with has_many relations ## Installation Add this line to your application's Gemfile: ```ruby gem 'activeadmin-audit' ``` And then execute: $ bundle Or install it yourself as: $ gem install activeadmin-audit ## Setting up Active Admin Audit (for Rails) After installing the gem, you need to run the generator. Here are your options: - If you want to use an existing user class, provide it as an argument: ```sh rails g active_admin_audit:install User ``` - Otherwise, with no arguments we will create an `AdminUser` class to use with Devise: ```sh rails g active_admin_audit:install ``` The generator adds these core files, among others: ``` config/initializers/active_admin_audit.rb ``` ## Usage Copy and apply migrations ```bash rake active_admin_audit:install:migrations rake db:migrate ``` Include this line in your CSS code (active_admin.scss) ```scss @import "activeadmin-audit"; ``` Include this module in your `ApplicationController` ```ruby class ApplicationController < ActionController::Base include ActiveAdmin::Audit::ControllerHelper end ``` From model that you want to auditing call `has_versions` method ```ruby class Movie < ActiveRecord::Base has_many :genres has_many :images has_versions skip: [:comment], also_include: { genres: [:id], images: [:url, :width, :height, :kind], } ``` By default `has_versions` take care about all record attributes including belongs_to references. If you don't want to include some attribute you can pass it name to `skip` options. If you want to include has_many relation pass it's name with attributes to `also_include` option. To display table with latest changes on the ActiveAdmin resource page use helper `latest_versions`: ```ruby ActiveAdmin.register Movie do # ... show do |movie| # ... latest_versions(movie) end end ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/activeadmin-audit. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).