finery 3.0.1 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/javascripts/blazer/application.js +2 -2
  4. data/app/assets/javascripts/blazer/controllers/application.js.erb +2 -0
  5. data/app/assets/javascripts/blazer/controllers/index.js +1 -0
  6. data/app/assets/javascripts/blazer/controllers/navbar_padding_controller.js +7 -0
  7. data/app/assets/stylesheets/blazer/application.css +17 -51
  8. data/app/controllers/blazer/base_controller.rb +1 -0
  9. data/app/controllers/blazer/queries_controller.rb +1 -1
  10. data/app/views/blazer/_navbar.html.erb +38 -0
  11. data/app/views/blazer/checks/_form.html.erb +6 -6
  12. data/app/views/blazer/checks/index.html.erb +0 -19
  13. data/app/views/blazer/dashboards/_form.html.erb +7 -5
  14. data/app/views/blazer/dashboards/show.html.erb +7 -18
  15. data/app/views/blazer/queries/_form.html.erb +19 -13
  16. data/app/views/blazer/queries/home.html.erb +17 -30
  17. data/app/views/blazer/queries/run.html.erb +1 -1
  18. data/app/views/blazer/queries/show.html.erb +19 -26
  19. data/app/views/blazer/uploads/_form.html.erb +3 -3
  20. data/app/views/blazer/uploads/index.html.erb +0 -18
  21. data/app/views/layouts/blazer/application.html.erb +10 -11
  22. data/lib/blazer/engine.rb +0 -5
  23. data/lib/blazer/version.rb +1 -1
  24. data/lib/blazer.rb +11 -8
  25. metadata +5 -15
  26. data/app/assets/fonts/blazer/glyphicons-halflings-regular.eot +0 -0
  27. data/app/assets/fonts/blazer/glyphicons-halflings-regular.svg +0 -288
  28. data/app/assets/fonts/blazer/glyphicons-halflings-regular.ttf +0 -0
  29. data/app/assets/fonts/blazer/glyphicons-halflings-regular.woff +0 -0
  30. data/app/assets/fonts/blazer/glyphicons-halflings-regular.woff2 +0 -0
  31. data/app/assets/javascripts/blazer/bootstrap.js +0 -2580
  32. data/app/assets/javascripts/blazer/controllers/application.js +0 -2
  33. data/app/assets/javascripts/blazer/selectize.js +0 -3891
  34. data/app/assets/stylesheets/blazer/bootstrap-propshaft.css +0 -10
  35. data/app/assets/stylesheets/blazer/bootstrap-sprockets.css.erb +0 -10
  36. data/app/assets/stylesheets/blazer/bootstrap.css +0 -6828
  37. data/app/assets/stylesheets/blazer/selectize.css +0 -403
  38. data/app/views/blazer/_nav.html.erb +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a40d95bfaaec38b95bad08470391cd99a51a83fe31644fc72cf513b6ac0b69f
4
- data.tar.gz: e0e41fd7197e9f4a14b288f253bb865ce97cc85a4937b5f2e64112468fe1940b
3
+ metadata.gz: 4c11bf80f48ee76d4afaed581aabb6481bccd7b56a839c49b2bd61613b8e000e
4
+ data.tar.gz: f350e697db4948e3b1426961b3b26f46fdd49a2db2a3411812cb85be6510671b
5
5
  SHA512:
6
- metadata.gz: 6df58aa1566ca58dbb5f0fcfdae18ba56657a1fdba72a87a4e77e1415cef15852efb2522703939870906523fb099e28849d4788a6a8ef6eb1e9f6f90fe1f1645
7
- data.tar.gz: a4e647be9599ba0869f71be477f3829de5d6e26e266f879b9b5f37ddf740af7404a90801b06b68d427c18f5450a610371cbb16a6170c666d220902d35716073c
6
+ metadata.gz: 6398ed311ae7de30b5f8c8b7f9ad3a3de14c793f62ceeb6bf3b35970703f5d69e5e093888bf41fef8df77945928be7aff3a911b17799bc4b3fbab48c2d221620
7
+ data.tar.gz: 25553c55eeb394fc57084d8174d408a6a4f977cf28e4333f59c3c611b6fd5bb30f0cc2288e6609cec15cef936db451cec44808ddf0b305d19ee15f88c53e5fa3
data/README.md CHANGED
@@ -53,7 +53,7 @@ gem "finery"
53
53
  Run:
54
54
 
55
55
  ```sh
56
- rails generate finery:install
56
+ rails generate blazer:install
57
57
  rails db:migrate
58
58
  ```
59
59
 
@@ -5,7 +5,7 @@
5
5
  //= require ./stupidtable
6
6
  //= require ./stupidtable-custom-settings
7
7
  //= require ./jquery.stickytableheaders
8
- //= require ./selectize
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 ./bootstrap
20
+ //= require bootstrap.bundle.min
21
21
  //= require ./vue.global.prod
22
22
  //= require ./routes
23
23
  //= require ./queries
@@ -0,0 +1,2 @@
1
+ import { Application, Controller } from "<%= javascript_url "stimulus.min" %>"
2
+ window.Stimulus = Application.start()
@@ -7,5 +7,6 @@
7
7
  //= require ./code_controller
8
8
  //= require ./datepicker_controller
9
9
  //= require ./daterangepicker_controller
10
+ //= require ./navbar_padding_controller
10
11
  //= require ./selectize_controller
11
12
  //= require ./unsaved_controller
@@ -0,0 +1,7 @@
1
+ Stimulus.register("navbar-padding", class extends Controller {
2
+ static targets = [ "navbar" ]
3
+
4
+ connect() {
5
+ this.element.style.paddingTop = (this.navbarTarget.clientHeight || 0) + "px"
6
+ }
7
+ })
@@ -1,20 +1,26 @@
1
1
  /*
2
- *= require ./bootstrap-sprockets
3
- *= require ./bootstrap
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
- body {
16
- padding-top: 15px;
17
- padding-bottom: 15px;
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
- .glyphicon-remove {
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
  }
@@ -103,6 +103,7 @@ module Blazer
103
103
  end
104
104
 
105
105
  def variable_params(resource, var_params = nil)
106
+ return {} unless resource.present?
106
107
  permitted_keys = resource.variables
107
108
  var_params ||= request.query_parameters
108
109
  var_params.slice(*permitted_keys)
@@ -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
- <div class="topbar">
4
- <div class="container">
5
- <div class="row" style="padding-top: 13px;">
6
- <div class="col-sm-9">
7
- <%= render partial: "blazer/nav" %>
8
- <h3 style="line-height: 34px; display: inline; margin-left: 5px;">
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-xs-8">
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 text-right" style="margin-bottom: 8px;">
18
- <div class="pull-left" style="margin-top: 8px;">
19
- <%= link_to "Back", :back %>
20
- <a :href="docsPath" target="_blank" style="margin-left: 40px;">Docs</a>
21
- <a :href="schemaPath" target="_blank" style="margin-left: 40px;">Schema</a>
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
- <%= f.select :data_source, Blazer.data_sources.map { |_, ds| [ds.name, ds.id] }, {}, class: ("hide" if Blazer.data_sources.size <= 1), style: "width: 140px;" %>
25
- <div id="tables" style="display: inline-block; width: 250px; margin-right: 10px;">
26
- <select id="table_names" style="width: 240px;" placeholder="Preview table"></select>
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-xs-4">
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-right">
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
- <div id="header">
3
- <div class="pull-right" style="line-height: 34px;">
4
- <% if blazer_user %>
5
- <%= link_to "All", root_path, class: !params[:filter] ? "active" : nil, style: "margin-right: 40px;" %>
6
-
7
- <% if Blazer.audit %>
8
- <%= link_to "Viewed", root_path(filter: "viewed"), class: params[:filter] == "viewed" ? "active" : nil, style: "margin-right: 40px;" %>
9
- <% end %>
10
-
11
- <%= link_to "Mine", root_path(filter: "mine"), class: params[:filter] == "mine" ? "active" : nil, style: "margin-right: 40px;" %>
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
- <div class="btn-group">
15
- <%= link_to "New Query", new_query_path, class: "btn btn-info" %>
16
- <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
17
- <span class="caret"></span>
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
- <div class="topbar">
4
- <div class="container">
5
- <div class="row" style="padding-top: 13px;">
6
- <div class="col-sm-9">
7
- <%= render partial: "blazer/nav" %>
8
- <h3 style="line-height: 34px; display: inline; margin-left: 5px;">
9
- <%= @query.name %>
10
- </h3>
11
- </div>
12
- <div class="col-sm-3 text-right">
13
- <%= link_to "Edit", edit_query_path(@query, params: variable_params(@query)), class: "btn btn-default", disabled: !@query.editable?(blazer_user) %>
14
- <%= link_to "Fork", new_query_path(params: {variables: variable_params(@query), fork_query_id: @query.id, data_source: @query.data_source, name: @query.name}), class: "btn btn-info" %>
15
-
16
- <% if !@error && @success %>
17
- <%= button_to "Download", run_queries_path(format: "csv"), params: @run_data, class: "btn btn-primary" %>
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 style="white-space: pre-line;"><%= @query.description %></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 col-md-offset-11 btn btn-sm btn-info">Show source</summary>
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: 60})
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 : "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
- <% if defined?(Propshaft::Railtie) %>
9
- <%= stylesheet_link_tag "blazer/bootstrap-propshaft", "blazer/bootstrap", "blazer/selectize", "blazer/github", "blazer/daterangepicker", "blazer/application" %>
10
- <%= javascript_include_tag "blazer/jquery", "blazer/rails-ujs", "blazer/stupidtable", "blazer/stupidtable-custom-settings", "blazer/jquery.stickytableheaders", "blazer/selectize", "blazer/highlight.min", "blazer/moment", "blazer/moment-timezone-with-data", "blazer/daterangepicker", "blazer/chart.umd", "blazer/chartjs-adapter-date-fns.bundle", "blazer/chartkick", "blazer/mapkick.bundle", "blazer/ace/ace", "blazer/ace/ext-language_tools", "blazer/ace/theme-twilight", "blazer/ace/mode-sql", "blazer/ace/snippets/text", "blazer/ace/snippets/sql", "blazer/Sortable", "blazer/bootstrap", "blazer/vue.global.prod", "blazer/routes", "blazer/queries", "blazer/fuzzysearch", "blazer/application" %>
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
- <div class="container">
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>