No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Per-Model HighCharts for Rails Admin
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

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 (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.