kanaui 0.6.0 → 0.6.1
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 +4 -4
- data/app/assets/javascripts/application.js +1 -0
- data/app/assets/javascripts/kanaui/reports.dataTables.js +73 -2
- data/app/assets/stylesheets/application.css +1 -0
- data/app/assets/stylesheets/kanaui/reports.css +58 -3
- data/app/controllers/kanaui/dashboard_controller.rb +3 -0
- data/app/views/kanaui/dashboard/index.html.erb +142 -128
- data/lib/kanaui/version.rb +1 -1
- data/test/dummy/log/test.log +11 -0
- metadata +4 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83f3deb64dae6bfd29c937bf3c0fa39467a47925
|
4
|
+
data.tar.gz: 7a82c9c19b911572595e3c1dc874b4dde73f2c4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e50d5433acd9f4653acca541e1cf9d10d9ef15af5e99d60974ee7dfe14090c867ca6dd3aa1b1176545392299f6f8246b8f332480cb92e39c68ca1c107bb3def
|
7
|
+
data.tar.gz: 5cab648078055b63104d1dc82dafb7a859e4cc1532737c8f40652304b4923e3f055994bb8823736723c4166836991311d03ee877998c6e9b10d1a67896218f20
|
@@ -12,6 +12,7 @@
|
|
12
12
|
//= require twitter/bootstrap
|
13
13
|
//= require dataTables/jquery.dataTables
|
14
14
|
//= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
|
15
|
+
//= require dataTables/extras/dataTables.colVis
|
15
16
|
//= require d3
|
16
17
|
//= require bootstrap-datepicker
|
17
18
|
//= require jquery.spin
|
@@ -40,16 +40,87 @@ ReportsDataTables.prototype.buildTable = function(data, wrapper) {
|
|
40
40
|
}
|
41
41
|
|
42
42
|
var aoColumns = [];
|
43
|
+
var columnsVisible = [];
|
43
44
|
for (var i in data['header']) {
|
44
|
-
|
45
|
+
var isVisible = isColumnVisible(data['header'][i]);
|
46
|
+
aoColumns.push({ "sTitle": data['header'][i], "name": data['header'][i], "visible": isVisible })
|
47
|
+
if (isVisible) {
|
48
|
+
columnsVisible.push(data['header'][i]);
|
49
|
+
}
|
45
50
|
}
|
46
51
|
|
47
52
|
dataTable.dataTable({
|
48
53
|
"aaData": aaData,
|
49
|
-
"aoColumns": aoColumns
|
54
|
+
"aoColumns": aoColumns,
|
55
|
+
"sDom": 'C<"clear">lfrtip'
|
50
56
|
});
|
57
|
+
|
58
|
+
dataTable.on( 'column-visibility.dt', function ( e, settings, column, state ) {
|
59
|
+
setColumnVisible(settings.aoColumns[column].name, state);
|
60
|
+
});
|
61
|
+
|
62
|
+
$("#copy-url").click(function(e){
|
63
|
+
var pathPlusParams = $(this).data("reports-path");
|
64
|
+
var sPageURL = decodeURIComponent(pathPlusParams.substring(1)).split('?');
|
65
|
+
var params = sPageURL[1].split('&');
|
66
|
+
|
67
|
+
var columnsVisible = $("#visible-table-columns").val();
|
68
|
+
var placeholder = $("#url-placeholder");
|
69
|
+
|
70
|
+
var urlToShare = window.location.origin + "/" + sPageURL[0] + "?";
|
71
|
+
for (var i in params) {
|
72
|
+
var keyValue = params[i].split('=');
|
73
|
+
if (keyValue[0] == 'columns') {
|
74
|
+
continue;
|
75
|
+
}
|
76
|
+
urlToShare += "&" + params[i];
|
77
|
+
}
|
78
|
+
|
79
|
+
placeholder.val(urlToShare + "&columns=" + columnsVisible);
|
80
|
+
placeholder.removeClass("hidden");
|
81
|
+
placeholder.select();
|
82
|
+
|
83
|
+
document.execCommand("Copy");
|
84
|
+
placeholder.addClass("hidden");
|
85
|
+
alert("URL copied into the clipboard!")
|
86
|
+
});
|
87
|
+
|
88
|
+
$("#visible-table-columns").val(columnsVisible.join());
|
51
89
|
}
|
52
90
|
|
53
91
|
ReportsDataTables.prototype.buildCSVURL = function(position) {
|
54
92
|
return this.reports.buildDataURL(position, 'csv');
|
55
93
|
}
|
94
|
+
function setColumnVisible(column, isVisible) {
|
95
|
+
var columnsVisible = $("#visible-table-columns").val();
|
96
|
+
if (columnsVisible == undefined || columnsVisible == null || columnsVisible.length == 0) {
|
97
|
+
columnsVisible = [];
|
98
|
+
} else {
|
99
|
+
columnsVisible = (columnsVisible).split(",");
|
100
|
+
}
|
101
|
+
|
102
|
+
var columnIndex = columnsVisible.indexOf(column);
|
103
|
+
if (isVisible && columnIndex == -1) {
|
104
|
+
columnsVisible.push(column);
|
105
|
+
} else if (!isVisible && columnIndex != -1) {
|
106
|
+
columnsVisible.splice(columnIndex, 1);
|
107
|
+
}
|
108
|
+
|
109
|
+
$("#visible-table-columns").val(columnsVisible.join());
|
110
|
+
}
|
111
|
+
|
112
|
+
function isColumnVisible(column) {
|
113
|
+
var columnsVisible = $("#visible-table-columns").val();
|
114
|
+
if ((columnsVisible == undefined || columnsVisible == null || columnsVisible.length == 0) && column != 'tenant_record_id') {
|
115
|
+
return true;
|
116
|
+
}
|
117
|
+
columnsVisible = (columnsVisible).split(",");
|
118
|
+
|
119
|
+
for (var i in columnsVisible) {
|
120
|
+
if (columnsVisible[i] == column) {
|
121
|
+
return true;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
return false;
|
126
|
+
}
|
@@ -6,6 +6,7 @@
|
|
6
6
|
*= require bootstrap-datepicker3
|
7
7
|
*= require dataTables/jquery.dataTables
|
8
8
|
*= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
|
9
|
+
*= require dataTables/extras/dataTables.colVis
|
9
10
|
*= require font-awesome
|
10
11
|
*= require bootstrap_and_overrides
|
11
12
|
*= require kanaui/kanaui
|
@@ -1,6 +1,3 @@
|
|
1
|
-
#date-picker {
|
2
|
-
margin-bottom: 20px;
|
3
|
-
}
|
4
1
|
|
5
2
|
.axis path,
|
6
3
|
.axis line {
|
@@ -92,3 +89,61 @@
|
|
92
89
|
.grid path{
|
93
90
|
stroke-width: 0;
|
94
91
|
}
|
92
|
+
|
93
|
+
button.ColVis_Button, button.ColVis_Button:hover {
|
94
|
+
background: inherit;
|
95
|
+
box-shadow: unset;
|
96
|
+
text-transform: none;
|
97
|
+
color: #333 !important;
|
98
|
+
border-color: #adadad;
|
99
|
+
}
|
100
|
+
|
101
|
+
ul.ColVis_collection {
|
102
|
+
background-color: #f3f3f3;
|
103
|
+
}
|
104
|
+
|
105
|
+
ul.ColVis_collection li, ul.ColVis_collection li:hover{
|
106
|
+
border: none;
|
107
|
+
box-shadow: unset;
|
108
|
+
background: transparent;
|
109
|
+
}
|
110
|
+
|
111
|
+
button.ColVis_Button:hover, ul.ColVis_collection li:hover {
|
112
|
+
background-color: #e6e6e6;
|
113
|
+
border-color: #adadad;
|
114
|
+
}
|
115
|
+
|
116
|
+
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
117
|
+
padding: 0.25em 0.5em;
|
118
|
+
}
|
119
|
+
|
120
|
+
.flex-panel {
|
121
|
+
display: -webkit-flex;
|
122
|
+
display: flex;
|
123
|
+
-webkit-flex-direction: row;
|
124
|
+
flex-direction: row;
|
125
|
+
}
|
126
|
+
|
127
|
+
.flex-inner-left-panel {
|
128
|
+
-ms-flex: 1 .5 0%;
|
129
|
+
-webkit-flex: 1 .5 0%;
|
130
|
+
flex: 1 .5 0%;
|
131
|
+
}
|
132
|
+
|
133
|
+
.flex-inner-left-panel ul li {
|
134
|
+
white-space: nowrap;
|
135
|
+
}
|
136
|
+
|
137
|
+
.flex-inner-right-panel {
|
138
|
+
-ms-flex: .5 1 70%;
|
139
|
+
-webkit-flex: .5 1 70%;
|
140
|
+
flex: .5 1 70%;
|
141
|
+
}
|
142
|
+
|
143
|
+
#date-picker .form-group {
|
144
|
+
height: 34px;
|
145
|
+
}
|
146
|
+
|
147
|
+
#table-tools {
|
148
|
+
padding-bottom: 10px;
|
149
|
+
}
|
@@ -20,6 +20,9 @@ module Kanaui
|
|
20
20
|
|
21
21
|
query = build_slice_and_dice_query
|
22
22
|
|
23
|
+
# get columns visibility from query parameters to be used by tables
|
24
|
+
@visible_columns = params[:columns]
|
25
|
+
|
23
26
|
# Redirect also in case the dates have been updated to avoid any confusion in the view
|
24
27
|
if query.present? || params[:start_date].blank? || params[:end_date].blank?
|
25
28
|
# TODO Make metrics configurable
|
@@ -1,142 +1,156 @@
|
|
1
|
-
<div class="
|
2
|
-
<!-- MENU -->
|
3
|
-
<div class="
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
1
|
+
<div class="flex-panel">
|
2
|
+
<!-- MENU -->
|
3
|
+
<div class="reports-options flex-inner-left-panel">
|
4
|
+
<div class="row">
|
5
|
+
<% if params[:name] && @report['reportType'] == 'TIMELINE' %>
|
6
|
+
<div id="date-picker" class="col-md-12">
|
7
|
+
<h4>End date</h4>
|
8
|
+
<%= form_tag kanaui_engine.dashboard_index_path, :html => {:class => 'form-horizontal'}, :method => :get do %>
|
9
|
+
<input name="name" type="hidden" value="<%= @raw_name %>">
|
10
|
+
<input name="smooth" type="hidden" value="<%= params[:smooth] %>">
|
11
|
+
<input name="sql_only" type="hidden" value="<%= params[:sql_only] %>">
|
12
|
+
<input name="format" type="hidden" value="<%= params[:format] %>">
|
13
|
+
<input name="delta_days" type="hidden" value="<%= (@end_date.to_date - @start_date.to_date).to_i %>">
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
<div class="form-group">
|
16
|
+
<div class="col-md-12">
|
17
|
+
<input class="form-control" name="end_date" type="text" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-date-today-highlight="true" value="<%= @end_date %>">
|
18
|
+
</div>
|
18
19
|
</div>
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
<
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
20
|
+
<div class="form-group">
|
21
|
+
<div class="col-sm-12">
|
22
|
+
<%= submit_tag 'Refresh', :class => 'btn btn-default' %>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
28
|
+
<div class="col-md-12 col-sm-8">
|
29
|
+
<h4><%= link_to 'Available Reports', kanaui_engine.url_for(:controller => :reports) %></h4>
|
30
|
+
<ul class="nav nav-tabs nav-stacked">
|
31
|
+
<% if Rails.env.development? %>
|
32
|
+
<li class="nav-element">
|
33
|
+
<%= link_to "Fake pie", kanaui_engine.dashboard_index_path(:fake => 1, :name => 'fake_pie', :type => 'pie') %>
|
34
|
+
</li>
|
35
|
+
<li class="nav-element">
|
36
|
+
<%= link_to "Fake line", kanaui_engine.dashboard_index_path(:fake => 1, :name => 'fake_line', :type => 'line') %>
|
37
|
+
</li>
|
38
|
+
<% end %>
|
39
|
+
<% @reports.each do |r| %>
|
40
|
+
<% link = kanaui_engine.dashboard_index_path(params.to_h.merge(:name => r['reportName'])) %>
|
41
|
+
<li class="nav-element <%= params[:name] == r['reportName'] ? 'current' : '' %>">
|
42
|
+
<%= link_to r['reportPrettyName'], link, :class => "truncate-text", title: r['reportName'].titleize %>
|
35
43
|
</li>
|
36
44
|
<% end %>
|
37
|
-
|
38
|
-
|
39
|
-
<li class="nav-element <%= params[:name] == r['reportName'] ? 'current' : '' %>">
|
40
|
-
<%= link_to r['reportPrettyName'], link, :class => "truncate-text", title: r['reportName'].titleize %>
|
41
|
-
</li>
|
42
|
-
<% end %>
|
43
|
-
</ul>
|
45
|
+
</ul>
|
46
|
+
</div>
|
44
47
|
</div>
|
45
48
|
</div>
|
46
|
-
</div>
|
47
49
|
|
48
|
-
<!-- DASHBOARD -->
|
49
|
-
<div class="
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
50
|
+
<!-- DASHBOARD -->
|
51
|
+
<div class="flex-inner-right-panel">
|
52
|
+
<div class="row">
|
53
|
+
<div class="col-sm-12">
|
54
|
+
<% if params[:name] %>
|
55
|
+
<h2 class="chart-title">
|
56
|
+
<%= @raw_name.titleize %>
|
57
|
+
</h2>
|
58
|
+
<% if @report['reportType'] == 'TABLE' %>
|
59
|
+
<input type="hidden" id="visible-table-columns" value="<%= @visible_columns %>">
|
60
|
+
|
61
|
+
<div id="table-tools" class="row">
|
62
|
+
<div class="col-sm-2">
|
63
|
+
<a class="btn btn-default" id="copy-url" data-reports-path="<%= kanaui_engine.dashboard_index_path(params.to_h) %>">Copy URL</a>
|
64
|
+
<input id="url-placeholder" class="form-control hidden">
|
65
|
+
</div>
|
66
|
+
</div>
|
61
67
|
<% end %>
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
<a class="btn btn-default" role="button" data-toggle="collapse" href="#advanced-controls" aria-expanded="false" aria-controls="advanced-controls">
|
69
|
-
Advanced controls
|
70
|
-
</a>
|
71
|
-
<div class="collapse" id="advanced-controls">
|
72
|
-
<div class="well">
|
73
|
-
<ul>
|
74
|
-
<% if @report['reportType'] == 'TIMELINE' %>
|
75
|
-
<% at_least_two_months = params[:start_date].blank? || params[:end_date].blank? || (params[:end_date].to_date.beginning_of_month - 1.month > params[:start_date].to_date) %>
|
76
|
-
<% at_least_two_weeks = params[:start_date].blank? || params[:end_date].blank? || (params[:end_date].to_date.beginning_of_week - 1.week > params[:start_date].to_date) %>
|
77
|
-
<% if params[:smooth] != 'AVERAGE_WEEKLY' && at_least_two_weeks %>
|
78
|
-
<li><%= link_to 'Weekly average', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'AVERAGE_WEEKLY')) %></li>
|
79
|
-
<% end %>
|
80
|
-
<% if params[:smooth] != 'AVERAGE_MONTHLY' && at_least_two_months %>
|
81
|
-
<li><%= link_to 'Monthly average', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'AVERAGE_MONTHLY')) %></li>
|
82
|
-
<% end %>
|
83
|
-
<% if params[:smooth] != 'SUM_WEEKLY' && at_least_two_weeks %>
|
84
|
-
<li><%= link_to 'Weekly sum', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'SUM_WEEKLY')) %></li>
|
68
|
+
<div id="loading-spinner"></div>
|
69
|
+
<div id="chartAnchor" data-reports-path="<%= kanaui_engine.reports_path(params.to_h) %>"></div>
|
70
|
+
<div id="date-controls" style="display: none;">
|
71
|
+
<ul class="nav nav-pills nav-justified">
|
72
|
+
<% @available_start_dates.each do |key, value| %>
|
73
|
+
<li><%= link_to key, kanaui_engine.dashboard_index_path(params.to_h.merge(:start_date => value)) %></li>
|
85
74
|
<% end %>
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
75
|
+
</ul>
|
76
|
+
</div>
|
77
|
+
<hr>
|
78
|
+
<div class="pull-right">
|
79
|
+
<%= link_to 'Download raw data', kanaui_engine.reports_path(params.to_h.merge(:format => 'csv')), class: 'btn btn-default' %>
|
80
|
+
</div>
|
81
|
+
<a class="btn btn-default" role="button" data-toggle="collapse" href="#advanced-controls" aria-expanded="false" aria-controls="advanced-controls">
|
82
|
+
Advanced controls
|
83
|
+
</a>
|
84
|
+
<div class="collapse" id="advanced-controls">
|
85
|
+
<div class="well">
|
86
|
+
<ul>
|
87
|
+
<% if @report['reportType'] == 'TIMELINE' %>
|
88
|
+
<% at_least_two_months = params[:start_date].blank? || params[:end_date].blank? || (params[:end_date].to_date.beginning_of_month - 1.month > params[:start_date].to_date) %>
|
89
|
+
<% at_least_two_weeks = params[:start_date].blank? || params[:end_date].blank? || (params[:end_date].to_date.beginning_of_week - 1.week > params[:start_date].to_date) %>
|
90
|
+
<% if params[:smooth] != 'AVERAGE_WEEKLY' && at_least_two_weeks %>
|
91
|
+
<li><%= link_to 'Weekly average', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'AVERAGE_WEEKLY')) %></li>
|
92
|
+
<% end %>
|
93
|
+
<% if params[:smooth] != 'AVERAGE_MONTHLY' && at_least_two_months %>
|
94
|
+
<li><%= link_to 'Monthly average', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'AVERAGE_MONTHLY')) %></li>
|
95
|
+
<% end %>
|
96
|
+
<% if params[:smooth] != 'SUM_WEEKLY' && at_least_two_weeks %>
|
97
|
+
<li><%= link_to 'Weekly sum', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'SUM_WEEKLY')) %></li>
|
98
|
+
<% end %>
|
99
|
+
<% if params[:smooth] != 'SUM_MONTHLY' && at_least_two_months %>
|
100
|
+
<li><%= link_to 'Monthly sum', kanaui_engine.dashboard_index_path(params.to_h.merge(:smooth => 'SUM_MONTHLY')) %></li>
|
101
|
+
<% end %>
|
102
|
+
<% end %>
|
103
|
+
<% filter_fields = ((@report['schema'] || {})['fields'] || []).select { |field| !field['distinctValues'].blank? && field['dataType'] =~ /char/ } # To ignore tenant_record_id %>
|
104
|
+
<% unless filter_fields.empty? %>
|
105
|
+
<li>Slicing & Dicing:
|
106
|
+
<%= form_tag kanaui_engine.dashboard_index_path(params.to_h), :method => :get, :class => 'form-horizontal' do %>
|
107
|
+
<input name="start_date" type="hidden" value="<%= @start_date %>">
|
108
|
+
<input name="end_date" type="hidden" value="<%= @end_date %>">
|
109
|
+
<input name="name" type="hidden" value="<%= @raw_name %>">
|
110
|
+
<input name="smooth" type="hidden" value="<%= params[:smooth] %>">
|
111
|
+
<input name="sql_only" type="hidden" value="<%= params[:sql_only] %>">
|
112
|
+
<input name="format" type="hidden" value="<%= params[:format] %>">
|
100
113
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
114
|
+
<fieldset class="form-group">
|
115
|
+
<legend>Filters</legend>
|
116
|
+
<% filter_fields.each do |field| %>
|
117
|
+
<div class="form-group">
|
118
|
+
<%= label_tag "filter_#{field['name']}", field['name'], :class => 'col-sm-2 control-label' %>
|
119
|
+
<div class="col-sm-10">
|
120
|
+
<%= select_tag "filter_#{field['name']}", options_for_select(field['distinctValues']), :multiple => true, :class => 'form-control' %>
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
<% end %>
|
124
|
+
</fieldset>
|
125
|
+
<fieldset class="form-group">
|
126
|
+
<legend>Dimensions to plot</legend>
|
127
|
+
<% filter_fields.each do |field| %>
|
128
|
+
<div class="form-group">
|
129
|
+
<%= label_tag "group_#{field['name']}", field['name'], :class => 'col-sm-2 control-label' %>
|
130
|
+
<div class="col-sm-10">
|
131
|
+
<%= select_tag "group_#{field['name']}", options_for_select(field['distinctValues']), :multiple => true, :class => 'form-control' %>
|
132
|
+
</div>
|
133
|
+
</div>
|
134
|
+
<% end %>
|
135
|
+
</fieldset>
|
123
136
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
137
|
+
<div class="form-group">
|
138
|
+
<div class="col-sm-offset-2 col-sm-10">
|
139
|
+
<%= submit_tag 'Refresh', :class => 'btn btn-default' %>
|
140
|
+
</div>
|
141
|
+
</div>
|
142
|
+
<% end %>
|
143
|
+
</li>
|
144
|
+
<li>Current Analytics query: <%= link_to '<i class="fa fa-question-circle"></i>'.html_safe, 'http://docs.killbill.io/latest/userguide_analytics.html#_dashboard_api', :target => '_blank' %>
|
145
|
+
<pre><%= params[:name] -%></pre>
|
146
|
+
</li>
|
147
|
+
<% end %>
|
148
|
+
<li><%= link_to 'SQL query', kanaui_engine.reports_path(params.to_h.merge(:sql_only => true)) %></li>
|
149
|
+
</ul>
|
150
|
+
</div>
|
151
|
+
</div>
|
152
|
+
<% end %>
|
138
153
|
</div>
|
139
|
-
|
154
|
+
</div>
|
140
155
|
</div>
|
141
156
|
</div>
|
142
|
-
</div>
|
data/lib/kanaui/version.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
----------------------
|
2
|
+
KanauiTest: test_truth
|
3
|
+
----------------------
|
4
|
+
-----------------------------------------------
|
5
|
+
NavigationTest: test_can_see_the_dashboard_page
|
6
|
+
-----------------------------------------------
|
7
|
+
Started GET "/kanaui" for 127.0.0.1 at 2018-04-12 15:30:51 +0000
|
8
|
+
Processing by Kanaui::DashboardController#index as HTML
|
9
|
+
Request method='GET', uri='http://127.0.0.1:8080/plugins/killbill-analytics/reports'
|
10
|
+
accept='application/json', user-agent='killbill/2.2.2; ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]', accept-encoding='gzip;q=1.0,deflate;q=0.6,identity;q=0.3', x-killbill-apikey='bob', x-killbill-apisecret='lazar', authorization='Basic [FILTERED]'
|
11
|
+
Completed 500 Internal Server Error in 1ms
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kanaui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kill Bill core team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '1.6'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: killbill-client
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '1.0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '1.0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: rake
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -281,6 +267,7 @@ files:
|
|
281
267
|
- test/dummy/config/locales/en.yml
|
282
268
|
- test/dummy/config/routes.rb
|
283
269
|
- test/dummy/config/secrets.yml
|
270
|
+
- test/dummy/log/test.log
|
284
271
|
- test/dummy/public/404.html
|
285
272
|
- test/dummy/public/422.html
|
286
273
|
- test/dummy/public/500.html
|
@@ -322,6 +309,7 @@ test_files:
|
|
322
309
|
- test/unit/helpers/kanaui/tests_helper_test.rb
|
323
310
|
- test/test_helper.rb
|
324
311
|
- test/integration/navigation_test.rb
|
312
|
+
- test/dummy/log/test.log
|
325
313
|
- test/dummy/public/404.html
|
326
314
|
- test/dummy/public/422.html
|
327
315
|
- test/dummy/public/500.html
|