finery 3.0.1 → 3.0.3

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  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 +2 -0
  6. data/app/assets/javascripts/blazer/controllers/more_controller.js +13 -0
  7. data/app/assets/javascripts/blazer/controllers/navbar_padding_controller.js +7 -0
  8. data/app/assets/stylesheets/blazer/application.css +18 -52
  9. data/app/controllers/blazer/base_controller.rb +1 -0
  10. data/app/controllers/blazer/queries_controller.rb +2 -1
  11. data/app/helpers/blazer/base_helper.rb +6 -0
  12. data/app/views/blazer/_navbar.html.erb +40 -0
  13. data/app/views/blazer/_variables.html.erb +16 -12
  14. data/app/views/blazer/checks/_form.html.erb +6 -6
  15. data/app/views/blazer/checks/index.html.erb +0 -19
  16. data/app/views/blazer/dashboards/_form.html.erb +7 -5
  17. data/app/views/blazer/dashboards/show.html.erb +7 -18
  18. data/app/views/blazer/queries/_form.html.erb +19 -13
  19. data/app/views/blazer/queries/home.html.erb +17 -30
  20. data/app/views/blazer/queries/run.html.erb +1 -1
  21. data/app/views/blazer/queries/show.html.erb +26 -31
  22. data/app/views/blazer/uploads/_form.html.erb +3 -3
  23. data/app/views/blazer/uploads/index.html.erb +0 -18
  24. data/app/views/layouts/blazer/application.html.erb +10 -11
  25. data/lib/blazer/adapters/clickhouse_adapter.rb +5 -2
  26. data/lib/blazer/engine.rb +0 -5
  27. data/lib/blazer/version.rb +1 -1
  28. data/lib/blazer.rb +11 -8
  29. metadata +6 -15
  30. data/app/assets/fonts/blazer/glyphicons-halflings-regular.eot +0 -0
  31. data/app/assets/fonts/blazer/glyphicons-halflings-regular.svg +0 -288
  32. data/app/assets/fonts/blazer/glyphicons-halflings-regular.ttf +0 -0
  33. data/app/assets/fonts/blazer/glyphicons-halflings-regular.woff +0 -0
  34. data/app/assets/fonts/blazer/glyphicons-halflings-regular.woff2 +0 -0
  35. data/app/assets/javascripts/blazer/bootstrap.js +0 -2580
  36. data/app/assets/javascripts/blazer/controllers/application.js +0 -2
  37. data/app/assets/javascripts/blazer/selectize.js +0 -3891
  38. data/app/assets/stylesheets/blazer/bootstrap-propshaft.css +0 -10
  39. data/app/assets/stylesheets/blazer/bootstrap-sprockets.css.erb +0 -10
  40. data/app/assets/stylesheets/blazer/bootstrap.css +0 -6828
  41. data/app/assets/stylesheets/blazer/selectize.css +0 -403
  42. data/app/views/blazer/_nav.html.erb +0 -18
@@ -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,17 +27,19 @@
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
- <details class="row">
43
- <summary class="col-md-1 col-md-offset-11 btn btn-sm btn-info">Show source</summary>
44
- <pre id="code" class="col-md-12">
45
- <code data-controller="code"><%= @statement.display_statement %></code>
46
- </pre>
47
- </details>
35
+ <div class="row">
36
+ <details class="col-12">
37
+ <summary class="btn btn-info">Show source</summary>
38
+ <pre id="code">
39
+ <code data-controller="code"><%= @statement.display_statement %></code>
40
+ </pre>
41
+ </details>
42
+ </div>
48
43
 
49
44
  <% if @success %>
50
45
  <div id="results">
@@ -54,7 +49,7 @@
54
49
  <script>
55
50
  function showRun(data) {
56
51
  $("#results").html(data)
57
- $("#results table").stupidtable(stupidtableCustomSettings).stickyTableHeaders({fixedOffset: 60})
52
+ $("#results table").stupidtable(stupidtableCustomSettings).stickyTableHeaders({fixedOffset: 56})
58
53
  }
59
54
 
60
55
  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>
@@ -37,6 +37,9 @@ module Blazer
37
37
  SQL
38
38
 
39
39
  response = connection.post(query: { query: statement, default_format: "CSV" })
40
+
41
+ return [] if response.body.nil?
42
+
40
43
  response.body
41
44
  .group_by { |row| row[0] }
42
45
  .transform_values { |columns| columns.map { |c| { name: c[1], data_type: c[2] } } }
@@ -54,7 +57,7 @@ module Blazer
54
57
  protected
55
58
 
56
59
  def connection
57
- @connection ||= ClickHouse::Connection.new(config)
60
+ @connection ||= ::ClickHouse::Connection.new(config)
58
61
  end
59
62
 
60
63
  def config
@@ -69,7 +72,7 @@ module Blazer
69
72
  database: uri.path.sub(/\A\//, ""),
70
73
  ssl_verify: settings.fetch("ssl_verify", false)
71
74
  }.compact
72
- ClickHouse::Config.new(**options)
75
+ ::ClickHouse::Config.new(**options)
73
76
  end
74
77
  end
75
78
 
data/lib/blazer/engine.rb CHANGED
@@ -8,11 +8,6 @@ module Blazer
8
8
  "blazer/application.js",
9
9
  "blazer/module.js",
10
10
  "blazer/application.css",
11
- "blazer/glyphicons-halflings-regular.eot",
12
- "blazer/glyphicons-halflings-regular.svg",
13
- "blazer/glyphicons-halflings-regular.ttf",
14
- "blazer/glyphicons-halflings-regular.woff",
15
- "blazer/glyphicons-halflings-regular.woff2",
16
11
  "blazer/favicon.png"
17
12
  ]
18
13
  else
@@ -1,3 +1,3 @@
1
1
  module Blazer
2
- VERSION = "3.0.1"
2
+ VERSION = "3.0.3"
3
3
  end
data/lib/blazer.rb CHANGED
@@ -119,14 +119,17 @@ module Blazer
119
119
  end
120
120
 
121
121
  def self.settings
122
- @settings ||= begin
123
- path = Rails.root.join("config", "blazer.yml").to_s
124
- if File.exist?(path)
125
- YAML.safe_load(ERB.new(File.read(path)).result, aliases: true)
126
- else
127
- {}
128
- end
129
- end
122
+ @settings ||= load_settings!
123
+ end
124
+
125
+ def self.load_settings!
126
+ path = Rails.root.join("config", "blazer.yml").to_s
127
+ return YAML.safe_load(ERB.new(File.read(path)).result, aliases: true) if File.exist?(path)
128
+
129
+ path = Rails.root.join("config", "finery.yml").to_s
130
+ return YAML.safe_load(ERB.new(File.read(path)).result, aliases: true) if File.exist?(path)
131
+
132
+ {}
130
133
  end
131
134
 
132
135
  def self.data_sources
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finery
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane, Chris Hasinski, Tomasz Ratajczak and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-03 00:00:00.000000000 Z
11
+ date: 2023-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -90,11 +90,6 @@ files:
90
90
  - CONTRIBUTING.md
91
91
  - LICENSE.txt
92
92
  - README.md
93
- - app/assets/fonts/blazer/glyphicons-halflings-regular.eot
94
- - app/assets/fonts/blazer/glyphicons-halflings-regular.svg
95
- - app/assets/fonts/blazer/glyphicons-halflings-regular.ttf
96
- - app/assets/fonts/blazer/glyphicons-halflings-regular.woff
97
- - app/assets/fonts/blazer/glyphicons-halflings-regular.woff2
98
93
  - app/assets/images/blazer/favicon.png
99
94
  - app/assets/javascripts/blazer/Sortable.js
100
95
  - app/assets/javascripts/blazer/ace.js
@@ -105,17 +100,18 @@ files:
105
100
  - app/assets/javascripts/blazer/ace/snippets/text.js
106
101
  - app/assets/javascripts/blazer/ace/theme-twilight.js
107
102
  - app/assets/javascripts/blazer/application.js
108
- - app/assets/javascripts/blazer/bootstrap.js
109
103
  - app/assets/javascripts/blazer/chart.umd.js
110
104
  - app/assets/javascripts/blazer/chartjs-adapter-date-fns.bundle.js
111
105
  - app/assets/javascripts/blazer/chartjs-plugin-annotation.min.js
112
106
  - app/assets/javascripts/blazer/chartkick.js
113
- - app/assets/javascripts/blazer/controllers/application.js
107
+ - app/assets/javascripts/blazer/controllers/application.js.erb
114
108
  - app/assets/javascripts/blazer/controllers/autosubmit_controller.js
115
109
  - app/assets/javascripts/blazer/controllers/code_controller.js
116
110
  - app/assets/javascripts/blazer/controllers/datepicker_controller.js
117
111
  - app/assets/javascripts/blazer/controllers/daterangepicker_controller.js
118
112
  - app/assets/javascripts/blazer/controllers/index.js
113
+ - app/assets/javascripts/blazer/controllers/more_controller.js
114
+ - app/assets/javascripts/blazer/controllers/navbar_padding_controller.js
119
115
  - app/assets/javascripts/blazer/controllers/selectize_controller.js
120
116
  - app/assets/javascripts/blazer/controllers/unsaved_controller.js
121
117
  - app/assets/javascripts/blazer/daterangepicker.js
@@ -130,17 +126,12 @@ files:
130
126
  - app/assets/javascripts/blazer/queries.js
131
127
  - app/assets/javascripts/blazer/rails-ujs.js
132
128
  - app/assets/javascripts/blazer/routes.js
133
- - app/assets/javascripts/blazer/selectize.js
134
129
  - app/assets/javascripts/blazer/stupidtable-custom-settings.js
135
130
  - app/assets/javascripts/blazer/stupidtable.js
136
131
  - app/assets/javascripts/blazer/vue.global.prod.js
137
132
  - app/assets/stylesheets/blazer/application.css
138
- - app/assets/stylesheets/blazer/bootstrap-propshaft.css
139
- - app/assets/stylesheets/blazer/bootstrap-sprockets.css.erb
140
- - app/assets/stylesheets/blazer/bootstrap.css
141
133
  - app/assets/stylesheets/blazer/daterangepicker.css
142
134
  - app/assets/stylesheets/blazer/github.css
143
- - app/assets/stylesheets/blazer/selectize.css
144
135
  - app/controllers/blazer/base_controller.rb
145
136
  - app/controllers/blazer/checks_controller.rb
146
137
  - app/controllers/blazer/dashboards_controller.rb
@@ -156,7 +147,7 @@ files:
156
147
  - app/models/blazer/record.rb
157
148
  - app/models/blazer/upload.rb
158
149
  - app/models/blazer/uploads_connection.rb
159
- - app/views/blazer/_nav.html.erb
150
+ - app/views/blazer/_navbar.html.erb
160
151
  - app/views/blazer/_variables.html.erb
161
152
  - app/views/blazer/check_mailer/failing_checks.html.erb
162
153
  - app/views/blazer/check_mailer/state_change.html.erb