spree_admin 5.1.2 → 5.1.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 (27) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/spree/admin/components/_bulk_panel.scss +58 -10
  3. data/app/assets/stylesheets/spree/admin/components/_buttons.scss +0 -15
  4. data/app/assets/stylesheets/spree/admin/components/_filters.scss +1 -1
  5. data/app/assets/stylesheets/spree/admin/components/_tables.scss +24 -1
  6. data/app/assets/stylesheets/spree/admin/shared/_base.scss +7 -0
  7. data/app/controllers/spree/admin/option_values_controller.rb +9 -0
  8. data/app/helpers/spree/admin/bulk_operations_helper.rb +5 -3
  9. data/app/helpers/spree/admin/navigation_helper.rb +1 -1
  10. data/app/javascript/spree/admin/application.js +2 -0
  11. data/app/javascript/spree/admin/controllers/admin_controller.js +18 -0
  12. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +3 -5
  13. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +3 -5
  14. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +4 -5
  15. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +1 -1
  16. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +4 -5
  17. data/app/views/layouts/spree/admin.html.erb +4 -1
  18. data/app/views/spree/admin/admin_users/show.html.erb +2 -1
  19. data/app/views/spree/admin/payment_methods/edit.html.erb +1 -1
  20. data/app/views/spree/admin/products/_bulk_operations.html.erb +3 -2
  21. data/app/views/spree/admin/products/form/_variants.html.erb +1 -1
  22. data/app/views/spree/admin/shared/_content_header.html.erb +3 -2
  23. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +1 -1
  24. data/app/views/spree/admin/shared/_header.html.erb +4 -3
  25. data/app/views/spree/admin/shared/_new_resource_links.html.erb +1 -1
  26. data/app/views/spree/admin/users/index.html.erb +2 -1
  27. metadata +9 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38049374f6d7f79407c48dfcf500d7fdc68d33066be7a19aa9ed6d43097f0251
4
- data.tar.gz: 3b6da7a55d29b372f6e1ea85550eb83834a85220b3386f3168ecd551a892b2b7
3
+ metadata.gz: edab2a99241e4db5473957b6cc3294ee86cd82c5d5c09b96c1674b88b74570b8
4
+ data.tar.gz: 8ae3514c6c648be6fd26e42c0bd8811f0dfd2a38a4cb06448791ad1b45e24db8
5
5
  SHA512:
6
- metadata.gz: 5f7a0c8b6512c468a00bcbbe83d674191984292b00349a2cdafd1fc2f4ab1213f839a9a2bc2e3901811f4bc3ff880f338892e7a6d0e02ae772bad0cf27a36cd9
7
- data.tar.gz: 1177771475c2b570e542146d1e2e860bf11fe6960cd4ee5e46f2d8022abba0c52f8036b95a393d004183d9f68a30ef849a8c0f50d505f83dcf2aa631790dbc87
6
+ metadata.gz: 1ce82d6b487a7a5db6e39c32e2b8da9e66a77331e2f79c22a1b402283ab7bb7b8bb105666c76c74c937e8f3a923d630cda21ddd1cd246b2b6ea89e5368ab12e8
7
+ data.tar.gz: 63efa374a215c5b3ccc8756e2ce0d0dc3397f4896cb899f47d494d3987b7fddf8792e367e28d814f95b6e9279a6b834258a438986f78cb61714a92fbeb49d1a3
@@ -3,14 +3,59 @@
3
3
  align-items: center;
4
4
  border-radius: $border-radius-lg;
5
5
  background-color: $white;
6
- padding: 0.5rem;
7
6
  box-shadow: $dropdown-box-shadow;
8
7
  animation: bounceInUp;
9
8
  animation-duration: 0.5s;
10
- gap: 0.5rem;
11
9
 
12
10
  .btn {
13
- height: 2rem;
11
+ border-width: 0;
12
+ padding-top: 0;
13
+ padding-bottom: 0;
14
+ height: 2.75rem;
15
+ border-radius: 0;
16
+ }
17
+
18
+ > * {
19
+ height: 2.75rem;
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+
24
+ &:first-child {
25
+ border-top-left-radius: $border-radius-lg;
26
+ border-bottom-left-radius: $border-radius-lg;
27
+
28
+ .btn {
29
+ border-top-left-radius: $border-radius-lg;
30
+ border-bottom-left-radius: $border-radius-lg;
31
+ }
32
+ }
33
+
34
+ &:last-child {
35
+ border-top-right-radius: $border-radius-lg;
36
+ border-bottom-right-radius: $border-radius-lg;
37
+
38
+ .btn {
39
+ border-top-right-radius: $border-radius-lg;
40
+ border-bottom-right-radius: $border-radius-lg;
41
+ }
42
+ }
43
+
44
+ &:after {
45
+ content: '';
46
+ display: block;
47
+ width: 1px;
48
+ height: 100%;
49
+ background-color: $gray-50;
50
+ }
51
+
52
+ &:last-child:after {
53
+ display: none;
54
+ }
55
+ }
56
+
57
+ .btn-close {
58
+ width: 2.5rem;
14
59
  }
15
60
  }
16
61
 
@@ -38,11 +83,14 @@
38
83
  }
39
84
 
40
85
  .bulk-operations-counter {
41
- display: inline-flex;
42
- align-items: center;
43
- justify-content: center;
44
- gap: 0.25rem;
45
- margin-left: 1rem;
46
- margin-right: 1rem;
47
- border-left: 1px solid $gray-50;
86
+ padding-left: 1rem;
87
+ padding-right: 0;
88
+
89
+ .bulk-operations-counter-label {
90
+ margin-right: 1rem;
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ gap: 0.5rem;
95
+ }
48
96
  }
@@ -184,18 +184,3 @@ button[disabled] .show-when-enabled { display: none; }
184
184
  min-width: 24px;
185
185
  height: 24px;
186
186
  }
187
-
188
- .page-link {
189
- @extend .btn;
190
- @extend .btn-sm;
191
- @extend .btn-light;
192
- @extend .ml-1;
193
- @extend .p-2;
194
-
195
- .ti {
196
- @extend .mr-0;
197
- }
198
- }
199
- .page-link.disabled {
200
- cursor: not-allowed;
201
- }
@@ -1,6 +1,6 @@
1
1
  .filter-wrap {
2
2
  padding: 0.5rem;
3
- border-bottom: 1px solid $gray-50;
3
+ border-bottom: 1px solid $table-border-color;
4
4
  gap: 0.5rem;
5
5
  position: sticky;
6
6
  top: $header-height;
@@ -207,7 +207,30 @@ td.actions {
207
207
  }
208
208
 
209
209
  .pagination-container {
210
- border-top: 1px solid $gray-50;
210
+ border-top: 1px solid $table-border-color;
211
211
  padding-top: 0.5rem;
212
212
  padding-bottom: 0.5rem;
213
+
214
+ position: sticky;
215
+ bottom: 0;
216
+ background-color: $card-bg;
217
+ z-index: 100;
218
+ border-bottom-left-radius: $border-radius-lg;
219
+ border-bottom-right-radius: $border-radius-lg;
220
+
221
+ .page-link {
222
+ @extend .btn;
223
+ @extend .btn-sm;
224
+ @extend .btn-light;
225
+ @extend .ml-1;
226
+ @extend .p-2;
227
+
228
+ .ti {
229
+ @extend .mr-0;
230
+ }
231
+ }
232
+ .page-item.disabled {
233
+ cursor: not-allowed;
234
+ opacity: 0.2;
235
+ }
213
236
  }
@@ -720,4 +720,11 @@ code {
720
720
  background-color: $code-bg;
721
721
  border-radius: $border-radius-sm;
722
722
  padding: 0.25rem 0.5rem;
723
+ }
724
+
725
+ kbd {
726
+ @extend .badge;
727
+ @extend .badge-light;
728
+ text-transform: lowercase;
729
+ box-shadow: $box-shadow-xs;
723
730
  }
@@ -20,6 +20,15 @@ module Spree
20
20
  def permitted_resource_params
21
21
  params.require(:option_value).permit(permitted_option_value_attributes)
22
22
  end
23
+
24
+ # for select_options action, we only require read permission
25
+ def authorize_admin
26
+ if action == :select_options
27
+ authorize! :read, Spree::OptionValue
28
+ else
29
+ super
30
+ end
31
+ end
23
32
  end
24
33
  end
25
34
  end
@@ -82,9 +82,11 @@ module Spree
82
82
  # render a counter for the bulk operations
83
83
  # @return [String]
84
84
  def bulk_operations_counter
85
- content_tag(:span, class: 'bulk-operations-counter') do
86
- content_tag(:strong, '', data: { bulk_operation_target: 'counter' }) +
87
- Spree.t("admin.selected")
85
+ content_tag(:div, class: 'bulk-operations-counter') do
86
+ content_tag(:span, class: 'bulk-operations-counter-label') do
87
+ content_tag(:strong, '', data: { bulk_operation_target: 'counter' }) +
88
+ Spree.t("admin.selected")
89
+ end
88
90
  end
89
91
  end
90
92
  end
@@ -41,7 +41,7 @@ module Spree
41
41
  button_tag(raw(selected_option), class: 'btn btn-light btn-sm', data: { toggle: 'dropdown', expanded: false }) +
42
42
  content_tag(:div, class: 'dropdown-menu') do
43
43
  per_page_options.map do |option|
44
- link_to option, per_page_dropdown_params(option), class: "dropdown-item #{'active' if option == selected_option}"
44
+ link_to option, per_page_dropdown_params(option), class: "dropdown-item #{'active' if option.to_i == selected_option.to_i}"
45
45
  end.join.html_safe
46
46
  end
47
47
  end
@@ -43,6 +43,7 @@ import Sortable from 'stimulus-sortable'
43
43
  import { Tabs } from 'tailwindcss-stimulus-components'
44
44
 
45
45
  import ActiveStorageUpload from 'spree/admin/controllers/active_storage_upload_controller'
46
+ import AdminController from 'spree/admin/controllers/admin_controller'
46
47
  import AssetUploaderController from 'spree/admin/controllers/asset_uploader_controller'
47
48
  import AutocompleteSelectController from 'spree/admin/controllers/autocomplete_select_controller'
48
49
  import BetterSliderController from 'spree/admin/controllers/better_slider_controller'
@@ -87,6 +88,7 @@ import EnableButtonController from 'spree/core/controllers/enable_button_control
87
88
  application.register('active-storage-upload', ActiveStorageUpload)
88
89
  application.register('address-autocomplete', AddressAutocompleteController)
89
90
  application.register('address-form', AddressFormController)
91
+ application.register('admin', AdminController)
90
92
  application.register('asset-uploader', AssetUploaderController)
91
93
  application.register('auto-submit', AutoSubmit)
92
94
  application.register('autocomplete-select', AutocompleteSelectController)
@@ -0,0 +1,18 @@
1
+ import { Controller } from '@hotwired/stimulus'
2
+
3
+ export default class extends Controller {
4
+ static targets = ['close', 'save']
5
+
6
+ close() {
7
+ if (this.hasCloseTarget) {
8
+ window.Turbo.visit(this.closeTarget.href)
9
+ }
10
+ }
11
+
12
+ save(event) {
13
+ if (this.hasSaveTarget) {
14
+ event.preventDefault()
15
+ this.saveTarget.click()
16
+ }
17
+ }
18
+ }
@@ -6,8 +6,6 @@
6
6
  per_page: number of items to fetch per page
7
7
  remote: data-remote -%>
8
8
 
9
- <% unless current_page.first? %>
10
- <li class="first page-item">
11
- <%= link_to_unless current_page.first?, icon('double-chevron-left', class: 'mb-0'), url, remote: remote, class: 'page-link', 'aria-label': 'First page' %>
12
- </li>
13
- <% end %>
9
+ <li class="first page-item <%= current_page.first? ? 'disabled' : '' %>">
10
+ <%= link_to icon('double-chevron-left', class: 'text-dark'), url, remote: remote, class: 'page-link', 'aria-label': 'First page' %>
11
+ </li>
@@ -6,8 +6,6 @@
6
6
  per_page: number of items to fetch per page
7
7
  remote: data-remote -%>
8
8
 
9
- <% unless current_page.last? %>
10
- <li class="last next page-item"><%# "next" class present for border styling in twitter bootstrap %>
11
- <%= link_to_unless current_page.last?, icon('double-chevron-right', class: 'mb-0'), url, remote: remote, class: 'page-link', 'aria-label': 'Last page' %>
12
- </li>
13
- <% end %>
9
+ <li class="last next page-item <%= current_page.last? ? 'disabled' : '' %>">
10
+ <%= link_to icon('double-chevron-right', class: 'text-dark'), url, remote: remote, class: 'page-link', 'aria-label': 'Last page' %>
11
+ </li>
@@ -6,8 +6,7 @@
6
6
  per_page: number of items to fetch per page
7
7
  remote: data-remote -%>
8
8
 
9
- <% unless current_page.last? %>
10
- <li class="next_page page-item">
11
- <%= link_to_unless current_page.last?, icon('chevron-right', class: 'text-dark'), url, rel: 'next', remote: remote, class: 'page-link', 'aria-label': 'Next page' %>
12
- </li>
13
- <% end %>
9
+ <li class="next page-item <%= current_page.last? ? 'disabled' : '' %>">
10
+ <%= link_to icon('chevron-right', class: 'text-dark'), url, rel: 'next', remote: remote, class: 'page-link', 'aria-label': 'Next page' %>
11
+ </li>
12
+
@@ -12,6 +12,6 @@
12
12
  <ul class="pagination d-inline-flex <%= pagination_class %> mb-0">
13
13
 
14
14
  <%= prev_page_tag %>
15
- <%= next_page_tag unless current_page.last? %>
15
+ <%= next_page_tag %>
16
16
  </ul>
17
17
  <% end %>
@@ -6,8 +6,7 @@
6
6
  per_page: number of items to fetch per page
7
7
  remote: data-remote -%>
8
8
 
9
- <% unless current_page.first? %>
10
- <li class="prev page-item">
11
- <%= link_to_unless current_page.first?, icon('chevron-left', class: 'text-dark'), url, rel: 'prev', remote: remote, class: 'page-link', 'aria-label': 'Previous page' %>
12
- </li>
13
- <% end %>
9
+ <li class="prev page-item <%= current_page.first? ? 'disabled' : '' %>">
10
+ <%= link_to icon('chevron-left', class: 'text-dark'), url, rel: 'prev', remote: remote, class: 'page-link', 'aria-label': 'Previous page' %>
11
+ </li>
12
+
@@ -5,7 +5,10 @@
5
5
  <%= render "spree/admin/shared/custom_head" %>
6
6
  </head>
7
7
 
8
- <body class="admin min-vh-100 <%= controller_name %> <%= action_name %>">
8
+ <body class="admin min-vh-100 <%= controller_name %> <%= action_name %>"
9
+ data-controller="admin"
10
+ data-action="keydown.esc->admin#close keydown.ctrl+s->admin#save keydown.meta+s->admin#save"
11
+ >
9
12
  <%= render_admin_partials(:body_start_partials) %>
10
13
 
11
14
  <%= render "spree/admin/shared/header" %>
@@ -37,6 +37,7 @@
37
37
  <%= Spree.t(:email) %>
38
38
  <span>
39
39
  <%= @admin_user.email %>
40
+ <%= clipboard_component(@admin_user.email) %>
40
41
  </span>
41
42
  </li>
42
43
  <li class="list-group-item d-flex justify-content-between align-items-center">
@@ -101,7 +102,7 @@
101
102
  <li class="list-group-item d-flex justify-content-between align-items-center">
102
103
  <%= Spree.t(:invited_by) %>
103
104
  <span>
104
- <%= @admin_user.invited_by.name %>
105
+ <%= link_to @admin_user.invited_by.email, spree.admin_admin_user_path(@admin_user.invited_by), class: 'text-decoration-none', data: { turbo_frame: '_top' } %>
105
106
  </span>
106
107
  </li>
107
108
  <% end %>
@@ -3,7 +3,7 @@
3
3
  <%= @payment_method.name %>
4
4
  <% end %>
5
5
 
6
- <%= form_for @payment_method, as: :payment_method, url: spree.admin_payment_method_path(@payment_method) do |f| %>
6
+ <%= form_for @payment_method, as: :payment_method, url: spree.admin_payment_method_path(@payment_method), html: { id: "edit_payment_method_#{@payment_method.id}" } do |f| %>
7
7
  <div class="row">
8
8
  <div class="col-lg-6 offset-lg-3">
9
9
  <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @payment_method } %>
@@ -1,5 +1,7 @@
1
1
  <div id="bulk-panel" class="d-none" data-bulk-operation-target="panel">
2
2
  <div class="bulk-panel-container">
3
+ <%= bulk_operations_counter %>
4
+
3
5
  <% if can?(:activate, Spree::Product) %>
4
6
  <%= bulk_action_link(
5
7
  Spree.t("admin.bulk_ops.products.title.set_status", status: :active),
@@ -20,7 +22,7 @@
20
22
  <button
21
23
  type="button"
22
24
  data-display="static"
23
- class="btn btn-light px-2 h-100"
25
+ class="btn btn-light"
24
26
  data-placement="bottom"
25
27
  data-toggle="dropdown"
26
28
  aria-expanded="false"
@@ -81,7 +83,6 @@
81
83
  </div>
82
84
  </div>
83
85
 
84
- <%= bulk_operations_counter %>
85
86
  <%= bulk_operations_close_button %>
86
87
  </div>
87
88
  </div>
@@ -56,7 +56,7 @@
56
56
  <label class="label" for="new_option_name"><%= Spree.t(:option_name) %></label>
57
57
  <%= tom_select_tag :new_option_name,
58
58
  multiple: false,
59
- create: true,
59
+ create: can?(:create, Spree::OptionType),
60
60
  preloaded_options: option_types_for_select,
61
61
  include_blank: true,
62
62
  select_data: {
@@ -1,4 +1,4 @@
1
- <% record = @object || @customer_return || @order || @product || @vendor || @user || @taxon || @store_credit %>
1
+ <% record = @object || @customer_return || @order || @product || @vendor || @user || @admin_user || @taxon || @store_credit %>
2
2
  <% record = nil if @user&.is_a?(Spree.admin_user_class) %>
3
3
 
4
4
  <% show_record_subtitle = record && record.persisted? && record.has_attribute?(:updated_at) %>
@@ -24,7 +24,8 @@
24
24
  <%= yield :page_actions if content_for?(:page_actions) %>
25
25
 
26
26
  <% if action_name == 'edit' && @object %>
27
- <%= turbo_save_button_tag Spree.t('actions.update'), class: 'btn btn-primary', form: "edit_#{@object.class.name.demodulize.underscore}_#{@object.id}" %>
27
+ <% class_name = defined?(model_class) ? model_class.to_s : @object.class.name %>
28
+ <%= turbo_save_button_tag Spree.t('actions.update'), class: 'btn btn-primary', form: "edit_#{class_name.demodulize.underscore}_#{@object.id}", data: { admin_target: 'save' } %>
28
29
  <% end %>
29
30
 
30
31
  <% if show_record_subtitle || content_for(:page_actions_dropdown) %>
@@ -1,7 +1,7 @@
1
1
  <% destroy_url = defined?(destroy_url) && destroy_url ? destroy_url : object_url(f.object) %>
2
2
 
3
3
  <div class="form-actions">
4
- <%= turbo_save_button_tag Spree.t('actions.update') %>
4
+ <%= turbo_save_button_tag Spree.t('actions.update'), data: { admin_target: 'save' } %>
5
5
  <% if f.object.can_be_deleted? && can?(:delete, f.object) %>
6
6
  <%= link_to Spree.t('actions.destroy'), destroy_url, data: { turbo_method: :delete, turbo_confirm: Spree.t(:are_you_sure_delete), turbo_frame: defined?(turbo_frame) ? turbo_frame : '_top' }, class: 'btn btn-danger ml-auto' %>
7
7
  <% end %>
@@ -11,9 +11,10 @@
11
11
  </div>
12
12
 
13
13
  <% if settings_active? %>
14
- <div class="store-dropdown px-2">
15
- <%= active_link_to_with_icon('arrow-left', Spree.t('admin.back_to_dashboard'), spree.admin_dashboard_path, class: 'btn store-dropdown-button w-100 justify-content-start mx-1 py-2') %>
16
- </div>
14
+ <%= link_to spree.admin_path, class: 'store-dropdown text-decoration-none px-2 justify-content-start with-tip', title: Spree.t('admin.back_to_dashboard'), data: { admin_target: 'close' } do %>
15
+ <%= icon 'x', class: 'mx-2' %>
16
+ <kbd>ESC</kbd>
17
+ <% end %>
17
18
  <% else %>
18
19
  <% if defined?(current_vendor) && current_vendor.present? %>
19
20
  <%= render 'spree/admin/shared/sidebar/vendor_dropdown' %>
@@ -1,3 +1,3 @@
1
1
  <div class="form-actions">
2
- <%= turbo_save_button_tag Spree.t('actions.create') %>
2
+ <%= turbo_save_button_tag Spree.t('actions.create'), data: { admin_target: 'save' } %>
3
3
  </div>
@@ -22,6 +22,8 @@
22
22
  <%= render 'spree/admin/shared/bulk_modal' %>
23
23
  <div id="bulk-panel" class="d-none" data-bulk-operation-target="panel">
24
24
  <div class="bulk-panel-container">
25
+ <%= bulk_operations_counter %>
26
+
25
27
  <% if can?(:manage_tags, Spree.user_class) %>
26
28
  <%= bulk_action_link(
27
29
  Spree.t("admin.bulk_ops.users.title.add_tags"),
@@ -36,7 +38,6 @@
36
38
  url: spree.bulk_remove_tags_admin_users_path
37
39
  ) %>
38
40
  <% end %>
39
- <%= bulk_operations_counter %>
40
41
  <%= bulk_operations_close_button %>
41
42
  </div>
42
43
  </div>
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.1.2
4
+ version: 5.1.3
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: 2025-07-14 00:00:00.000000000 Z
11
+ date: 2025-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.1.2
19
+ version: 5.1.3
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.1.2
26
+ version: 5.1.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: spree_api
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 5.1.2
33
+ version: 5.1.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 5.1.2
40
+ version: 5.1.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: active_link_to
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -448,6 +448,7 @@ files:
448
448
  - app/javascript/spree/admin/application.js
449
449
  - app/javascript/spree/admin/controllers/active_storage_upload_controller.js
450
450
  - app/javascript/spree/admin/controllers/address_form_controller.js
451
+ - app/javascript/spree/admin/controllers/admin_controller.js
451
452
  - app/javascript/spree/admin/controllers/asset_uploader_controller.js
452
453
  - app/javascript/spree/admin/controllers/autocomplete_select_controller.js
453
454
  - app/javascript/spree/admin/controllers/better_slider_controller.js
@@ -1144,9 +1145,9 @@ licenses:
1144
1145
  - AGPL-3.0-or-later
1145
1146
  metadata:
1146
1147
  bug_tracker_uri: https://github.com/spree/spree/issues
1147
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.2
1148
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.3
1148
1149
  documentation_uri: https://docs.spreecommerce.org/
1149
- source_code_uri: https://github.com/spree/spree/tree/v5.1.2
1150
+ source_code_uri: https://github.com/spree/spree/tree/v5.1.3
1150
1151
  post_install_message:
1151
1152
  rdoc_options: []
1152
1153
  require_paths: