= RailsAdminCharts

Installation

In your Gemfile, add the following dependency:

gem 'rails_admin_charts'

Run:

$ bundle install

This will include the lazy_high_charts gem and add the assets to the pipeline. NB: remember to recompile assets if adding this to staging or production environments.

In your RailsAdmin initializer (app/config/initializers/rails_admin.rb), enable the action by adding:

config.actions do
  all # NB: comment out this line for RailsAdmin < 0.6.0
  charts
end

For any model where you wish to display a chart (defaults to a cumulative total showing the last 100 days), add the following just under the class declaration:

include RailsAdminCharts

This adds the methods delta_records_since and total_records_since to your model, alongside graph_data which utilises them. The data displayed in the chart can be altered by overriding the class method graph_data in your model, for example in the case of a User model using single table inheritance:

  def self.graph_data since=30.days.ago
    [
      {
          name: 'Admin Users',
          pointInterval: point_interval = 1.day * 1000,
          pointStart: start_point = since.to_i * 1000,
          data: self.where(type: 'Admin').delta_records_since(since)
      },
      {
          name: 'Standard Users',
          pointInterval: point_interval,
          pointStart: start_point,
          data: self.where(type: nil).delta_records_since(since)
      }
    ]
  end

You can set custom categories by overriding the method xaxis

  def self.xaxis
    ['cat a', 'cat b', 'cat c' 'cat d', 'cat e', 'cat f', 'cat g', 'cat h']
  end

You can set label rotation by overriding the method label_rotation It expects a string -45 or -90

  def self.label_rotation
    "-45"
  end

This project uses MIT-LICENSE.