finery 3.0.1 → 3.0.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 +4 -4
- data/README.md +1 -1
- data/app/assets/javascripts/blazer/application.js +2 -2
- data/app/assets/javascripts/blazer/controllers/application.js.erb +2 -0
- data/app/assets/javascripts/blazer/controllers/index.js +1 -0
- data/app/assets/javascripts/blazer/controllers/navbar_padding_controller.js +7 -0
- data/app/assets/stylesheets/blazer/application.css +17 -51
- data/app/controllers/blazer/base_controller.rb +1 -0
- data/app/controllers/blazer/queries_controller.rb +1 -1
- data/app/views/blazer/_navbar.html.erb +38 -0
- data/app/views/blazer/checks/_form.html.erb +6 -6
- data/app/views/blazer/checks/index.html.erb +0 -19
- data/app/views/blazer/dashboards/_form.html.erb +7 -5
- data/app/views/blazer/dashboards/show.html.erb +7 -18
- data/app/views/blazer/queries/_form.html.erb +19 -13
- data/app/views/blazer/queries/home.html.erb +17 -30
- data/app/views/blazer/queries/run.html.erb +1 -1
- data/app/views/blazer/queries/show.html.erb +19 -26
- data/app/views/blazer/uploads/_form.html.erb +3 -3
- data/app/views/blazer/uploads/index.html.erb +0 -18
- data/app/views/layouts/blazer/application.html.erb +10 -11
- data/lib/blazer/engine.rb +0 -5
- data/lib/blazer/version.rb +1 -1
- data/lib/blazer.rb +11 -8
- metadata +5 -15
- data/app/assets/fonts/blazer/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/blazer/glyphicons-halflings-regular.svg +0 -288
- data/app/assets/fonts/blazer/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/blazer/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/blazer/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/javascripts/blazer/bootstrap.js +0 -2580
- data/app/assets/javascripts/blazer/controllers/application.js +0 -2
- data/app/assets/javascripts/blazer/selectize.js +0 -3891
- data/app/assets/stylesheets/blazer/bootstrap-propshaft.css +0 -10
- data/app/assets/stylesheets/blazer/bootstrap-sprockets.css.erb +0 -10
- data/app/assets/stylesheets/blazer/bootstrap.css +0 -6828
- data/app/assets/stylesheets/blazer/selectize.css +0 -403
- data/app/views/blazer/_nav.html.erb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c11bf80f48ee76d4afaed581aabb6481bccd7b56a839c49b2bd61613b8e000e
|
4
|
+
data.tar.gz: f350e697db4948e3b1426961b3b26f46fdd49a2db2a3411812cb85be6510671b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6398ed311ae7de30b5f8c8b7f9ad3a3de14c793f62ceeb6bf3b35970703f5d69e5e093888bf41fef8df77945928be7aff3a911b17799bc4b3fbab48c2d221620
|
7
|
+
data.tar.gz: 25553c55eeb394fc57084d8174d408a6a4f977cf28e4333f59c3c611b6fd5bb30f0cc2288e6609cec15cef936db451cec44808ddf0b305d19ee15f88c53e5fa3
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
//= require ./stupidtable
|
6
6
|
//= require ./stupidtable-custom-settings
|
7
7
|
//= require ./jquery.stickytableheaders
|
8
|
-
//= require
|
8
|
+
//= require selectize.min
|
9
9
|
//= require ./highlight.min
|
10
10
|
//= require ./moment
|
11
11
|
//= require ./moment-timezone-with-data
|
@@ -17,7 +17,7 @@
|
|
17
17
|
//= require ./chartjs-plugin-annotation.min
|
18
18
|
//= require ./ace
|
19
19
|
//= require ./Sortable
|
20
|
-
//= require
|
20
|
+
//= require bootstrap.bundle.min
|
21
21
|
//= require ./vue.global.prod
|
22
22
|
//= require ./routes
|
23
23
|
//= require ./queries
|
@@ -1,20 +1,26 @@
|
|
1
1
|
/*
|
2
|
-
*= require
|
3
|
-
*= require
|
4
|
-
*= require ./selectize
|
2
|
+
*= require bootstrap.min
|
3
|
+
*= require selectize.bootstrap5
|
5
4
|
*= require ./github
|
6
5
|
*= require ./daterangepicker
|
7
6
|
*= require_self
|
8
7
|
*/
|
9
8
|
|
9
|
+
.hide {
|
10
|
+
display: none !important;
|
11
|
+
}
|
12
|
+
|
10
13
|
pre {
|
11
14
|
border: none;
|
12
15
|
border-radius: 0;
|
13
16
|
}
|
14
17
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
.text-pre-line {
|
19
|
+
white-space: pre-line;
|
20
|
+
}
|
21
|
+
|
22
|
+
body.with-navbar {
|
23
|
+
padding-top: 3.5rem;
|
18
24
|
}
|
19
25
|
|
20
26
|
table.results-table {
|
@@ -52,6 +58,10 @@ input.search:focus {
|
|
52
58
|
outline: none;
|
53
59
|
}
|
54
60
|
|
61
|
+
.selectize-control {
|
62
|
+
min-width: 10em;
|
63
|
+
}
|
64
|
+
|
55
65
|
.form-inline .selectize-control, .text-right .selectize-control {
|
56
66
|
display: inline-block;
|
57
67
|
vertical-align: middle;
|
@@ -157,26 +167,10 @@ input.search:focus {
|
|
157
167
|
background-color: #fff;
|
158
168
|
}
|
159
169
|
|
160
|
-
.
|
161
|
-
cursor: pointer;
|
162
|
-
color: #d9534f;
|
163
|
-
display: none;
|
164
|
-
float: right;
|
165
|
-
margin-top: 3px;
|
166
|
-
}
|
167
|
-
|
168
|
-
.list-group li:hover .glyphicon-remove {
|
169
|
-
display: inline;
|
170
|
-
}
|
171
|
-
|
172
|
-
.list-group {
|
170
|
+
#queries.list-group {
|
173
171
|
cursor: move;
|
174
172
|
}
|
175
173
|
|
176
|
-
#header a.active {
|
177
|
-
color: #999;
|
178
|
-
}
|
179
|
-
|
180
174
|
[v-cloak] {
|
181
175
|
display: none;
|
182
176
|
}
|
@@ -197,34 +191,6 @@ input.search:focus {
|
|
197
191
|
color: red;
|
198
192
|
}
|
199
193
|
|
200
|
-
.small-form {
|
201
|
-
margin-right: auto;
|
202
|
-
margin-left: auto;
|
203
|
-
max-width: 400px;
|
204
|
-
}
|
205
|
-
|
206
|
-
.alert {
|
207
|
-
padding-top: 8px;
|
208
|
-
padding-bottom: 8px;
|
209
|
-
}
|
210
|
-
|
211
|
-
h1, h2, h3, h4, p, hr, .table, .navbar, #header, .alert, .form-group {
|
212
|
-
margin-top: 0;
|
213
|
-
margin-bottom: 15px;
|
214
|
-
}
|
215
|
-
|
216
|
-
.double-margin, .chart-container {
|
217
|
-
margin-bottom: 30px;
|
218
|
-
}
|
219
|
-
|
220
|
-
h1 {
|
221
|
-
font-size: 24px;
|
222
|
-
}
|
223
|
-
|
224
|
-
h2 {
|
225
|
-
font-size: 20px;
|
226
|
-
}
|
227
|
-
|
228
194
|
.schema-table {
|
229
195
|
max-width: 500px;
|
230
196
|
}
|
@@ -273,7 +273,7 @@ module Blazer
|
|
273
273
|
raise Error, @error if @error && Rails.env.test?
|
274
274
|
|
275
275
|
data = csv_data(@columns, @rows, @data_source)
|
276
|
-
query_params = variable_params.select { |k| @query.variables.include?(k) }
|
276
|
+
query_params = variable_params(@query).select { |k| @query.variables.include?(k) }
|
277
277
|
name = @query.try(:name).presence || "query"
|
278
278
|
filename = "#{name}-#{query_params.to_query}".parameterize + ".csv"
|
279
279
|
send_data data, type: "text/csv; charset=utf-8", disposition: "attachment", filename: filename
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<nav class="navbar navbar-expand-md fixed-top bg-body-tertiary" data-navbar-padding-target="navbar">
|
2
|
+
<div class="container flex-nowrap">
|
3
|
+
<span class="navbar-brand d-none d-sm-inline">Finery</span>
|
4
|
+
<button class="navbar-toggler me-3" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
|
5
|
+
<span class="navbar-toggler-icon"></span>
|
6
|
+
</button>
|
7
|
+
<span class="navbar-brand d-sm-none text-truncate"><%= blazer_title || "Finery" %></span>
|
8
|
+
<div class="collapse navbar-collapse" id="navbarCollapse">
|
9
|
+
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
10
|
+
<li class="nav-item">
|
11
|
+
<%= link_to "Home", blazer.root_path, class: "nav-link" %>
|
12
|
+
</li>
|
13
|
+
<li class="nav-item">
|
14
|
+
<%= link_to "Checks", blazer.checks_path, class: "nav-link" %>
|
15
|
+
</li>
|
16
|
+
<% if Blazer.uploads? %>
|
17
|
+
<li class="nav-item">
|
18
|
+
<%= link_to "Uploads", blazer.uploads_path, class: "nav-link" %>
|
19
|
+
</li>
|
20
|
+
<% end %>
|
21
|
+
<li class="nav-item dropdown">
|
22
|
+
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
23
|
+
New
|
24
|
+
</a>
|
25
|
+
<ul class="dropdown-menu">
|
26
|
+
<li><%= link_to "Query", blazer.new_query_path, class: "dropdown-item" %></li>
|
27
|
+
<li><%= link_to "Dashboard", blazer.new_dashboard_path, class: "dropdown-item" %></li>
|
28
|
+
<li><%= link_to "Check", blazer.new_check_path(query_id: @query&.id), class: "dropdown-item" %></li>
|
29
|
+
<% if Blazer.uploads? %>
|
30
|
+
<%= link_to "Upload", blazer.new_upload_path, class: "dropdown-item" %>
|
31
|
+
<% end %>
|
32
|
+
</ul>
|
33
|
+
</li>
|
34
|
+
</ul>
|
35
|
+
<%= yield(:nav) %>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</nav>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<div class="alert alert-danger"><%= @check.errors.full_messages.first %></div>
|
8
8
|
<% end %>
|
9
9
|
|
10
|
-
<div class="form-group">
|
10
|
+
<div class="form-group mb-3">
|
11
11
|
<%= f.label :query_id, "Query" %>
|
12
12
|
<div class="hide">
|
13
13
|
<%= f.select :query_id, [], {include_blank: true} %>
|
@@ -21,7 +21,7 @@
|
|
21
21
|
</div>
|
22
22
|
|
23
23
|
<% if @check.respond_to?(:check_type) %>
|
24
|
-
<div class="form-group">
|
24
|
+
<div class="form-group mb-3">
|
25
25
|
<%= f.label :check_type, "Alert if" %>
|
26
26
|
<div class="hide">
|
27
27
|
<% check_options = [["Any results (bad data)", "bad_data"], ["No results (missing data)", "missing_data"]] %>
|
@@ -33,7 +33,7 @@
|
|
33
33
|
</script>
|
34
34
|
</div>
|
35
35
|
<% elsif @check.respond_to?(:invert) %>
|
36
|
-
<div class="form-group">
|
36
|
+
<div class="form-group mb-3">
|
37
37
|
<%= f.label :invert, "Fails if" %>
|
38
38
|
<div class="hide">
|
39
39
|
<%= f.select :invert, [["Any results (bad data)", false], ["No results (missing data)", true]] %>
|
@@ -45,7 +45,7 @@
|
|
45
45
|
<% end %>
|
46
46
|
|
47
47
|
<% if @check.respond_to?(:schedule) && Blazer.check_schedules %>
|
48
|
-
<div class="form-group">
|
48
|
+
<div class="form-group mb-3">
|
49
49
|
<%= f.label :schedule, "Run every" %>
|
50
50
|
<div class="hide">
|
51
51
|
<%= f.select :schedule, Blazer.check_schedules.map { |v| [v, v] } %>
|
@@ -56,13 +56,13 @@
|
|
56
56
|
</div>
|
57
57
|
<% end %>
|
58
58
|
|
59
|
-
<div class="form-group">
|
59
|
+
<div class="form-group mb-3">
|
60
60
|
<%= f.label :emails %>
|
61
61
|
<%= f.text_field :emails, placeholder: "Optional, comma separated", class: "form-control" %>
|
62
62
|
</div>
|
63
63
|
|
64
64
|
<% if Blazer.slack? %>
|
65
|
-
<div class="form-group">
|
65
|
+
<div class="form-group mb-3">
|
66
66
|
<%= f.label :slack_channels %>
|
67
67
|
<%= f.text_field :slack_channels, placeholder: "Optional, comma separated", class: "form-control" %>
|
68
68
|
</div>
|
@@ -1,25 +1,6 @@
|
|
1
1
|
<% blazer_title "Checks" %>
|
2
2
|
|
3
3
|
<div id="header">
|
4
|
-
<div class="pull-right" style="line-height: 34px;">
|
5
|
-
<div class="btn-group">
|
6
|
-
<%= link_to "New Check", new_check_path, class: "btn btn-info" %>
|
7
|
-
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
8
|
-
<span class="caret"></span>
|
9
|
-
<span class="sr-only">Toggle Dropdown</span>
|
10
|
-
</button>
|
11
|
-
<ul class="dropdown-menu">
|
12
|
-
<li><%= link_to "Home", root_path %></li>
|
13
|
-
<% if Blazer.uploads? %>
|
14
|
-
<li><%= link_to "Uploads", uploads_path %></li>
|
15
|
-
<% end %>
|
16
|
-
<li role="separator" class="divider"></li>
|
17
|
-
<li><%= link_to "New Query", new_query_path %></li>
|
18
|
-
<li><%= link_to "New Dashboard", new_dashboard_path %></li>
|
19
|
-
</ul>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
|
23
4
|
<input id="search" type="text" placeholder="Start typing a query or state" style="width: 300px; display: inline-block;" class="search form-control" />
|
24
5
|
</div>
|
25
6
|
|
@@ -3,21 +3,23 @@
|
|
3
3
|
<div class="alert alert-danger"><%= @dashboard.errors.full_messages.first %></div>
|
4
4
|
<% end %>
|
5
5
|
|
6
|
-
<div class="form-group">
|
6
|
+
<div class="form-group mb-3">
|
7
7
|
<%= f.label :name %>
|
8
8
|
<%= f.text_field :name, class: "form-control" %>
|
9
9
|
</div>
|
10
|
-
<div class="form-group" v-show="queries.length">
|
10
|
+
<div class="form-group mb-3" v-show="queries.length">
|
11
11
|
<%= f.label :charts %>
|
12
12
|
<ul id="queries" class="list-group">
|
13
|
-
<li class="list-group-item" v-for="(query, index) in queries" :key="query.id" v-cloak>
|
14
|
-
<span class="glyphicon glyphicon-remove" aria-hidden="true" v-on:click="remove(index)"></span>
|
13
|
+
<li class="list-group-item d-flex justify-content-between align-items-center" v-for="(query, index) in queries" :key="query.id" v-cloak>
|
15
14
|
{{ query.name }}
|
15
|
+
<button class="btn btn-sm btn-danger" v-on:click="remove(index)">
|
16
|
+
remove
|
17
|
+
</button>
|
16
18
|
<input type="hidden" name="query_ids[]" :value="query.id">
|
17
19
|
</li>
|
18
20
|
</ul>
|
19
21
|
</div>
|
20
|
-
<div class="form-group" v-cloak>
|
22
|
+
<div class="form-group mb-3" v-cloak>
|
21
23
|
<%= f.label :query_id, "Add Chart" %>
|
22
24
|
<%= select_tag :query_id, nil, {include_blank: true, placeholder: "Select chart"} %>
|
23
25
|
</div>
|
@@ -1,22 +1,11 @@
|
|
1
1
|
<% blazer_title @dashboard.name %>
|
2
|
-
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<%= @dashboard.name %>
|
10
|
-
</h3>
|
11
|
-
</div>
|
12
|
-
<div class="col-sm-3 text-right">
|
13
|
-
<%= link_to "Edit", edit_dashboard_path(@dashboard, params: variable_params(@dashboard)), class: "btn btn-info" %>
|
14
|
-
</div>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<div style="margin-bottom: 60px;"></div>
|
2
|
+
<% content_for :nav do %>
|
3
|
+
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
|
4
|
+
<li class="nav-item">
|
5
|
+
<%= link_to "Edit", blazer.edit_dashboard_path(@dashboard, params: variable_params(@dashboard)), class: "nav-link" %>
|
6
|
+
</li>
|
7
|
+
</ul>
|
8
|
+
<% end %>
|
20
9
|
|
21
10
|
<% if @data_sources.any? { |ds| ds.cache_mode != "off" } %>
|
22
11
|
<p class="text-muted" style="float: right;">
|
@@ -7,38 +7,44 @@
|
|
7
7
|
<div id="app" v-cloak>
|
8
8
|
<%= form_for @query, url: (@query.persisted? ? query_path(@query, params: @variable_params) : queries_path(params: @variable_params)), html: {autocomplete: "off"}, data: { controller: "unsaved", action: "unsaved#clear input->unsaved#set" } do |f| %>
|
9
9
|
<div class="row">
|
10
|
-
<div id="statement-box" class="col-
|
10
|
+
<div id="statement-box" class="col-8">
|
11
11
|
<div class= "form-group">
|
12
12
|
<%= f.hidden_field :statement %>
|
13
13
|
<div id="editor-container">
|
14
14
|
<div id="editor" :style="{ height: editorHeight }"><%= @query.statement %></div>
|
15
15
|
</div>
|
16
16
|
</div>
|
17
|
-
<div class="form-group
|
18
|
-
<div
|
19
|
-
<%= link_to "Back", :back %>
|
20
|
-
<a :href="docsPath" target="_blank"
|
21
|
-
<a :href="schemaPath" target="_blank"
|
17
|
+
<div class="form-group d-flex justify-content-between my-2">
|
18
|
+
<div>
|
19
|
+
<%= link_to "Back", :back, class: "me-2" %>
|
20
|
+
<a :href="docsPath" target="_blank" class="m-2">Docs</a>
|
21
|
+
<a :href="schemaPath" target="_blank" class="m-2">Schema</a>
|
22
22
|
</div>
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
<div class="row">
|
25
|
+
<div class="col">
|
26
|
+
<%= f.select :data_source, Blazer.data_sources.map { |_, ds| [ds.name, ds.id] }, {}, class: ("hide" if Blazer.data_sources.size <= 1) %>
|
27
|
+
</div>
|
28
|
+
<div class="col">
|
29
|
+
<select id="table_names" placeholder="Preview table"></select>
|
30
|
+
</div>
|
27
31
|
</div>
|
32
|
+
</div>
|
33
|
+
<div class="form-group">
|
28
34
|
<a v-on:click="run" v-if="!running" class="btn btn-info" style="vertical-align: top; width: 70px;">Run</a>
|
29
35
|
<a v-on:click="cancel" v-if="running" class="btn btn-danger" style="vertical-align: top; width: 70px;">Cancel</a>
|
30
36
|
</div>
|
31
37
|
</div>
|
32
|
-
<div class="col-
|
33
|
-
<div class="form-group">
|
38
|
+
<div class="col-4">
|
39
|
+
<div class="form-group mb-3">
|
34
40
|
<%= f.label :name %>
|
35
41
|
<%= f.text_field :name, class: "form-control" %>
|
36
42
|
</div>
|
37
|
-
<div class="form-group">
|
43
|
+
<div class="form-group mb-3">
|
38
44
|
<%= f.label :description %>
|
39
45
|
<%= f.text_area :description, placeholder: "Optional", style: "height: 80px;", class: "form-control" %>
|
40
46
|
</div>
|
41
|
-
<div class="form-group text-
|
47
|
+
<div class="form-group text-end mb-3">
|
42
48
|
<%= f.submit "For Enter Press", class: "hide" %>
|
43
49
|
<% if @query.persisted? %>
|
44
50
|
<%= link_to "Delete", query_path(@query), method: :delete, "data-confirm" => "Are you sure?", class: "btn btn-danger" %>
|
@@ -1,35 +1,22 @@
|
|
1
1
|
<div id="queries">
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
<ul class="nav nav-pills d-flex flex-column flex-sm-row mb-3">
|
3
|
+
<li class="text-start flex-fill">
|
4
|
+
<input type="text" v-model="searchTerm" placeholder="Start typing a query, dashboard, or person" autofocus class="search form-control flex-fill align-self-stretch" />
|
5
|
+
</li>
|
6
|
+
<% if blazer_user %>
|
7
|
+
<li class="nav-item">
|
8
|
+
<%= link_to "All", blazer.root_path, class: { "nav-link": true, active: !params[:filter] } %>
|
9
|
+
</li>
|
10
|
+
<% if Blazer.audit %>
|
11
|
+
<li class="nav-item">
|
12
|
+
<%= link_to "Viewed", blazer.root_path(filter: "viewed"), class: { "nav-link": true, active: params[:filter] == "viewed" } %>
|
13
|
+
</li>
|
12
14
|
<% end %>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<span class="sr-only">Toggle Dropdown</span>
|
19
|
-
</button>
|
20
|
-
<ul class="dropdown-menu">
|
21
|
-
<li><%= link_to "Checks", checks_path %></li>
|
22
|
-
<% if Blazer.uploads? %>
|
23
|
-
<li><%= link_to "Uploads", uploads_path %></li>
|
24
|
-
<% end %>
|
25
|
-
<li role="separator" class="divider"></li>
|
26
|
-
<li><%= link_to "New Dashboard", new_dashboard_path %></li>
|
27
|
-
<li><%= link_to "New Check", new_check_path %></li>
|
28
|
-
</ul>
|
29
|
-
</div>
|
30
|
-
</div>
|
31
|
-
<input type="text" v-model="searchTerm" placeholder="Start typing a query, dashboard, or person" style="width: 300px; display: inline-block;" v-focus class="search form-control" />
|
32
|
-
</div>
|
15
|
+
<li class="nav-item">
|
16
|
+
<%= link_to "Mine", blazer.root_path(filter: "mine"), class: { "nav-link": true, active: params[:filter] == "mine" } %>
|
17
|
+
</li>
|
18
|
+
<% end %>
|
19
|
+
</ul>
|
33
20
|
|
34
21
|
<table class="table">
|
35
22
|
<thead>
|
@@ -131,7 +131,7 @@
|
|
131
131
|
|
132
132
|
<% unless @only_chart && !@no_chart %>
|
133
133
|
<% header_width = 100 / @columns.size.to_f %>
|
134
|
-
<div class="results-container">
|
134
|
+
<div class="results-container overflow-x-scroll">
|
135
135
|
<% if @columns == ["QUERY PLAN"] %>
|
136
136
|
<pre><code><%= @rows.map { |r| r[0] }.join("\n") %></code></pre>
|
137
137
|
<% elsif @columns == ["PLAN"] && @data_source.adapter == "druid" %>
|
@@ -1,27 +1,20 @@
|
|
1
1
|
<% blazer_title @query.name %>
|
2
|
-
|
3
|
-
<
|
4
|
-
|
5
|
-
<
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
<%=
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<% end %>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
</div>
|
23
|
-
|
24
|
-
<div style="margin-bottom: 60px;"></div>
|
2
|
+
<% content_for :nav do %>
|
3
|
+
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
|
4
|
+
<li class="navbar-brand d-none d-sm-inline text-wrap"><%= @query.name %></li>
|
5
|
+
<li class="nav-item">
|
6
|
+
<%= link_to "Edit", blazer.edit_query_path(@query, params: variable_params(@query)), class: "nav-link", disabled: !@query.editable?(blazer_user) %>
|
7
|
+
</li>
|
8
|
+
<li class="nav-item">
|
9
|
+
<%= link_to "Fork", blazer.new_query_path(params: {variables: variable_params(@query), fork_query_id: @query.id, data_source: @query.data_source, name: @query.name}), class: "nav-link" %>
|
10
|
+
</li>
|
11
|
+
<li class="nav-item dropdown">
|
12
|
+
<% if !@error && @success %>
|
13
|
+
<%= button_to "Download", blazer.run_queries_path(format: "csv"), params: @run_data, class: "nav-link" %>
|
14
|
+
<% end %>
|
15
|
+
</li>
|
16
|
+
</ul>
|
17
|
+
<% end %>
|
25
18
|
|
26
19
|
<% if @sql_errors.any? %>
|
27
20
|
<div class="alert alert-danger">
|
@@ -34,13 +27,13 @@
|
|
34
27
|
<% end %>
|
35
28
|
|
36
29
|
<% if @query.description.present? %>
|
37
|
-
<p
|
30
|
+
<p class="text-pre-line"><%= @query.description %></p>
|
38
31
|
<% end %>
|
39
32
|
|
40
33
|
<%= render partial: "blazer/variables", locals: {action: query_path(@query)} %>
|
41
34
|
|
42
35
|
<details class="row">
|
43
|
-
<summary class="col-md-1
|
36
|
+
<summary class="col-md-1 offset-md-11 btn btn-sm btn-info">Show source</summary>
|
44
37
|
<pre id="code" class="col-md-12">
|
45
38
|
<code data-controller="code"><%= @statement.display_statement %></code>
|
46
39
|
</pre>
|
@@ -54,7 +47,7 @@
|
|
54
47
|
<script>
|
55
48
|
function showRun(data) {
|
56
49
|
$("#results").html(data)
|
57
|
-
$("#results table").stupidtable(stupidtableCustomSettings).stickyTableHeaders({fixedOffset:
|
50
|
+
$("#results table").stupidtable(stupidtableCustomSettings).stickyTableHeaders({fixedOffset: 56})
|
58
51
|
}
|
59
52
|
|
60
53
|
function showError(message) {
|
@@ -5,15 +5,15 @@
|
|
5
5
|
<p>Create a database table from a CSV file. The table will be created in the <code><%= Blazer.settings["uploads"]["schema"] %></code> schema.</p>
|
6
6
|
<% end %>
|
7
7
|
|
8
|
-
<div class="form-group">
|
8
|
+
<div class="form-group mb-3">
|
9
9
|
<%= f.label :table %>
|
10
10
|
<%= f.text_field :table, class: "form-control" %>
|
11
11
|
</div>
|
12
|
-
<div class="form-group">
|
12
|
+
<div class="form-group mb-3">
|
13
13
|
<%= f.label :description %>
|
14
14
|
<%= f.text_area :description, placeholder: "Optional", style: "height: 60px;", class: "form-control" %>
|
15
15
|
</div>
|
16
|
-
<div class="form-group">
|
16
|
+
<div class="form-group mb-3">
|
17
17
|
<%= f.label :file %>
|
18
18
|
<%= f.file_field :file, accept: "text/csv", style: "margin-top: 6px; margin-bottom: 21px;" %>
|
19
19
|
</div>
|
@@ -1,24 +1,6 @@
|
|
1
1
|
<% blazer_title "Uploads" %>
|
2
2
|
|
3
3
|
<div id="header">
|
4
|
-
<div class="pull-right" style="line-height: 34px;">
|
5
|
-
<div class="btn-group">
|
6
|
-
<%= link_to "New Upload", new_upload_path, class: "btn btn-info" %>
|
7
|
-
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
8
|
-
<span class="caret"></span>
|
9
|
-
<span class="sr-only">Toggle Dropdown</span>
|
10
|
-
</button>
|
11
|
-
<ul class="dropdown-menu">
|
12
|
-
<li><%= link_to "Home", root_path %></li>
|
13
|
-
<li><%= link_to "Checks", checks_path %></li>
|
14
|
-
<li role="separator" class="divider"></li>
|
15
|
-
<li><%= link_to "New Query", new_query_path %></li>
|
16
|
-
<li><%= link_to "New Dashboard", new_dashboard_path %></li>
|
17
|
-
<li><%= link_to "New Check", new_check_path %></li>
|
18
|
-
</ul>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
|
22
4
|
<input id="search" type="text" placeholder="Start typing a table or person" style="width: 300px; display: inline-block;" class="search form-control" />
|
23
5
|
</div>
|
24
6
|
|
@@ -1,25 +1,24 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<title><%= blazer_title ? blazer_title : "
|
4
|
+
<title><%= blazer_title ? blazer_title : "Finery" %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
6
|
+
<meta name="robots" content="noindex" />
|
7
|
+
<meta name="referrer" content="same-origin" />
|
5
8
|
|
6
9
|
<meta charset="utf-8" />
|
7
10
|
<%= favicon_link_tag "blazer/favicon.png" %>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<% else %>
|
12
|
-
<%= stylesheet_link_tag "blazer/application" %>
|
13
|
-
<%= javascript_include_tag "blazer/application" %>
|
14
|
-
<%= javascript_include_tag "blazer/module", type: "module" %>
|
15
|
-
<% end %>
|
11
|
+
<%= stylesheet_link_tag "blazer/application" %>
|
12
|
+
<%= javascript_include_tag "blazer/application" %>
|
13
|
+
<%= javascript_include_tag "blazer/module", type: "module" %>
|
16
14
|
<script>
|
17
15
|
<%= blazer_js_var "rootPath", root_path %>
|
18
16
|
</script>
|
19
17
|
<%= csrf_meta_tags %>
|
20
18
|
</head>
|
21
|
-
<body>
|
22
|
-
|
19
|
+
<body class="with-navbar overflow-y-scroll" data-controller="navbar-padding">
|
20
|
+
<%= render partial: "blazer/navbar" %>
|
21
|
+
<div class="container mt-2">
|
23
22
|
<%= yield %>
|
24
23
|
</div>
|
25
24
|
</body>
|