refine-rails 2.11.8 → 2.11.10

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/refine-stimulus.esm.js +1 -1
  3. data/app/assets/javascripts/refine-stimulus.esm.js.map +1 -1
  4. data/app/assets/javascripts/refine-stimulus.js +1 -1
  5. data/app/assets/javascripts/refine-stimulus.js.map +1 -1
  6. data/app/assets/javascripts/refine-stimulus.modern.js +1 -1
  7. data/app/assets/javascripts/refine-stimulus.modern.js.map +1 -1
  8. data/app/assets/javascripts/refine-stimulus.umd.js +1 -1
  9. data/app/assets/javascripts/refine-stimulus.umd.js.map +1 -1
  10. data/app/assets/stylesheets/index.css +129 -7
  11. data/app/assets/stylesheets/index.tailwind.css +126 -7
  12. data/app/controllers/refine/advanced_inline/criteria_controller.rb +186 -0
  13. data/app/controllers/refine/advanced_inline/stored_filters_controller.rb +84 -0
  14. data/app/controllers/refine/inline/criteria_controller.rb +0 -8
  15. data/app/javascript/controllers/fields/shoelace/tab-group-controller.js +85 -0
  16. data/app/javascript/controllers/index.js +5 -2
  17. data/app/javascript/controllers/refine/modal-controller.js +0 -1
  18. data/app/javascript/controllers/refine/popup-controller.js +1 -0
  19. data/app/models/refine/conditions/has_icon.rb +36 -0
  20. data/app/models/refine/filter.rb +1 -0
  21. data/app/views/refine/advanced_inline/criteria/_condition_list_item_card.html.erb +31 -0
  22. data/app/views/refine/advanced_inline/criteria/_form_fields.html.erb +121 -0
  23. data/app/views/refine/advanced_inline/criteria/create.turbo_stream.erb +19 -0
  24. data/app/views/refine/advanced_inline/criteria/edit.turbo_stream.erb +31 -0
  25. data/app/views/refine/advanced_inline/criteria/index.html.erb +90 -0
  26. data/app/views/refine/advanced_inline/criteria/new.turbo_stream.erb +31 -0
  27. data/app/views/refine/advanced_inline/filters/_add_first_condition_button.html.erb +19 -0
  28. data/app/views/refine/advanced_inline/filters/_and_button.html.erb +30 -0
  29. data/app/views/refine/advanced_inline/filters/_clear_button.html.erb +13 -0
  30. data/app/views/refine/advanced_inline/filters/_criterion.html.erb +22 -0
  31. data/app/views/refine/advanced_inline/filters/_group.html.erb +4 -0
  32. data/app/views/refine/advanced_inline/filters/_or_button.html.erb +29 -0
  33. data/app/views/refine/advanced_inline/filters/_or_separator.html.erb +12 -0
  34. data/app/views/refine/advanced_inline/filters/_popup.html.erb +26 -0
  35. data/app/views/refine/advanced_inline/filters/_save_button.html.erb +15 -0
  36. data/app/views/refine/advanced_inline/filters/_show.html.erb +38 -0
  37. data/app/views/refine/advanced_inline/inputs/_date_condition.html.erb +9 -0
  38. data/app/views/refine/advanced_inline/inputs/_date_condition_days.html.erb +18 -0
  39. data/app/views/refine/advanced_inline/inputs/_date_condition_range.html.erb +22 -0
  40. data/app/views/refine/advanced_inline/inputs/_date_condition_single.html.erb +9 -0
  41. data/app/views/refine/advanced_inline/inputs/_date_picker.html.erb +20 -0
  42. data/app/views/refine/advanced_inline/inputs/_numeric_condition.html.erb +23 -0
  43. data/app/views/refine/advanced_inline/inputs/_option_condition.html.erb +27 -0
  44. data/app/views/refine/advanced_inline/inputs/_text_condition.html.erb +8 -0
  45. data/app/views/refine/advanced_inline/stored_filters/find.turbo_stream.erb +19 -0
  46. data/app/views/refine/advanced_inline/stored_filters/index.html.erb +28 -0
  47. data/app/views/refine/advanced_inline/stored_filters/new.turbo_stream.erb +47 -0
  48. data/app/views/refine/inline/criteria/_condition_list_item.html.erb +0 -7
  49. data/app/views/refine/inline/filters/_add_first_condition_button.html.erb +3 -8
  50. data/app/views/refine/inline/filters/_and_button.html.erb +3 -8
  51. data/app/views/refine/inline/filters/_group.html.erb +1 -3
  52. data/app/views/refine/inline/filters/_or_button.html.erb +3 -8
  53. data/app/views/refine/inline/filters/_show.html.erb +4 -10
  54. data/config/locales/en/refine.en.yml +18 -0
  55. data/config/routes.rb +9 -1
  56. data/lib/refine/rails/version.rb +1 -1
  57. metadata +33 -5
  58. data/app/views/refine/inline/criteria/index_advanced.html.erb +0 -29
  59. data/app/views/refine/inline/filters/_modal_or_popup.html.erb +0 -35
  60. /data/app/views/refine/{inline → advanced_inline}/filters/_modal.html.erb +0 -0
@@ -6,9 +6,6 @@
6
6
  conjunction: "and",
7
7
  position: position
8
8
  )
9
- use_modal ||= false
10
- fill_modal ||= false
11
- src = use_modal ? index_advanced_refine_inline_criteria_path(criterion.to_params.merge(fill_modal: fill_modal)) : refine_inline_criteria_path(criterion.to_params)
12
9
  %>
13
10
 
14
11
  <% if @refine_filter.criteria_limit_reached? %>
@@ -19,13 +16,11 @@
19
16
  <span class="icon material-icons-outlined refine--icon-sm">add</span>
20
17
  </button>
21
18
  <% else %>
22
- <%= render "refine/inline/filters/modal_or_popup",
19
+ <%= render "refine/inline/filters/popup",
23
20
  frame_id: dom_id(criterion),
24
- use_modal: use_modal,
25
- fill_modal: fill_modal,
26
- src: src do
21
+ src: refine_inline_criteria_path(criterion.to_params) do
27
22
  %>
28
- <button class="refine--add-condition-button refine--group-last-item refine--condition-pill-end" type="button" data-action="click->refine--popup#show click->refine--modal#open">
23
+ <button class="refine--add-condition-button refine--group-last-item refine--condition-pill-end" type="button" data-action="click->refine--popup#show">
29
24
  <% if show_label %>
30
25
  <span class="refine--add-button-label"><%= t("refine.inline.filters.and_button.condition") %></span>
31
26
  <% end %>
@@ -1,6 +1,4 @@
1
1
  <% render_stack ||= false %>
2
- <% use_modal ||= false %>
3
- <% fill_modal ||= false %>
4
2
 
5
3
  <% if render_stack %>
6
4
  <div class="refine--or-group">
@@ -8,7 +6,7 @@
8
6
  <% group.each.with_index do |criterion, i| %>
9
7
  <%= render "refine/inline/filters/criterion", criterion: criterion, placement: i, size: group.length %>
10
8
  <% end %>
11
- <%= render "refine/inline/filters/and_button", position: group.last.position + 1, show_label: (group_count < 2 && condition_count < 2), use_modal: use_modal, fill_modal: fill_modal %>
9
+ <%= render "refine/inline/filters/and_button", position: group.last.position + 1, show_label: (group_count < 2 && condition_count < 2) %>
12
10
  <% if render_stack %>
13
11
  </div>
14
12
  <% end %>
@@ -6,9 +6,6 @@
6
6
  conjunction: "or",
7
7
  position: position
8
8
  )
9
- use_modal ||= false
10
- fill_modal ||= false
11
- src = use_modal ? index_advanced_refine_inline_criteria_path(criterion.to_params.merge(fill_modal: fill_modal)) : refine_inline_criteria_path(criterion.to_params)
12
9
  %>
13
10
 
14
11
  <% if @refine_filter.criteria_limit_reached? %>
@@ -19,14 +16,12 @@
19
16
  </div>
20
17
  <% else %>
21
18
 
22
- <%= render "refine/inline/filters/modal_or_popup",
19
+ <%= render "refine/inline/filters/popup",
23
20
  frame_id: dom_id(criterion),
24
- use_modal: use_modal,
25
- fill_modal: fill_modal,
26
- src: src do
21
+ src: refine_inline_criteria_path(criterion.to_params) do
27
22
  %>
28
23
  <div class="refine--add-group-wrapper">
29
- <button class="refine--add-group-button" type="button" data-action="click->refine--popup#show click->refine--modal#open">
24
+ <button class="refine--add-group-button" type="button" data-action="click->refine--popup#show">
30
25
  <span class="refine--add-group-button-label"><%= t(".group") %></span>
31
26
  </button>
32
27
  </div>
@@ -3,10 +3,6 @@
3
3
 
4
4
  root_data = (defined?(data) && data) || {}
5
5
 
6
- use_modal = defined?(use_modal) ? use_modal : false
7
- fill_modal = defined?(fill_modal) ? fill_modal : false
8
-
9
- hide_save = defined?(hide_save) ? hide_save : true
10
6
  render_stack = defined?(render_stack) ? render_stack : false
11
7
  main_row_class = class_names "refine--filter-row" => true,
12
8
  "refine--has-many-groups" => groups.many?
@@ -15,14 +11,14 @@
15
11
  <%= tag.div class: "refine--filter-wrapper", id: "refine-inline-filter-#{@refine_client_id}", data: root_data do %>
16
12
  <%= tag.div class: main_row_class do %>
17
13
  <% if @refine_filter.blueprint.empty? %>
18
- <%= render "refine/inline/filters/add_first_condition_button", position: 0, btn_class: "refine--add-first-condition-btn", use_modal: use_modal, fill_modal: fill_modal %>
14
+ <%= render "refine/inline/filters/add_first_condition_button", position: 0, btn_class: "refine--add-first-condition-btn" %>
19
15
  <% else %>
20
16
  <div class="refine--groups-wrapper">
21
17
  <% groups.each.with_index do |group, i| %>
22
18
  <%= render "refine/inline/filters/or_separator", group: group, group_position: i, render_stack: render_stack %>
23
- <%= render "refine/inline/filters/group", group: group, group_count: groups.count, condition_count: group.count, render_stack: render_stack, use_modal: use_modal, fill_modal: fill_modal %>
19
+ <%= render "refine/inline/filters/group", group: group, group_count: groups.count, condition_count: group.count, render_stack: render_stack %>
24
20
  <% if i == groups.length - 1 %>
25
- <%= render "refine/inline/filters/or_button", position: @refine_filter.blueprint.length, use_modal: use_modal, fill_modal: fill_modal %>
21
+ <%= render "refine/inline/filters/or_button", position: @refine_filter.blueprint.length %>
26
22
  <% end %>
27
23
  <% end %>
28
24
 
@@ -31,9 +27,7 @@
31
27
  <% if @refine_filter.blueprint&.any? %>
32
28
  <div class="refine--filter-control-group">
33
29
  <%= render "refine/inline/filters/clear_button" %>
34
- <% unless hide_save %>
35
- <%= render "refine/inline/filters/save_button" %>
36
- <% end %>
30
+ <%= render "refine/inline/filters/save_button" %>
37
31
  </div>
38
32
  <% end %>
39
33
  <% end %>
@@ -194,3 +194,21 @@ en:
194
194
  recommended: "Recommended"
195
195
  load_button:
196
196
  load_filter: "Load Filter"
197
+
198
+ advanced_inline:
199
+ filters:
200
+ add_first_condition_button:
201
+ filter: "Filter"
202
+ criteria:
203
+ index:
204
+ recommended: "Recommended"
205
+ index_advanced:
206
+ title: "Select Filter"
207
+ saved_filters: "Saved Filters"
208
+ type_to_search: "Type to search"
209
+ recommended: "Recommended"
210
+ search_attributes: "Search Attributes"
211
+ filter_attributes_tab_name: "FILTER ATTRIBUTES"
212
+ filter_saved_filters_tab_name: "SAVED FILTERS"
213
+ load_button:
214
+ load_filter: "Load Filter"
data/config/routes.rb CHANGED
@@ -9,7 +9,15 @@ Rails.application.routes.draw do
9
9
  end
10
10
  namespace :inline do
11
11
  resources :criteria, except: [:show] do
12
- get "index_advanced", on: :collection
12
+ post "merge_groups", on: :collection
13
+ post "clear", on: :collection
14
+ end
15
+ resources :stored_filters, only: [:index, :new, :create] do
16
+ post "find", on: :collection
17
+ end
18
+ end
19
+ namespace :advanced_inline do
20
+ resources :criteria, except: [:show] do
13
21
  post "merge_groups", on: :collection
14
22
  post "clear", on: :collection
15
23
  end
@@ -1,5 +1,5 @@
1
1
  module Refine
2
2
  module Rails
3
- VERSION = "2.11.8"
3
+ VERSION = "2.11.10"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refine-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.8
4
+ version: 2.11.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colleen Schnettler
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-10-08 00:00:00.000000000 Z
12
+ date: 2024-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -47,11 +47,14 @@ files:
47
47
  - app/assets/javascripts/refine-stimulus.umd.js.map
48
48
  - app/assets/stylesheets/index.css
49
49
  - app/assets/stylesheets/index.tailwind.css
50
+ - app/controllers/refine/advanced_inline/criteria_controller.rb
51
+ - app/controllers/refine/advanced_inline/stored_filters_controller.rb
50
52
  - app/controllers/refine/blueprints_controller.rb
51
53
  - app/controllers/refine/filter_application_controller.rb
52
54
  - app/controllers/refine/inline/criteria_controller.rb
53
55
  - app/controllers/refine/inline/stored_filters_controller.rb
54
56
  - app/controllers/refine/stored_filters_controller.rb
57
+ - app/javascript/controllers/fields/shoelace/tab-group-controller.js
55
58
  - app/javascript/controllers/index.js
56
59
  - app/javascript/controllers/refine/add-controller.js
57
60
  - app/javascript/controllers/refine/criterion-form-controller.js
@@ -118,6 +121,34 @@ files:
118
121
  - app/views/_filter_builder_dropdown.html.erb
119
122
  - app/views/_filter_pills.html.erb
120
123
  - app/views/_loading.html.erb
124
+ - app/views/refine/advanced_inline/criteria/_condition_list_item_card.html.erb
125
+ - app/views/refine/advanced_inline/criteria/_form_fields.html.erb
126
+ - app/views/refine/advanced_inline/criteria/create.turbo_stream.erb
127
+ - app/views/refine/advanced_inline/criteria/edit.turbo_stream.erb
128
+ - app/views/refine/advanced_inline/criteria/index.html.erb
129
+ - app/views/refine/advanced_inline/criteria/new.turbo_stream.erb
130
+ - app/views/refine/advanced_inline/filters/_add_first_condition_button.html.erb
131
+ - app/views/refine/advanced_inline/filters/_and_button.html.erb
132
+ - app/views/refine/advanced_inline/filters/_clear_button.html.erb
133
+ - app/views/refine/advanced_inline/filters/_criterion.html.erb
134
+ - app/views/refine/advanced_inline/filters/_group.html.erb
135
+ - app/views/refine/advanced_inline/filters/_modal.html.erb
136
+ - app/views/refine/advanced_inline/filters/_or_button.html.erb
137
+ - app/views/refine/advanced_inline/filters/_or_separator.html.erb
138
+ - app/views/refine/advanced_inline/filters/_popup.html.erb
139
+ - app/views/refine/advanced_inline/filters/_save_button.html.erb
140
+ - app/views/refine/advanced_inline/filters/_show.html.erb
141
+ - app/views/refine/advanced_inline/inputs/_date_condition.html.erb
142
+ - app/views/refine/advanced_inline/inputs/_date_condition_days.html.erb
143
+ - app/views/refine/advanced_inline/inputs/_date_condition_range.html.erb
144
+ - app/views/refine/advanced_inline/inputs/_date_condition_single.html.erb
145
+ - app/views/refine/advanced_inline/inputs/_date_picker.html.erb
146
+ - app/views/refine/advanced_inline/inputs/_numeric_condition.html.erb
147
+ - app/views/refine/advanced_inline/inputs/_option_condition.html.erb
148
+ - app/views/refine/advanced_inline/inputs/_text_condition.html.erb
149
+ - app/views/refine/advanced_inline/stored_filters/find.turbo_stream.erb
150
+ - app/views/refine/advanced_inline/stored_filters/index.html.erb
151
+ - app/views/refine/advanced_inline/stored_filters/new.turbo_stream.erb
121
152
  - app/views/refine/blueprints/_add_and.html.erb
122
153
  - app/views/refine/blueprints/_add_group.html.erb
123
154
  - app/views/refine/blueprints/_clause_select.html.erb
@@ -143,15 +174,12 @@ files:
143
174
  - app/views/refine/inline/criteria/create.turbo_stream.erb
144
175
  - app/views/refine/inline/criteria/edit.turbo_stream.erb
145
176
  - app/views/refine/inline/criteria/index.html.erb
146
- - app/views/refine/inline/criteria/index_advanced.html.erb
147
177
  - app/views/refine/inline/criteria/new.turbo_stream.erb
148
178
  - app/views/refine/inline/filters/_add_first_condition_button.html.erb
149
179
  - app/views/refine/inline/filters/_and_button.html.erb
150
180
  - app/views/refine/inline/filters/_clear_button.html.erb
151
181
  - app/views/refine/inline/filters/_criterion.html.erb
152
182
  - app/views/refine/inline/filters/_group.html.erb
153
- - app/views/refine/inline/filters/_modal.html.erb
154
- - app/views/refine/inline/filters/_modal_or_popup.html.erb
155
183
  - app/views/refine/inline/filters/_or_button.html.erb
156
184
  - app/views/refine/inline/filters/_or_separator.html.erb
157
185
  - app/views/refine/inline/filters/_popup.html.erb
@@ -1,29 +0,0 @@
1
- <%
2
- # a hash mapping Category => [array, of, conditions], sorted by category
3
- categorized_conditions = @conditions
4
- .group_by {|c| c.meta[:category].presence}
5
- .sort_by do |(category, _conditions)|
6
- if @refine_filter.has_category_ordering?
7
- @refine_filter.category_order.index(category) || Float::INFINITY
8
- else
9
- category.to_s.downcase
10
- end
11
- end
12
- .to_h
13
-
14
- recommended_conditions = @conditions
15
- .select { |c| c.meta[:recommended] }
16
- .sort_by {|recommended| recommended.to_s.downcase }
17
-
18
- # an array of uncategorized conditions
19
- uncategorized_conditions = categorized_conditions.delete(nil)
20
- fill_modal = @fill_modal || false
21
- dialog_class = "sl-dialog refine--inline-modal-container"
22
- dialog_class += " dialog-full" if fill_modal
23
- %>
24
-
25
- <%= turbo_frame_tag @criterion do %>
26
- <sl-dialog open class="<%= dialog_class %>" no-header>
27
- This is where the main content will render...
28
- </sl-dialog>
29
- <% end %>
@@ -1,35 +0,0 @@
1
- <%
2
- src ||= ""
3
- container_class = container_class
4
- frame_class = frame_class
5
- is_open ||= false
6
- use_modal ||= false
7
- fill_modal ||= false
8
- %>
9
-
10
- <% if use_modal %>
11
- <%= render "refine/inline/filters/modal",
12
- frame_id: frame_id,
13
- container_class: container_class,
14
- frame_class: frame_class,
15
- is_open: is_open,
16
- fill_modal: fill_modal,
17
- src: src do
18
- %>
19
- <%= capture do %>
20
- <%= yield %>
21
- <% end %>
22
- <% end %>
23
- <% else %>
24
- <%= render "refine/inline/filters/popup",
25
- frame_id: frame_id,
26
- container_class: container_class,
27
- frame_class: frame_class,
28
- is_open: is_open,
29
- src: src do
30
- %>
31
- <%= capture do %>
32
- <%= yield %>
33
- <% end %>
34
- <% end %>
35
- <% end %>