finery 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
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