blazer 1.7.0 → 1.7.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/CHANGELOG.md +6 -0
- data/README.md +43 -7
- data/app/assets/javascripts/blazer/Chart.js +8828 -8210
- data/app/assets/javascripts/blazer/ace.js +6 -0
- data/app/assets/javascripts/blazer/application.js +168 -16
- data/app/assets/javascripts/blazer/routes.js.erb +1 -0
- data/app/assets/javascripts/blazer/vue.js +7515 -0
- data/app/assets/stylesheets/blazer/application.css +13 -0
- data/app/controllers/blazer/base_controller.rb +20 -6
- data/app/controllers/blazer/checks_controller.rb +4 -4
- data/app/controllers/blazer/dashboards_controller.rb +2 -2
- data/app/controllers/blazer/queries_controller.rb +17 -10
- data/app/models/blazer/check.rb +13 -4
- data/app/views/blazer/_variables.html.erb +102 -0
- data/app/views/blazer/checks/_form.html.erb +1 -0
- data/app/views/blazer/checks/index.html.erb +1 -1
- data/app/views/blazer/dashboards/_form.html.erb +2 -17
- data/app/views/blazer/dashboards/show.html.erb +1 -101
- data/app/views/blazer/queries/_form.html.erb +4 -140
- data/app/views/blazer/queries/home.html.erb +91 -40
- data/app/views/blazer/queries/show.html.erb +3 -105
- data/app/views/layouts/blazer/application.html.erb +1 -4
- data/blazer.gemspec +2 -0
- data/lib/blazer.rb +2 -0
- data/lib/blazer/adapters/sql_adapter.rb +2 -2
- data/lib/blazer/data_source.rb +1 -1
- data/lib/blazer/version.rb +1 -1
- metadata +34 -3
- data/app/assets/javascripts/blazer/list.js +0 -1258
|
@@ -17,7 +17,7 @@ module Blazer
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
if Blazer.before_action
|
|
20
|
-
before_action Blazer.before_action
|
|
20
|
+
before_action Blazer.before_action.to_sym
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
layout "blazer/application"
|
|
@@ -35,16 +35,24 @@ module Blazer
|
|
|
35
35
|
@bind_vars.each do |var|
|
|
36
36
|
value = params[var].presence
|
|
37
37
|
if value
|
|
38
|
+
if ["start_time", "end_time"].include?(var)
|
|
39
|
+
value = value.to_s.gsub(" ", "+") # fix for Quip bug
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if var.end_with?("_at")
|
|
43
|
+
begin
|
|
44
|
+
value = Blazer.time_zone.parse(value)
|
|
45
|
+
rescue
|
|
46
|
+
# do nothing
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
38
50
|
if value =~ /\A\d+\z/
|
|
39
51
|
value = value.to_i
|
|
40
52
|
elsif value =~ /\A\d+\.\d+\z/
|
|
41
53
|
value = value.to_f
|
|
42
54
|
end
|
|
43
55
|
end
|
|
44
|
-
if var.end_with?("_at")
|
|
45
|
-
value = Blazer.time_zone.parse(value) rescue nil
|
|
46
|
-
end
|
|
47
|
-
value.gsub!(" ", "+") if ["start_time", "end_time"].include?(var) # fix for Quip bug
|
|
48
56
|
statement.gsub!("{#{var}}", ActiveRecord::Base.connection.quote(value))
|
|
49
57
|
end
|
|
50
58
|
end
|
|
@@ -72,7 +80,7 @@ module Blazer
|
|
|
72
80
|
helper_method :extract_vars
|
|
73
81
|
|
|
74
82
|
def variable_params
|
|
75
|
-
params.except(:controller, :action, :id, :host, :query, :dashboard, :query_id, :query_ids, :table_names, :authenticity_token, :utf8, :_method, :commit, :statement, :data_source, :name, :fork_query_id, :blazer).permit!
|
|
83
|
+
params.except(:controller, :action, :id, :host, :query, :dashboard, :query_id, :query_ids, :table_names, :authenticity_token, :utf8, :_method, :commit, :statement, :data_source, :name, :fork_query_id, :blazer, :run_id).permit!
|
|
76
84
|
end
|
|
77
85
|
helper_method :variable_params
|
|
78
86
|
|
|
@@ -80,5 +88,11 @@ module Blazer
|
|
|
80
88
|
send(Blazer.user_method) if Blazer.user_method && respond_to?(Blazer.user_method)
|
|
81
89
|
end
|
|
82
90
|
helper_method :blazer_user
|
|
91
|
+
|
|
92
|
+
def render_errors(resource)
|
|
93
|
+
@errors = resource.errors
|
|
94
|
+
action = resource.persisted? ? :edit : :new
|
|
95
|
+
render action, status: :unprocessable_entity
|
|
96
|
+
end
|
|
83
97
|
end
|
|
84
98
|
end
|
|
@@ -19,17 +19,17 @@ module Blazer
|
|
|
19
19
|
@check.creator = blazer_user if @check.respond_to?(:creator_id=) && blazer_user
|
|
20
20
|
|
|
21
21
|
if @check.save
|
|
22
|
-
redirect_to
|
|
22
|
+
redirect_to query_path(@check.query)
|
|
23
23
|
else
|
|
24
|
-
|
|
24
|
+
render_errors @check
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def update
|
|
29
29
|
if @check.update(check_params)
|
|
30
|
-
redirect_to
|
|
30
|
+
redirect_to query_path(@check.query)
|
|
31
31
|
else
|
|
32
|
-
|
|
32
|
+
render_errors @check
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -19,7 +19,7 @@ module Blazer
|
|
|
19
19
|
if update_dashboard(@dashboard)
|
|
20
20
|
redirect_to dashboard_path(@dashboard)
|
|
21
21
|
else
|
|
22
|
-
|
|
22
|
+
render_errors @dashboard
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
@@ -49,7 +49,7 @@ module Blazer
|
|
|
49
49
|
if update_dashboard(@dashboard)
|
|
50
50
|
redirect_to dashboard_path(@dashboard, variable_params)
|
|
51
51
|
else
|
|
52
|
-
|
|
52
|
+
render_errors @dashboard
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
@@ -15,12 +15,19 @@ module Blazer
|
|
|
15
15
|
@dashboards =
|
|
16
16
|
@dashboards.map do |d|
|
|
17
17
|
{
|
|
18
|
-
|
|
18
|
+
id: d.id,
|
|
19
|
+
name: d.name,
|
|
19
20
|
creator: blazer_user && d.try(:creator) == blazer_user ? "You" : d.try(:creator).try(Blazer.user_name),
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
to_param: d.to_param,
|
|
22
|
+
dashboard: true
|
|
22
23
|
}
|
|
23
24
|
end
|
|
25
|
+
|
|
26
|
+
gon.push(
|
|
27
|
+
dashboards: @dashboards,
|
|
28
|
+
queries: @queries,
|
|
29
|
+
more: @more
|
|
30
|
+
)
|
|
24
31
|
end
|
|
25
32
|
|
|
26
33
|
def index
|
|
@@ -45,7 +52,7 @@ module Blazer
|
|
|
45
52
|
if @query.save
|
|
46
53
|
redirect_to query_path(@query, variable_params)
|
|
47
54
|
else
|
|
48
|
-
|
|
55
|
+
render_errors @query
|
|
49
56
|
end
|
|
50
57
|
end
|
|
51
58
|
|
|
@@ -158,7 +165,7 @@ module Blazer
|
|
|
158
165
|
if @query.errors.empty? && @query.update(query_params)
|
|
159
166
|
redirect_to query_path(@query, variable_params)
|
|
160
167
|
else
|
|
161
|
-
|
|
168
|
+
render_errors @query
|
|
162
169
|
end
|
|
163
170
|
end
|
|
164
171
|
|
|
@@ -188,7 +195,7 @@ module Blazer
|
|
|
188
195
|
end
|
|
189
196
|
|
|
190
197
|
def render_run
|
|
191
|
-
@checks = @query ? @query.checks : []
|
|
198
|
+
@checks = @query ? @query.checks.order(:id) : []
|
|
192
199
|
|
|
193
200
|
@first_row = @rows.first || []
|
|
194
201
|
@column_types = []
|
|
@@ -250,7 +257,7 @@ module Blazer
|
|
|
250
257
|
[]
|
|
251
258
|
end
|
|
252
259
|
|
|
253
|
-
@queries = Blazer::Query.named
|
|
260
|
+
@queries = Blazer::Query.named.select(:id, :name, :creator_id, :statement)
|
|
254
261
|
@queries = @queries.includes(:creator) if Blazer.user_class
|
|
255
262
|
|
|
256
263
|
if blazer_user && params[:filter] == "mine"
|
|
@@ -272,10 +279,10 @@ module Blazer
|
|
|
272
279
|
@queries.map do |q|
|
|
273
280
|
{
|
|
274
281
|
id: q.id,
|
|
275
|
-
name:
|
|
282
|
+
name: q.name,
|
|
276
283
|
creator: blazer_user && q.try(:creator) == blazer_user ? "You" : q.try(:creator).try(Blazer.user_name),
|
|
277
|
-
|
|
278
|
-
|
|
284
|
+
vars: extract_vars(q.statement).join(", "),
|
|
285
|
+
to_param: q.to_param
|
|
279
286
|
}
|
|
280
287
|
end
|
|
281
288
|
end
|
data/app/models/blazer/check.rb
CHANGED
|
@@ -6,10 +6,7 @@ module Blazer
|
|
|
6
6
|
validates :query_id, presence: true
|
|
7
7
|
|
|
8
8
|
before_validation :set_state
|
|
9
|
-
|
|
10
|
-
def set_state
|
|
11
|
-
self.state ||= "new"
|
|
12
|
-
end
|
|
9
|
+
before_validation :fix_emails
|
|
13
10
|
|
|
14
11
|
def split_emails
|
|
15
12
|
emails.to_s.downcase.split(",").map(&:strip)
|
|
@@ -65,5 +62,17 @@ module Blazer
|
|
|
65
62
|
end
|
|
66
63
|
save! if changed?
|
|
67
64
|
end
|
|
65
|
+
|
|
66
|
+
private
|
|
67
|
+
|
|
68
|
+
def set_state
|
|
69
|
+
self.state ||= "new"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def fix_emails
|
|
73
|
+
# some people like doing ; instead of ,
|
|
74
|
+
# but we know what they mean, so let's fix it
|
|
75
|
+
self.emails = emails.gsub(";", ",") if emails.present?
|
|
76
|
+
end
|
|
68
77
|
end
|
|
69
78
|
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<% if @bind_vars.any? %>
|
|
2
|
+
<form id="bind" method="get" action="<%= action %>" class="form-inline" style="margin-bottom: 10px;">
|
|
3
|
+
<% date_vars = ["start_time", "end_time"] %>
|
|
4
|
+
<% if (date_vars - @bind_vars).empty? %>
|
|
5
|
+
<% @bind_vars = @bind_vars - date_vars %>
|
|
6
|
+
<% else %>
|
|
7
|
+
<% date_vars = nil %>
|
|
8
|
+
<% end %>
|
|
9
|
+
|
|
10
|
+
<% @bind_vars.each_with_index do |var, i| %>
|
|
11
|
+
<%= label_tag var, var %>
|
|
12
|
+
<% if (data = @smart_vars[var]) %>
|
|
13
|
+
<%= select_tag var, options_for_select([[nil, nil]] + data, selected: params[var]), style: "margin-right: 20px; width: 200px; display: none;" %>
|
|
14
|
+
<script>
|
|
15
|
+
$("#<%= var %>").selectize({
|
|
16
|
+
create: true
|
|
17
|
+
});
|
|
18
|
+
</script>
|
|
19
|
+
<% else %>
|
|
20
|
+
<%= text_field_tag var, params[var], style: "width: 120px; margin-right: 20px;", autofocus: i == 0 && !var.end_with?("_at") && !params[var], class: "form-control" %>
|
|
21
|
+
<% if var.end_with?("_at") %>
|
|
22
|
+
<script>
|
|
23
|
+
$("#<%= var %>").daterangepicker({singleDatePicker: true, locale: {format: "YYYY-MM-DD"}, autoUpdateInput: false});
|
|
24
|
+
// hack to start with empty date
|
|
25
|
+
$("#<%= var %>").on("apply.daterangepicker", function(ev, picker) {
|
|
26
|
+
$(this).val(picker.startDate.format("YYYY-MM-DD"));
|
|
27
|
+
$(this).change();
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
30
|
+
<% end %>
|
|
31
|
+
<% end %>
|
|
32
|
+
<% end %>
|
|
33
|
+
|
|
34
|
+
<% if date_vars %>
|
|
35
|
+
<% date_vars.each do |var| %>
|
|
36
|
+
<%= hidden_field_tag var, params[var] %>
|
|
37
|
+
<% end %>
|
|
38
|
+
|
|
39
|
+
<%= label_tag nil, date_vars.join(" & ") %>
|
|
40
|
+
<div class="selectize-control single" style="width: 300px;">
|
|
41
|
+
<div id="reportrange" class="selectize-input" style="display: inline-block;">
|
|
42
|
+
<span>Select a time range</span>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<script>
|
|
47
|
+
var timeZone = "<%= Blazer.time_zone.tzinfo.name %>";
|
|
48
|
+
var format = "YYYY-MM-DD";
|
|
49
|
+
var now = moment.tz(timeZone);
|
|
50
|
+
|
|
51
|
+
function dateStr(daysAgo) {
|
|
52
|
+
return now.clone().subtract(daysAgo || 0, "days").format(format);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function toDate(time) {
|
|
56
|
+
return moment.tz(time.format(format), timeZone);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function setTimeInputs(start, end) {
|
|
60
|
+
$("#start_time").val(toDate(start).utc().format());
|
|
61
|
+
$("#end_time").val(toDate(end).endOf("day").utc().format());
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
$('#reportrange').daterangepicker(
|
|
65
|
+
{
|
|
66
|
+
ranges: {
|
|
67
|
+
"Today": [dateStr(), dateStr()],
|
|
68
|
+
"Last 7 Days": [dateStr(6), dateStr()],
|
|
69
|
+
"Last 30 Days": [dateStr(29), dateStr()]
|
|
70
|
+
},
|
|
71
|
+
locale: {
|
|
72
|
+
format: format
|
|
73
|
+
},
|
|
74
|
+
startDate: dateStr(29),
|
|
75
|
+
endDate: dateStr(),
|
|
76
|
+
opens: "right"
|
|
77
|
+
},
|
|
78
|
+
function(start, end) {
|
|
79
|
+
setTimeInputs(start, end);
|
|
80
|
+
submitIfCompleted($("#start_time").closest("form"));
|
|
81
|
+
}
|
|
82
|
+
).on('apply.daterangepicker', function(ev, picker) {
|
|
83
|
+
setTimeInputs(picker.startDate, picker.endDate);
|
|
84
|
+
$('#reportrange span').html(toDate(picker.startDate).format('MMMM D, YYYY') + ' - ' + toDate(picker.endDate).format('MMMM D, YYYY'));
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
if ($("#start_time").val().length > 0) {
|
|
88
|
+
var picker = $("#reportrange").data('daterangepicker');
|
|
89
|
+
picker.setStartDate(moment.tz($("#start_time").val(), timeZone));
|
|
90
|
+
picker.setEndDate(moment.tz($("#end_time").val(), timeZone));
|
|
91
|
+
$("#reportrange").trigger('apply.daterangepicker', picker)
|
|
92
|
+
} else {
|
|
93
|
+
var picker = $("#reportrange").data('daterangepicker');
|
|
94
|
+
$("#reportrange").trigger('apply.daterangepicker', picker);
|
|
95
|
+
submitIfCompleted($("#start_time").closest("form"));
|
|
96
|
+
}
|
|
97
|
+
</script>
|
|
98
|
+
<% end %>
|
|
99
|
+
|
|
100
|
+
<input type="submit" class="btn btn-success" value="Run" style="vertical-align: top;" />
|
|
101
|
+
</form>
|
|
102
|
+
<% end %>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
</td>
|
|
33
33
|
<td style="text-align: right; padding: 1px;">
|
|
34
34
|
<%= link_to "Edit", edit_check_path(check), class: "btn btn-info" %>
|
|
35
|
-
<%= link_to "Run Now",
|
|
35
|
+
<%= link_to "Run Now", query_path(check.query), class: "btn btn-primary" %>
|
|
36
36
|
</td>
|
|
37
37
|
</tr>
|
|
38
38
|
<% end %>
|
|
@@ -43,9 +43,10 @@
|
|
|
43
43
|
</div>
|
|
44
44
|
<p>
|
|
45
45
|
<% if @dashboard.persisted? %>
|
|
46
|
-
<%= link_to "Delete", dashboard_path(@dashboard), method: :delete, "data-confirm" => "Are you sure?", class: "btn btn-danger"
|
|
46
|
+
<%= link_to "Delete", dashboard_path(@dashboard), method: :delete, "data-confirm" => "Are you sure?", class: "btn btn-danger"%>
|
|
47
47
|
<% end %>
|
|
48
48
|
<%= f.submit "Save", class: "btn btn-success" %>
|
|
49
|
+
<%= link_to "Back", :back, class: "btn btn-link" %>
|
|
49
50
|
</p>
|
|
50
51
|
<% end %>
|
|
51
52
|
|
|
@@ -54,20 +55,4 @@
|
|
|
54
55
|
$(this).parents("li:first").remove();
|
|
55
56
|
});
|
|
56
57
|
Sortable.create($(".list-group").get(0));
|
|
57
|
-
|
|
58
|
-
// $("form").submit( function () {
|
|
59
|
-
// var query_ids = $("li").map( function () {
|
|
60
|
-
// return $(this).attr("data-query-id");
|
|
61
|
-
// });
|
|
62
|
-
// console.log(query_ids.join(","));
|
|
63
|
-
// return false;
|
|
64
|
-
// });
|
|
65
|
-
|
|
66
|
-
// var editableList = Sortable.create($(".list-group").get(0), {
|
|
67
|
-
// filter: '.js-remove',
|
|
68
|
-
// onFilter: function (evt) {
|
|
69
|
-
// var el = editableList.closest(evt.item); // get dragged item
|
|
70
|
-
// el && el.parentNode.removeChild(el);
|
|
71
|
-
// }
|
|
72
|
-
// });
|
|
73
58
|
</script>
|
|
@@ -25,101 +25,7 @@
|
|
|
25
25
|
</p>
|
|
26
26
|
<% end %>
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
<form id="bind" method="get" action="<%= dashboard_path(@dashboard, variable_params) %>" class="form-inline" style="margin-bottom: 10px;">
|
|
30
|
-
<% date_vars = ["start_time", "end_time"] %>
|
|
31
|
-
<% if (date_vars - @bind_vars).empty? %>
|
|
32
|
-
<% @bind_vars = @bind_vars - date_vars %>
|
|
33
|
-
<% else %>
|
|
34
|
-
<% date_vars = nil %>
|
|
35
|
-
<% end %>
|
|
36
|
-
|
|
37
|
-
<% @bind_vars.each_with_index do |var, i| %>
|
|
38
|
-
<%= label_tag var, var %>
|
|
39
|
-
<% if (data = @smart_vars[var]) %>
|
|
40
|
-
<%= select_tag var, options_for_select([[nil, nil]] + data, selected: params[var]), style: "margin-right: 20px; width: 200px; display: none;" %>
|
|
41
|
-
<script>
|
|
42
|
-
$("#<%= var %>").selectize({
|
|
43
|
-
create: true
|
|
44
|
-
});
|
|
45
|
-
</script>
|
|
46
|
-
<% else %>
|
|
47
|
-
<%= text_field_tag var, params[var], style: "width: 120px; margin-right: 20px;", autofocus: i == 0 && !var.end_with?("_at") && !params[var], class: "form-control" %>
|
|
48
|
-
<% if var.end_with?("_at") %>
|
|
49
|
-
<script>
|
|
50
|
-
$("#<%= var %>").daterangepicker({singleDatePicker: true, locale: {format: "YYYY-MM-DD"}});
|
|
51
|
-
</script>
|
|
52
|
-
<% end %>
|
|
53
|
-
<% end %>
|
|
54
|
-
<% end %>
|
|
55
|
-
|
|
56
|
-
<% if date_vars %>
|
|
57
|
-
<% date_vars.each do |var| %>
|
|
58
|
-
<%= hidden_field_tag var, params[var] %>
|
|
59
|
-
<% end %>
|
|
60
|
-
|
|
61
|
-
<%= label_tag nil, date_vars.join(" & ") %>
|
|
62
|
-
<div class="selectize-control single" style="width: 300px;">
|
|
63
|
-
<div id="reportrange" class="selectize-input" style="display: inline-block;">
|
|
64
|
-
<span>Select a time range</span>
|
|
65
|
-
</div>
|
|
66
|
-
</div>
|
|
67
|
-
|
|
68
|
-
<script>
|
|
69
|
-
var timeZone = "<%= Blazer.time_zone.tzinfo.name %>";
|
|
70
|
-
var format = "YYYY-MM-DD";
|
|
71
|
-
var now = moment.tz(timeZone);
|
|
72
|
-
|
|
73
|
-
function dateStr(daysAgo) {
|
|
74
|
-
return now.clone().subtract(daysAgo || 0, "days").format(format);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function toDate(time) {
|
|
78
|
-
return moment.tz(time.format(format), timeZone);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function setTimeInputs(start, end) {
|
|
82
|
-
$("#start_time").val(toDate(start).utc().format());
|
|
83
|
-
$("#end_time").val(toDate(end).endOf("day").utc().format());
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
$('#reportrange').daterangepicker(
|
|
87
|
-
{
|
|
88
|
-
ranges: {
|
|
89
|
-
"Today": [dateStr(), dateStr()],
|
|
90
|
-
"Last 7 Days": [dateStr(6), dateStr()],
|
|
91
|
-
"Last 30 Days": [dateStr(29), dateStr()]
|
|
92
|
-
},
|
|
93
|
-
locale: {
|
|
94
|
-
format: format
|
|
95
|
-
},
|
|
96
|
-
startDate: dateStr(29),
|
|
97
|
-
endDate: dateStr(),
|
|
98
|
-
opens: "left"
|
|
99
|
-
},
|
|
100
|
-
function(start, end) {
|
|
101
|
-
setTimeInputs(start, end);
|
|
102
|
-
submitIfCompleted($("#start_time").closest("form"));
|
|
103
|
-
}
|
|
104
|
-
).on('apply.daterangepicker', function(ev, picker) {
|
|
105
|
-
setTimeInputs(picker.startDate, picker.endDate);
|
|
106
|
-
$('#reportrange span').html(toDate(picker.startDate).format('MMMM D, YYYY') + ' - ' + toDate(picker.endDate).format('MMMM D, YYYY'));
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
if ($("#start_time").val().length > 0) {
|
|
110
|
-
var picker = $("#reportrange").data('daterangepicker');
|
|
111
|
-
picker.setStartDate(moment.tz($("#start_time").val(), timeZone));
|
|
112
|
-
picker.setEndDate(moment.tz($("#end_time").val(), timeZone));
|
|
113
|
-
$("#reportrange").trigger('apply.daterangepicker', picker)
|
|
114
|
-
} else {
|
|
115
|
-
var picker = $("#reportrange").data('daterangepicker');
|
|
116
|
-
$("#reportrange").trigger('apply.daterangepicker', picker);
|
|
117
|
-
submitIfCompleted($("#start_time").closest("form"));
|
|
118
|
-
}
|
|
119
|
-
</script>
|
|
120
|
-
<% end %>
|
|
121
|
-
</form>
|
|
122
|
-
<% end %>
|
|
28
|
+
<%= render partial: "blazer/variables", locals: {action: dashboard_path(@dashboard)} %>
|
|
123
29
|
|
|
124
30
|
<% @queries.each_with_index do |query, i| %>
|
|
125
31
|
<div style="padding-top: 10px; clear: both;">
|
|
@@ -139,9 +45,3 @@
|
|
|
139
45
|
});
|
|
140
46
|
</script>
|
|
141
47
|
<% end %>
|
|
142
|
-
|
|
143
|
-
<script>
|
|
144
|
-
$(".form-inline input, .form-inline select").change( function () {
|
|
145
|
-
submitIfCompleted($(this).closest("form"));
|
|
146
|
-
});
|
|
147
|
-
</script>
|