spree_admin 5.4.0.rc1 → 5.4.0.rc2

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: b5a5b3309511c484a0457d5712eb1e1202f42184edb34816b9f3cde07c39fa7f
4
- data.tar.gz: 19f2534604cf8102584c203c91e97d9c1b6fd7178aa42b31bb9a5f7fe3f56339
3
+ metadata.gz: 479097d9317adf858807e12d40ee9d2dcb340f486bf0dc01dee9d90dbad90819
4
+ data.tar.gz: cc5c526fae02b32c8fb876f1251a9eff679cb08f72aaa5ee521e10df4d62698f
5
5
  SHA512:
6
- metadata.gz: 861da124bb906968bcc212a365968b65d5c74aa395bb58ba4f7fa158552110b567c5a3870fe8452198bbe0027f18c72c37109553838f68e9b08b64af9fb31aab
7
- data.tar.gz: c2eca230f9a11ac3e7af5872aa591e51cabe7125c35e7190331a1db226f2d5d2f6d2a4ca035dad9f1db88bf1c155cbc4d8bc7f7c7fae8022105bea7a03e87ae0
6
+ metadata.gz: cbefe5db66c8ad5fa2eb1b5c8310d3eeb88b93ab0dd92ee74b13df72249d8f422fe8ede21e97f9965c98f61daabf99c5660147de08ec548159816e7e61543dae
7
+ data.tar.gz: 80ba852806ea114ae47deba8227d894d7a484fc34edd5fd631d9f40b24ae4e3e481949f791b715c797574930eaa47bd454f714a28d49247da39801e1eb9ee51c
@@ -427,9 +427,8 @@
427
427
  }
428
428
 
429
429
  .sidebar-mobile .sidebar-panel {
430
- @apply absolute left-0 top-0 bottom-0 bg-gray-25 overflow-y-auto flex flex-col shadow-lg transition-transform duration-500;
430
+ @apply absolute left-0 top-0 bottom-0 bg-gray-25 overflow-y-auto flex flex-col shadow-lg transition-transform duration-500 -translate-x-full;
431
431
  width: var(--spacing-sidebar-width);
432
- transform: translateX(-100%);
433
432
  }
434
433
 
435
434
  .sidebar-mobile .sidebar-mobile-header {
@@ -394,8 +394,11 @@ module Spree
394
394
  end
395
395
 
396
396
  def sort_dropdown_item(label, sort_value, is_active, current_q)
397
+ url_params = { q: current_q.merge(s: sort_value) }
398
+ url_params[:query_state] = params[:query_state] if params[:query_state].present?
399
+
397
400
  link_to(
398
- url_for(q: current_q.merge(s: sort_value)),
401
+ url_for(url_params),
399
402
  class: "dropdown-item flex items-center justify-between #{'active' if is_active}",
400
403
  data: { turbo_action: 'advance' }
401
404
  ) do
@@ -286,7 +286,10 @@ module Spree
286
286
  @template.content_tag(:div, class: 'form-group') do
287
287
  @template.content_tag(:div, class: 'custom-control custom-radio') do
288
288
  radio = @template.radio_button(@object_name, method, tag_value, objectify_options(options.merge(class: 'custom-control-input form-radio')))
289
- label = options[:label] == false ? ''.html_safe : @template.label(@object_name, method, get_label(method, options), class: 'custom-control-label', value: tag_value)
289
+ label_options = { class: 'custom-control-label' }
290
+ label_options[:for] = options[:id] if options[:id]
291
+ label_options[:value] = tag_value unless options[:id]
292
+ label = options[:label] == false ? ''.html_safe : @template.label(@object_name, method, get_label(method, options), label_options)
290
293
  radio + label
291
294
  end + @template.error_message_on(@object_name, method) + spree_field_help(method, options.merge(class: 'form-text mt-2'))
292
295
  end
@@ -24,6 +24,23 @@
24
24
  class="grow flex flex-col justify-between">
25
25
 
26
26
  <%= form_with url: url_for, method: :get, html: { class: 'grow flex flex-col justify-between' }, data: { turbo_frame: frame_name, turbo_action: 'advance', query_builder_target: 'form', action: 'submit->query-builder#submitForm' } do |f| %>
27
+ <%# Preserve search and date range state when applying filters %>
28
+ <% search_param = table.respond_to?(:search_param) ? table.search_param : :name_cont %>
29
+ <% if params.dig(:q, search_param).present? %>
30
+ <%= hidden_field_tag "q[#{search_param}]", params.dig(:q, search_param) %>
31
+ <% end %>
32
+ <% date_range_param = table.date_range_param %>
33
+ <% if date_range_param.present? %>
34
+ <% if params.dig(:q, :"#{date_range_param}_gt").present? %>
35
+ <%= hidden_field_tag "q[#{date_range_param}_gt]", params.dig(:q, :"#{date_range_param}_gt") %>
36
+ <% end %>
37
+ <% if params.dig(:q, :"#{date_range_param}_lt").present? %>
38
+ <%= hidden_field_tag "q[#{date_range_param}_lt]", params.dig(:q, :"#{date_range_param}_lt") %>
39
+ <% end %>
40
+ <% end %>
41
+ <% if params.dig(:q, :s).present? %>
42
+ <%= hidden_field_tag "q[s]", params.dig(:q, :s) %>
43
+ <% end %>
27
44
  <div class="drawer-body">
28
45
  <div class="mb-4 flex items-center gap-2 flex-wrap">
29
46
  <span class="text-sm text-gray-600">
@@ -27,6 +27,23 @@
27
27
  <%= icon 'x', class: 'w-4 h-4' %>
28
28
  </button>
29
29
  </div>
30
+ <%# Preserve query builder filter state when submitting search %>
31
+ <% if params[:query_state].present? %>
32
+ <%= hidden_field_tag :query_state, params[:query_state] %>
33
+ <% end %>
34
+ <%# Preserve date range filter state when submitting search %>
35
+ <% if date_range_param.present? %>
36
+ <% if params.dig(:q, :"#{date_range_param}_gt").present? %>
37
+ <%= hidden_field_tag "q[#{date_range_param}_gt]", params.dig(:q, :"#{date_range_param}_gt") %>
38
+ <% end %>
39
+ <% if params.dig(:q, :"#{date_range_param}_lt").present? %>
40
+ <%= hidden_field_tag "q[#{date_range_param}_lt]", params.dig(:q, :"#{date_range_param}_lt") %>
41
+ <% end %>
42
+ <% end %>
43
+ <%# Preserve sort order when submitting search %>
44
+ <% if params.dig(:q, :s).present? %>
45
+ <%= hidden_field_tag "q[s]", params.dig(:q, :s) %>
46
+ <% end %>
30
47
  <% end %>
31
48
  </div>
32
49
 
@@ -39,6 +56,16 @@
39
56
  date_from_value: params.dig(:q, :"#{date_range_param}_gt"),
40
57
  date_to_value: params.dig(:q, :"#{date_range_param}_lt"),
41
58
  css_classes: "btn-light btn-sm dropdown-toggle h-[2.125rem]" %>
59
+ <%# Preserve search and filter state when submitting date range %>
60
+ <% if params.dig(:q, search_param).present? %>
61
+ <%= hidden_field_tag "q[#{search_param}]", params.dig(:q, search_param) %>
62
+ <% end %>
63
+ <% if params[:query_state].present? %>
64
+ <%= hidden_field_tag :query_state, params[:query_state] %>
65
+ <% end %>
66
+ <% if params.dig(:q, :s).present? %>
67
+ <%= hidden_field_tag "q[s]", params.dig(:q, :s) %>
68
+ <% end %>
42
69
  <% end %>
43
70
  <% end %>
44
71
  <%= render 'spree/admin/tables/query_builder', table: table, table_key: table_key, frame_name: frame_name %>
@@ -1,24 +1,28 @@
1
- <div class="card mb-6">
2
- <div class="card-header">
3
- <h5 class="card-title"><%= Spree.t(:general_settings) %></h5>
4
- </div>
1
+ <div data-controller="replace">
2
+ <div class="card mb-6">
3
+ <div class="card-header">
4
+ <h5 class="card-title"><%= Spree.t(:general_settings) %></h5>
5
+ </div>
5
6
 
6
- <div class="card-body">
7
- <%= f.spree_text_field :name %>
7
+ <div class="card-body">
8
+ <%= f.spree_text_field :name %>
8
9
 
9
- <%= f.spree_text_field :description %>
10
+ <%= f.spree_text_field :description %>
10
11
 
11
- <%= f.spree_check_box :default_tax, label: Spree.t(:default_tax_zone) %>
12
+ <%= f.spree_check_box :default_tax, label: Spree.t(:default_tax_zone) %>
12
13
 
13
- <h6 class="mb-2 mt-4"><%= Spree.t(:type) %></h6>
14
- <%= f.spree_radio_button :kind, :country, id: 'country_based', data: { action: 'auto-submit#submit' }, label: Spree.t(:country_based) %>
15
- <%= f.spree_radio_button :kind, :state, id: 'state_based', data: { action: 'auto-submit#submit' }, label: Spree.t(:state_based) %>
14
+ <h6 class="mb-2 mt-4"><%= Spree.t(:type) %></h6>
15
+ <%= f.spree_radio_button :kind, :country, id: 'country_based', data: { action: 'click->replace#replace' }, label: Spree.t(:country_based) %>
16
+ <%= f.spree_radio_button :kind, :state, id: 'state_based', data: { action: 'click->replace#revert' }, label: Spree.t(:state_based) %>
17
+ </div>
18
+ </div>
19
+
20
+ <div data-replace-target="to" class="<%= 'hidden' unless @zone.country? %>">
21
+ <%= render partial: 'country_members', locals: { zone_form: f } %>
16
22
  </div>
17
- </div>
18
23
 
19
- <% if @zone.country? %>
20
- <%= render partial: 'country_members', locals: { zone_form: f } %>
21
- <% else %>
22
- <%= render partial: 'state_members', locals: { zone_form: f } %>
23
- <% end %>
24
+ <div data-replace-target="from" class="<%= 'hidden' if @zone.country? %>">
25
+ <%= render partial: 'state_members', locals: { zone_form: f } %>
26
+ </div>
27
+ </div>
24
28
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.0.rc1
4
+ version: 5.4.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vendo Connect Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-20 00:00:00.000000000 Z
11
+ date: 2026-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.4.0.rc1
19
+ version: 5.4.0.rc2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.4.0.rc1
26
+ version: 5.4.0.rc2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: active_link_to
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -1169,9 +1169,9 @@ licenses:
1169
1169
  - BSD-3-Clause
1170
1170
  metadata:
1171
1171
  bug_tracker_uri: https://github.com/spree/spree/issues
1172
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.rc1
1172
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.rc2
1173
1173
  documentation_uri: https://docs.spreecommerce.org/
1174
- source_code_uri: https://github.com/spree/spree/tree/v5.4.0.rc1
1174
+ source_code_uri: https://github.com/spree/spree/tree/v5.4.0.rc2
1175
1175
  post_install_message:
1176
1176
  rdoc_options: []
1177
1177
  require_paths: