finery 3.0.2 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c11bf80f48ee76d4afaed581aabb6481bccd7b56a839c49b2bd61613b8e000e
4
- data.tar.gz: f350e697db4948e3b1426961b3b26f46fdd49a2db2a3411812cb85be6510671b
3
+ metadata.gz: 581c9c47c4c0b79536e441a4d4471fe021dfb782988a397e4ce781436cabe9fb
4
+ data.tar.gz: f5cf561aaff9f8362b28a28217b01b5591ce73b90d0c1eb7cd54dd67d51c8590
5
5
  SHA512:
6
- metadata.gz: 6398ed311ae7de30b5f8c8b7f9ad3a3de14c793f62ceeb6bf3b35970703f5d69e5e093888bf41fef8df77945928be7aff3a911b17799bc4b3fbab48c2d221620
7
- data.tar.gz: 25553c55eeb394fc57084d8174d408a6a4f977cf28e4333f59c3c611b6fd5bb30f0cc2288e6609cec15cef936db451cec44808ddf0b305d19ee15f88c53e5fa3
6
+ metadata.gz: 07b7c9c15a2d9a433c2d0b4d45faeba9d2d7ea5c64fcd06b7099f8b849e2aa0e385b026b9198051230efa8c5fe15c0f368a43d3d0fc0319f7df3c6ce2a756f00
7
+ data.tar.gz: 8a4f16b2080bbc21071068bd93995c08255a0aac0dd3a72ea58fb1f51e0935580c36ede132d0617b8ce6163420f84d1a898b61d05c265e1ddf71d0784b342873
data/README.md CHANGED
@@ -763,7 +763,6 @@ data_sources:
763
763
  # optional settings
764
764
  ssl_verify: true # false by default
765
765
  ```
766
- >>>>>>> 41a6b49 (Added support for ClickHouse)
767
766
 
768
767
  ### Druid
769
768
 
@@ -7,6 +7,7 @@
7
7
  //= require ./code_controller
8
8
  //= require ./datepicker_controller
9
9
  //= require ./daterangepicker_controller
10
+ //= require ./more_controller
10
11
  //= require ./navbar_padding_controller
11
12
  //= require ./selectize_controller
12
13
  //= require ./unsaved_controller
@@ -0,0 +1,13 @@
1
+ Stimulus.register("more", class extends Controller {
2
+ static targets = [ "field", "show" ]
3
+
4
+ connect() {
5
+ this.fieldTargets.forEach((e) => { e.style.display = "none" })
6
+ this.showTarget.classList.remove("d-none")
7
+ }
8
+
9
+ show(event) {
10
+ this.fieldTargets.forEach((e) => { e.style.display = "block" })
11
+ this.showTarget.classList.add("d-none")
12
+ }
13
+ })
@@ -62,7 +62,7 @@ input.search:focus {
62
62
  min-width: 10em;
63
63
  }
64
64
 
65
- .form-inline .selectize-control, .text-right .selectize-control {
65
+ .text-right .selectize-control {
66
66
  display: inline-block;
67
67
  vertical-align: middle;
68
68
  margin-left: 5px;
@@ -61,6 +61,7 @@ module Blazer
61
61
  def show
62
62
  @statement = @query.statement_object
63
63
  @success = process_vars(@statement)
64
+ @data_sources = [Blazer.data_sources[@query.data_source]]
64
65
 
65
66
  @smart_vars = {}
66
67
  @sql_errors = []
@@ -36,6 +36,12 @@ module Blazer
36
36
  k.nil? ? "null" : k.to_s
37
37
  end
38
38
 
39
+ def blazer_var_default?(key)
40
+ value = request.query_parameters[key]
41
+ return true if value.to_s == ""
42
+ return true if @data_sources.any? { |source| source.variable_defaults[key].to_s == value.to_s }
43
+ end
44
+
39
45
  def blazer_format_annotations(annotations)
40
46
  return [] unless annotations.is_a?(Array)
41
47
  sorted = annotations.sort_by { |annotation| annotation[:min_date] }
@@ -1,10 +1,12 @@
1
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>
2
+ <div class="container">
3
+ <div class="d-flex flex-nowrap mw-100">
4
+ <span class="navbar-brand d-none d-sm-inline">Finery</span>
5
+ <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">
6
+ <span class="navbar-toggler-icon"></span>
7
+ </button>
8
+ <span class="navbar-brand d-sm-none text-truncate"><%= blazer_title || "Finery" %></span>
9
+ </div>
8
10
  <div class="collapse navbar-collapse" id="navbarCollapse">
9
11
  <ul class="navbar-nav me-auto mb-2 mb-md-0">
10
12
  <li class="nav-item">
@@ -3,7 +3,7 @@
3
3
  <script>
4
4
  <%= blazer_js_var "timeZone", Blazer.time_zone.tzinfo.name %>
5
5
  </script>
6
- <form id="bind" method="get" action="<%= action %>" class="form-inline" style="margin-bottom: 15px;" data-controller="autosubmit" data-action="change->autosubmit#call">
6
+ <form id="bind" method="get" action="<%= action %>" class="form-inline row g-3" style="margin-bottom: 15px;" data-controller="autosubmit more" data-action="change->autosubmit#call">
7
7
  <% date_vars = ["start_time", "end_time"] %>
8
8
  <% if (date_vars - @bind_vars).empty? %>
9
9
  <% @bind_vars = @bind_vars - date_vars %>
@@ -12,19 +12,17 @@
12
12
  <% end %>
13
13
 
14
14
  <% @bind_vars.each_with_index do |var, i| %>
15
- <div class="form-group">
16
- <%= label_tag var, var %>
17
- <% if (data = @smart_vars[var]) %>
18
- <%= select_tag var, options_for_select([[nil, nil]] + data, selected: var_params[var]), data: { controller: "selectize" }, style: "margin-right: 20px; width: 200px; display: none;" %>
15
+ <div class="col-12 col-md-2" <% if blazer_var_default?(var) %>data-more-target="field"<% end %>>
16
+ <%= label_tag var, var, class: "form-label" %>
17
+ <% if @smart_vars.key? var %>
18
+ <%= select_tag var, options_for_select(@smart_vars[var], var_params[var]), include_blank: true, data: { controller: "selectize" }, class: "form-select" %>
19
19
  <% elsif var.end_with?("_at") || var == "start_time" || var == "end_time" %>
20
-
21
- <div class="selectize-control single" style="width: 200px;">
22
- <div id="<%= var %>-select" class="selectize-input" style="display: inline-block;" data-controller="datepicker">
20
+ <div class="selectize-control single">
21
+ <div id="<%= var %>-select" class="selectize-input" data-controller="datepicker">
23
22
  <%= hidden_field_tag var, var_params[var], data: { datepicker_target: "input" } %>
24
23
  <span data-datepicker-target="span">Select a date</span>
25
24
  </div>
26
25
  </div>
27
-
28
26
  <% else %>
29
27
  <%= text_field_tag var, var_params[var], autofocus: i == 0 && !var.end_with?("_at") && !var_params[var], class: "form-control" %>
30
28
  <% end %>
@@ -36,14 +34,20 @@
36
34
  <%= hidden_field_tag var, var_params[var] %>
37
35
  <% end %>
38
36
 
39
- <%= label_tag nil, date_vars.join(" & ") %>
40
- <div class="selectize-control single" style="width: 300px;">
37
+ <div class="selectize-control single col-12 col-md-4">
38
+ <%= label_tag nil, date_vars.join(" & "), class: "form-label" %>
41
39
  <div id="reportrange" class="selectize-input" style="display: inline-block;" data-controller="daterangepicker">
42
40
  <span>Select a time range</span>
43
41
  </div>
44
42
  </div>
45
43
  <% end %>
46
44
 
47
- <input type="submit" class="btn btn-success" value="Run" style="vertical-align: top;" />
45
+ <div class="col-12 col-md-2 d-flex align-items-end d-none" data-more-target="show">
46
+ <button type="button" class="btn btn-info" data-action="more#show:prevent">More filters</button>
47
+ </div>
48
+
49
+ <div class="col-12">
50
+ <input type="submit" class="btn btn-success col-12 col-md-1 offset-md-11" value="Run">
51
+ </div>
48
52
  </form>
49
53
  <% end %>
@@ -32,12 +32,14 @@
32
32
 
33
33
  <%= render partial: "blazer/variables", locals: {action: query_path(@query)} %>
34
34
 
35
- <details class="row">
36
- <summary class="col-md-1 offset-md-11 btn btn-sm btn-info">Show source</summary>
37
- <pre id="code" class="col-md-12">
38
- <code data-controller="code"><%= @statement.display_statement %></code>
39
- </pre>
40
- </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>
41
43
 
42
44
  <% if @success %>
43
45
  <div id="results">
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module Blazer
2
- VERSION = "3.0.2"
2
+ VERSION = "3.0.3"
3
3
  end
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.2
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-13 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
@@ -110,6 +110,7 @@ files:
110
110
  - app/assets/javascripts/blazer/controllers/datepicker_controller.js
111
111
  - app/assets/javascripts/blazer/controllers/daterangepicker_controller.js
112
112
  - app/assets/javascripts/blazer/controllers/index.js
113
+ - app/assets/javascripts/blazer/controllers/more_controller.js
113
114
  - app/assets/javascripts/blazer/controllers/navbar_padding_controller.js
114
115
  - app/assets/javascripts/blazer/controllers/selectize_controller.js
115
116
  - app/assets/javascripts/blazer/controllers/unsaved_controller.js