dash_creator 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +170 -0
- data/Rakefile +36 -0
- data/app/assets/config/dash_creator_manifest.js +2 -0
- data/app/assets/javascripts/dash_creator/application.js +24 -0
- data/app/assets/javascripts/dash_creator/chart.js +2 -0
- data/app/assets/javascripts/dash_creator/dashboard.js +2 -0
- data/app/assets/javascripts/dash_creator/dashboard_object.js +2 -0
- data/app/assets/javascripts/dash_creator/filter.js +2 -0
- data/app/assets/javascripts/dash_creator/libs/Chart.js +12269 -0
- data/app/assets/javascripts/dash_creator/libs/bootstrap.js +3535 -0
- data/app/assets/javascripts/dash_creator/libs/chartCreator.js +1582 -0
- data/app/assets/javascripts/dash_creator/libs/dashboardCreator.js +531 -0
- data/app/assets/javascripts/dash_creator/libs/daterangepicker.js +1626 -0
- data/app/assets/javascripts/dash_creator/libs/filterCreator.js +733 -0
- data/app/assets/javascripts/dash_creator/libs/jquery-ui.js +18706 -0
- data/app/assets/javascripts/dash_creator/libs/jquery.minicolors.js +1108 -0
- data/app/assets/javascripts/dash_creator/libs/moment.js +4301 -0
- data/app/assets/javascripts/dash_creator/libs/tether.js +1811 -0
- data/app/assets/javascripts/dash_creator/user.js +2 -0
- data/app/assets/stylesheets/dash_creator/application.css +16 -0
- data/app/assets/stylesheets/dash_creator/chart.css +4 -0
- data/app/assets/stylesheets/dash_creator/dashboard.css +4 -0
- data/app/assets/stylesheets/dash_creator/dashboard_object.css +4 -0
- data/app/assets/stylesheets/dash_creator/filter.css +4 -0
- data/app/assets/stylesheets/dash_creator/fonts/FontAwesome.otf +0 -0
- data/app/assets/stylesheets/dash_creator/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/stylesheets/dash_creator/fonts/fontawesome-webfont.svg +2671 -0
- data/app/assets/stylesheets/dash_creator/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/stylesheets/dash_creator/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/stylesheets/dash_creator/fonts/fontawesome-webfont.woff2 +0 -0
- data/app/assets/stylesheets/dash_creator/libs/font-awesome.css +2199 -0
- data/app/assets/stylesheets/dash_creator/libs/jquery.minicolors.css +319 -0
- data/app/assets/stylesheets/dash_creator/libs/jquery.minicolors.png +0 -0
- data/app/assets/stylesheets/dash_creator/libs/style.css +13714 -0
- data/app/assets/stylesheets/dash_creator/user.css +4 -0
- data/app/controllers/dash_creator/application_controller.rb +3 -0
- data/app/controllers/dash_creator/chart_controller.rb +81 -0
- data/app/controllers/dash_creator/dashboard_controller.rb +37 -0
- data/app/controllers/dash_creator/dashboard_object_controller.rb +34 -0
- data/app/controllers/dash_creator/filter_controller.rb +60 -0
- data/app/controllers/dash_creator/user_controller.rb +82 -0
- data/app/helpers/dash_creator/application_helper.rb +4 -0
- data/app/helpers/dash_creator/chart_helper.rb +829 -0
- data/app/helpers/dash_creator/dashboard_helper.rb +4 -0
- data/app/helpers/dash_creator/dashboard_object_helper.rb +4 -0
- data/app/helpers/dash_creator/filter_helper.rb +237 -0
- data/app/helpers/dash_creator/user_helper.rb +4 -0
- data/app/jobs/dash_creator/application_job.rb +4 -0
- data/app/mailers/dash_creator/application_mailer.rb +6 -0
- data/app/models/dash_creator/application_record.rb +5 -0
- data/app/models/dash_creator/chart.rb +21 -0
- data/app/models/dash_creator/dashboard.rb +13 -0
- data/app/models/dash_creator/dashboard_object.rb +7 -0
- data/app/models/dash_creator/filter.rb +22 -0
- data/app/views/dash_creator/chart/_chart_creator.html.erb +230 -0
- data/app/views/dash_creator/chart/_modals.html.erb +74 -0
- data/app/views/dash_creator/chart/_plot_chart.html.erb +45 -0
- data/app/views/dash_creator/chart/create_chart.js.erb +53 -0
- data/app/views/dash_creator/dashboard/_dashboard_creator.html.erb +182 -0
- data/app/views/dash_creator/dashboard/_modals.html.erb +74 -0
- data/app/views/dash_creator/dashboard_object/_chart.html.erb +9 -0
- data/app/views/dash_creator/dashboard_object/_stat.html.erb +24 -0
- data/app/views/dash_creator/dashboard_object/_table.html.erb +16 -0
- data/app/views/dash_creator/filter/_filtering_card.html.erb +132 -0
- data/app/views/dash_creator/filter/_modals.html.erb +51 -0
- data/app/views/dash_creator/filter/_result_tables.html.erb +55 -0
- data/app/views/dash_creator/filter/apply_filtering.js.erb +46 -0
- data/app/views/dash_creator/filter/create_stat.js.erb +20 -0
- data/app/views/dash_creator/layouts/application.html.erb +64 -0
- data/app/views/dash_creator/layouts/menu/_left_menu.html.erb +12 -0
- data/app/views/dash_creator/user/_section_card.html.erb +17 -0
- data/app/views/dash_creator/user/creator.html.erb +11 -0
- data/app/views/dash_creator/user/dashboard.html.erb +10 -0
- data/config/initializers/dash_creator.rb +0 -0
- data/config/routes.rb +30 -0
- data/lib/dash_creator.rb +87 -0
- data/lib/dash_creator/acts_as_dash_creator.rb +16 -0
- data/lib/dash_creator/acts_as_dashboard_object.rb +19 -0
- data/lib/dash_creator/engine.rb +11 -0
- data/lib/dash_creator/version.rb +3 -0
- data/lib/generators/dash_creator/install/install_generator.rb +70 -0
- data/lib/generators/dash_creator/install/templates/_chart.html.erb +9 -0
- data/lib/generators/dash_creator/install/templates/_section_card.html.erb +17 -0
- data/lib/generators/dash_creator/install/templates/_stat.html.erb +24 -0
- data/lib/generators/dash_creator/install/templates/_table.html.erb +16 -0
- data/lib/generators/dash_creator/install/templates/add_indexes_to_dash_creator_tables.rb +15 -0
- data/lib/generators/dash_creator/install/templates/create_dash_creator_charts.rb +25 -0
- data/lib/generators/dash_creator/install/templates/create_dash_creator_dashboard_objects.rb +36 -0
- data/lib/generators/dash_creator/install/templates/create_dash_creator_dashboards.rb +28 -0
- data/lib/generators/dash_creator/install/templates/create_dash_creator_filters.rb +22 -0
- data/lib/generators/dash_creator/install/templates/dashboard.html.erb +10 -0
- data/lib/generators/dash_creator/install/templates/initializer.rb +48 -0
- data/lib/tasks/dash_creator_tasks.rake +4 -0
- metadata +196 -0
File without changes
|
data/config/routes.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
DashCreator::Engine.routes.draw do
|
2
|
+
root to: 'user#creator'
|
3
|
+
|
4
|
+
get '/creator', to: 'user#creator', as: :creator
|
5
|
+
get '/dashboard/:dashboard_id', to: 'user#dashboard', as: :dashboard
|
6
|
+
|
7
|
+
post '/get_filter', to: 'filter#get_filter', as: :get_filter
|
8
|
+
post '/save_filter', to: 'filter#save_filter', as: :save_filter
|
9
|
+
post '/delete_filters', to: 'filter#delete_filters', as: :delete_filters
|
10
|
+
|
11
|
+
post '/filtering_result', to: 'filter#filtering_result', as: :filtering_result
|
12
|
+
get '/download_csv', to: 'filter#download_csv', as: :download_csv
|
13
|
+
|
14
|
+
post '/create_stat', to: 'filter#create_stat', as: :create_stat
|
15
|
+
|
16
|
+
post '/create_chart', to: 'chart#create_chart', as: :create_chart
|
17
|
+
post '/save_chart', to: 'chart#save_chart', as: :save_chart
|
18
|
+
post '/edit_chart', to: 'chart#edit_chart', as: :edit_chart
|
19
|
+
post '/get_chart', to: 'chart#get_chart', as: :get_chart
|
20
|
+
post '/delete_charts', to: 'chart#delete_charts', as: :delete_charts
|
21
|
+
|
22
|
+
post '/pluck_labels', to: 'chart#pluck_labels', as: :pluck_labels
|
23
|
+
|
24
|
+
post '/save_dashboard', to: 'dashboard#save_dashboard', as: :save_dashboard
|
25
|
+
post '/edit_dashboard', to: 'dashboard#edit_dashboard', as: :edit_dashboard
|
26
|
+
post '/get_dashboard', to: 'dashboard#get_dashboard', as: :get_dashboard
|
27
|
+
post '/delete_dashboards', to: 'dashboard#delete_dashboards', as: :delete_dashboards
|
28
|
+
|
29
|
+
post '/get_model_objects', to: 'dashboard_object#get_model_objects', as: :get_model_objects
|
30
|
+
end
|
data/lib/dash_creator.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
require "dash_creator/engine"
|
2
|
+
require "dash_creator/acts_as_dash_creator"
|
3
|
+
require "dash_creator/acts_as_dashboard_object"
|
4
|
+
|
5
|
+
module DashCreator
|
6
|
+
|
7
|
+
class Configuration
|
8
|
+
mattr_accessor :use_pgcrypto
|
9
|
+
mattr_accessor :redis_store_variable
|
10
|
+
|
11
|
+
mattr_accessor :user_class
|
12
|
+
mattr_accessor :except_models
|
13
|
+
mattr_accessor :except_attributes
|
14
|
+
mattr_accessor :attributes_aliases
|
15
|
+
mattr_accessor :columns_aliases
|
16
|
+
mattr_accessor :displayed_model_names
|
17
|
+
mattr_accessor :displayed_attribute_names
|
18
|
+
|
19
|
+
mattr_accessor :layout_path
|
20
|
+
|
21
|
+
self.use_pgcrypto = true
|
22
|
+
self.redis_store_variable = nil
|
23
|
+
|
24
|
+
self.user_class = 'User'
|
25
|
+
self.except_models = []
|
26
|
+
self.except_attributes = []
|
27
|
+
self.attributes_aliases = {}
|
28
|
+
self.columns_aliases = {}
|
29
|
+
self.displayed_model_names = {}
|
30
|
+
self.displayed_attribute_names = {}
|
31
|
+
|
32
|
+
self.layout_path = 'dash_creator/layouts/application'
|
33
|
+
end
|
34
|
+
class << self
|
35
|
+
attr_writer :configuration
|
36
|
+
end
|
37
|
+
|
38
|
+
module_function
|
39
|
+
def configuration
|
40
|
+
@configuration ||= Configuration.new
|
41
|
+
end
|
42
|
+
|
43
|
+
def configure
|
44
|
+
yield(configuration)
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
def self.use_pgcrypto
|
49
|
+
self.configuration.use_pgcrypto
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.redis_store_variable
|
53
|
+
self.configuration.redis_store_variable
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.user_class
|
57
|
+
self.configuration.user_class.safe_constantize
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.except_models
|
61
|
+
self.configuration.except_models.map{ |m| m.gsub('::', '') }
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.except_attributes
|
65
|
+
self.configuration.except_attributes
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.attributes_aliases
|
69
|
+
self.configuration.attributes_aliases.stringify_keys
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.columns_aliases
|
73
|
+
self.configuration.columns_aliases.stringify_keys
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.displayed_model_names
|
77
|
+
self.configuration.displayed_model_names.stringify_keys
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.displayed_attribute_names
|
81
|
+
self.configuration.displayed_attribute_names.deep_stringify_keys
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.layout_path
|
85
|
+
self.configuration.layout_path
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module DashCreator
|
2
|
+
module ActsAsDashCreator
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def acts_as_dash_creator
|
10
|
+
has_many :dash_creator_filters, dependent: :destroy
|
11
|
+
has_many :dash_creator_charts, dependent: :destroy
|
12
|
+
has_many :dash_creator_dashboards, dependent: :destroy
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module DashCreator
|
2
|
+
module ActsAsDashboardObject
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def acts_as_dashboard_object(name, options = {})
|
10
|
+
DashCreator::DashboardObject.find_or_create_by(
|
11
|
+
name: name,
|
12
|
+
code: name.underscore,
|
13
|
+
related_model: self.class.name,
|
14
|
+
options: options
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
module DashCreator
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < ::Rails::Generators::Base
|
7
|
+
include Rails::Generators::Migration
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
|
+
desc 'add the migrations'
|
10
|
+
|
11
|
+
def self.next_migration_number(path)
|
12
|
+
unless @prev_migration_nr
|
13
|
+
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
14
|
+
else
|
15
|
+
@prev_migration_nr += 1
|
16
|
+
end
|
17
|
+
@prev_migration_nr.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
def copy_migrations
|
21
|
+
migration_template 'create_dash_creator_filters.rb', 'db/migrate/create_dash_creator_filters.rb'
|
22
|
+
migration_template 'create_dash_creator_charts.rb', 'db/migrate/create_dash_creator_charts.rb'
|
23
|
+
migration_template 'create_dash_creator_dashboards.rb', 'db/migrate/create_dash_creator_dashboards.rb'
|
24
|
+
migration_template 'create_dash_creator_dashboard_objects.rb', 'db/migrate/create_dash_creator_dashboard_objects.rb'
|
25
|
+
migration_template 'add_indexes_to_dash_creator_tables.rb', 'db/migrate/add_indexes_to_dash_creator_tables.rb'
|
26
|
+
end
|
27
|
+
|
28
|
+
def copy_initializer_file
|
29
|
+
template 'initializer.rb', 'config/initializers/dash_creator.rb'
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_default_user_for_dash_creator
|
33
|
+
line = 'class ApplicationController < ActionController::Base'
|
34
|
+
gsub_file 'app/controllers/application_controller.rb', /(#{Regexp.escape(line)})/mi do |match|
|
35
|
+
"#{match}\n def user_for_dash_creator\n current_user\n end\n"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def add_default_acts_as_dash_creator
|
40
|
+
line = 'class User < ApplicationRecord'
|
41
|
+
gsub_file 'app/models/user.rb', /(#{Regexp.escape(line)})/mi do |match|
|
42
|
+
"include DashCreator::ActsAsDashCreator\n\n#{match}\n acts_as_dash_creator\n"
|
43
|
+
end
|
44
|
+
|
45
|
+
line = 'class User < ActiveRecord::Base'
|
46
|
+
gsub_file 'app/models/user.rb', /(#{Regexp.escape(line)})/mi do |match|
|
47
|
+
"include DashCreator::ActsAsDashCreator\n\n#{match}\n acts_as_dash_creator\n"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def add_dash_creator_routes
|
52
|
+
line = 'Rails.application.routes.draw do'
|
53
|
+
gsub_file 'config/routes.rb', /(#{Regexp.escape(line)})/mi do |match|
|
54
|
+
"#{match}\n mount DashCreator::Engine, at: '/dash_creator'\n"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def add_template_dashboard_views
|
59
|
+
path = File.dirname(__FILE__) + '/templates/'
|
60
|
+
user_views_path = 'app/views/user/'
|
61
|
+
dashboard_objects_path = 'app/views/dash_creator/dashboard_object/'
|
62
|
+
create_file user_views_path + 'dashboard.html.erb', File.read(path + 'dashboard.html.erb')
|
63
|
+
create_file user_views_path + '_section_card.html.erb', File.read(path + '_section_card.html.erb')
|
64
|
+
create_file dashboard_objects_path + '_chart.html.erb', File.read(path + '_chart.html.erb')
|
65
|
+
create_file dashboard_objects_path + '_stat.html.erb', File.read(path + '_stat.html.erb')
|
66
|
+
create_file dashboard_objects_path + '_table.html.erb', File.read(path + '_table.html.erb')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class="col-md-<%= chart['size'] %> offset-md-<%= chart['offset'] %>" style="margin-bottom: 50px;">
|
2
|
+
<div class="chart-wrapper" data-id="<%= chart['id'] %>" style="height: 400px;">
|
3
|
+
<iframe class="chartjs-hidden-iframe" tabindex="-1" style="display: flex; overflow: hidden; border: 0; margin: 0; top: 0; left: 0; bottom: 0; right: 0; height: 100%; width: 100%; position: absolute; pointer-events: none; z-index: -1;"></iframe>
|
4
|
+
</div>
|
5
|
+
<script>
|
6
|
+
var params = {chart_id: '<%= chart['id'] %>'};
|
7
|
+
$.post("<%= get_chart_path %>", params);
|
8
|
+
</script>
|
9
|
+
</div>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div class="col-md-<%= section['size'] %> offset-md-<%= section['offset'] %>">
|
2
|
+
<div class="card">
|
3
|
+
<div class="card-header">
|
4
|
+
<%= section['name'] %>
|
5
|
+
</div>
|
6
|
+
<div class="card-block">
|
7
|
+
<div class="row">
|
8
|
+
<% unless section['objects'].nil? %>
|
9
|
+
<% section['objects'].each do |index, object| %>
|
10
|
+
<%= render 'dash_creator/dashboard_object/' + object['type'], {"#{object['type']}": object} %>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<!--/.card-->
|
17
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% filter = DashCreator::Filter.find(stat['id']) %>
|
2
|
+
|
3
|
+
<div class="col-md-<%= stat['size'] %> offset-md-<%= stat['offset'] %>" style="margin-bottom: 50px;">
|
4
|
+
<div class="stat-wrapper text-center" data-id="<%= stat['id'] %>" style="padding: 20px; background-color: #a6d5ec; border-radius: 5px;">
|
5
|
+
|
6
|
+
<h3><%= filter.name %></h3><br>
|
7
|
+
|
8
|
+
<div class="pull-right">
|
9
|
+
<span id="last-updated"></span>
|
10
|
+
<button id="stat-refresh-btn">Refresh</button>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<% filter.options.keys.each do |k| %>
|
14
|
+
<span class="filter-count" data-key="<%= k %>"></span><br>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<script>
|
18
|
+
var params = {
|
19
|
+
filter_id: '<%= stat['id'] %>'
|
20
|
+
};
|
21
|
+
$.post('<%= create_stat_path %>', params);
|
22
|
+
</script>
|
23
|
+
</div>
|
24
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% filter = DashCreator::Filter.find(table['id']) %>
|
2
|
+
|
3
|
+
<div class="col-md-<%= table['size'] %> offset-md-<%= table['offset'] %>" style="margin-bottom: 50px;">
|
4
|
+
<div class="table-wrapper" data-id="<%= table['id'] %>" style="padding: 20px;">
|
5
|
+
|
6
|
+
<h3><%= filter.name + ' - Table' %></h3><br>
|
7
|
+
|
8
|
+
<script>
|
9
|
+
var params = {
|
10
|
+
filters: <%= raw filter.options.to_json %>,
|
11
|
+
id: '<%= table['id'] %>'
|
12
|
+
};
|
13
|
+
$.post('<%= filtering_result_path %>', params);
|
14
|
+
</script>
|
15
|
+
</div>
|
16
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class AddIndexesToDashCreatorTables < ActiveRecord::Migration[5.1]
|
2
|
+
def change
|
3
|
+
add_index :dash_creator_filters, :user_id
|
4
|
+
add_index :dash_creator_charts, :user_id
|
5
|
+
add_index :dash_creator_dashboards, :user_id
|
6
|
+
|
7
|
+
add_index :dash_creator_filters, :created_at
|
8
|
+
add_index :dash_creator_charts, :created_at
|
9
|
+
add_index :dash_creator_dashboards, :created_at
|
10
|
+
|
11
|
+
add_index :dash_creator_filters, :updated_at
|
12
|
+
add_index :dash_creator_charts, :updated_at
|
13
|
+
add_index :dash_creator_dashboards, :updated_at
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class CreateDashCreatorCharts < ActiveRecord::Migration[5.1]
|
2
|
+
def change
|
3
|
+
if extension_enabled?('pgcrypto') && DashCreator.use_pgcrypto
|
4
|
+
create_table :dash_creator_charts, id: :uuid, default: 'gen_random_uuid()' do |t|
|
5
|
+
t.string :name
|
6
|
+
t.jsonb :data
|
7
|
+
t.uuid :user_id
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
else
|
12
|
+
create_table :dash_creator_charts do |t|
|
13
|
+
t.string :name
|
14
|
+
t.jsonb :data
|
15
|
+
t.id :user_id
|
16
|
+
|
17
|
+
t.timestamps
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.down
|
23
|
+
drop_table :dash_creator_charts
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class CreateDashCreatorDashboardObjects < ActiveRecord::Migration[5.1]
|
2
|
+
def change
|
3
|
+
if extension_enabled?('pgcrypto') && DashCreator.use_pgcrypto
|
4
|
+
create_table :dash_creator_dashboard_objects, id: :uuid, default: 'gen_random_uuid()' do |t|
|
5
|
+
t.string :name
|
6
|
+
t.string :code
|
7
|
+
t.string :related_model
|
8
|
+
|
9
|
+
t.jsonb :options, default: {}
|
10
|
+
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
|
14
|
+
else
|
15
|
+
create_table :dash_creator_dashboard_objects do |t|
|
16
|
+
t.string :name
|
17
|
+
t.string :code
|
18
|
+
t.string :related_model
|
19
|
+
|
20
|
+
t.jsonb :options, default: {}
|
21
|
+
|
22
|
+
t.timestamps
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
add_index :dash_creator_dashboard_objects, :code, unique: true
|
27
|
+
|
28
|
+
DashCreator::DashboardObject.create(name: 'Chart', code: 'chart', related_model: 'DashCreator::Chart', options: {})
|
29
|
+
DashCreator::DashboardObject.create(name: 'Stat', code: 'stat', related_model: 'DashCreator::Filter', options: {})
|
30
|
+
DashCreator::DashboardObject.create(name: 'Table', code: 'table', related_model: 'DashCreator::Filter', options: {})
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.down
|
34
|
+
drop_table :dash_creator_dashboard_objects
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class CreateDashCreatorDashboards < ActiveRecord::Migration[5.1]
|
2
|
+
def change
|
3
|
+
if extension_enabled?('pgcrypto') && DashCreator.use_pgcrypto
|
4
|
+
create_table :dash_creator_dashboards, id: :uuid, default: 'gen_random_uuid()' do |t|
|
5
|
+
t.uuid :user_id
|
6
|
+
|
7
|
+
t.jsonb :options
|
8
|
+
t.string :name
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
|
13
|
+
else
|
14
|
+
create_table :dash_creator_dashboards do |t|
|
15
|
+
t.id :user_id
|
16
|
+
|
17
|
+
t.jsonb :options
|
18
|
+
t.string :name
|
19
|
+
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.down
|
26
|
+
drop_table :dash_creator_dashboards
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateDashCreatorFilters < ActiveRecord::Migration[5.1]
|
2
|
+
def change
|
3
|
+
if extension_enabled?('pgcrypto') && DashCreator.use_pgcrypto
|
4
|
+
create_table :dash_creator_filters, id: :uuid, default: 'gen_random_uuid()' do |t|
|
5
|
+
t.string :name
|
6
|
+
t.jsonb :options, default: {}
|
7
|
+
t.uuid :user_id
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
|
12
|
+
else
|
13
|
+
create_table :dash_creator_filters do |t|
|
14
|
+
t.string :name
|
15
|
+
t.jsonb :options, default: {}
|
16
|
+
t.id :user_id
|
17
|
+
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|