Audited Timeline

This gem provides a frontend to the audited gem.

Screenshot

Setup

Add the gem to your Gemfile and run bundle install.

gem 'audited-timeline'

Usage

Rendering the timeline

Render the audited_timeline/list partial and provide it the audits to be rendered:

<%= render 'audited_timeline/list', audits: @user.all_audits %>

Add CSS Styles

Include audited-timeline in your application.scss:

@import "audited-timeline";

Rendering associated audits

To ease rendering a timeline which includes associated audits, there is a AuditedTimeline::AuditedConcern. Include it in your model along with audited and has_associated_audits:

class User < ActiveRecord::Base
  include AuditedTimeline::AuditedConcern
  audited
  has_associated_audits
end

Overriding an audit diff

It is possible to easily override an audit diff.

In development environment, each audit which has been rendered with the default partial contains a HTML comment which points you to the partial you would have to create.

<div class="audited-timeline-body">
  <!-- create partial audits/user.create to override this table -->
  <h1>User</h1>
  <table class="diff">
   ...
  </table>
</div>

In this case, create in your application app/views/audits/_user.create.html.erb to override this audit type.

audited-timeline will provide a locale called audit to your partial.

Readable object names

audited-timeline will simply call #to_s on your model name. To prevent having #<User:0x007fe2e8a25f58> in your timeline, define #to_s on your User model:

class User < ActiveRecord::Base
  alias_attribute :to_s, :fullname
end