spree_admin 5.1.2 → 5.1.4

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 (93) 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/base_controller.rb +6 -0
  8. data/app/controllers/spree/admin/option_values_controller.rb +9 -0
  9. data/app/controllers/spree/admin/reports_controller.rb +0 -6
  10. data/app/helpers/spree/admin/bulk_operations_helper.rb +5 -3
  11. data/app/helpers/spree/admin/navigation_helper.rb +10 -4
  12. data/app/javascript/spree/admin/application.js +2 -0
  13. data/app/javascript/spree/admin/controllers/admin_controller.js +18 -0
  14. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +3 -5
  15. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +3 -5
  16. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +4 -5
  17. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +1 -1
  18. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +4 -5
  19. data/app/views/layouts/spree/admin.html.erb +4 -1
  20. data/app/views/spree/admin/admin_users/index.html.erb +6 -0
  21. data/app/views/spree/admin/admin_users/show.html.erb +2 -1
  22. data/app/views/spree/admin/coupon_codes/index.html.erb +6 -0
  23. data/app/views/spree/admin/custom_domains/index.html.erb +4 -3
  24. data/app/views/spree/admin/customer_returns/index.html.erb +6 -0
  25. data/app/views/spree/admin/digital_assets/index.html.erb +3 -0
  26. data/app/views/spree/admin/exports/index.html.erb +6 -0
  27. data/app/views/spree/admin/gift_cards/_filters.html.erb +2 -0
  28. data/app/views/spree/admin/gift_cards/index.html.erb +3 -0
  29. data/app/views/spree/admin/integrations/index.html.erb +6 -0
  30. data/app/views/spree/admin/invitations/index.html.erb +6 -0
  31. data/app/views/spree/admin/oauth_applications/index.html.erb +3 -0
  32. data/app/views/spree/admin/option_types/index.html.erb +3 -0
  33. data/app/views/spree/admin/orders/index.html.erb +3 -0
  34. data/app/views/spree/admin/pages/index.html.erb +3 -0
  35. data/app/views/spree/admin/payment_methods/edit.html.erb +1 -1
  36. data/app/views/spree/admin/payment_methods/index.html.erb +6 -0
  37. data/app/views/spree/admin/post_categories/index.html.erb +4 -1
  38. data/app/views/spree/admin/posts/_filters.html.erb +1 -0
  39. data/app/views/spree/admin/posts/index.html.erb +4 -3
  40. data/app/views/spree/admin/products/_bulk_operations.html.erb +3 -2
  41. data/app/views/spree/admin/products/form/_variants.html.erb +1 -1
  42. data/app/views/spree/admin/products/index.html.erb +10 -1
  43. data/app/views/spree/admin/profile/edit.html.erb +1 -1
  44. data/app/views/spree/admin/promotions/_filters.html.erb +1 -1
  45. data/app/views/spree/admin/promotions/_header.html.erb +2 -6
  46. data/app/views/spree/admin/promotions/index.html.erb +3 -0
  47. data/app/views/spree/admin/properties/index.html.erb +3 -0
  48. data/app/views/spree/admin/refund_reasons/index.html.erb +6 -3
  49. data/app/views/spree/admin/reimbursement_types/index.html.erb +6 -3
  50. data/app/views/spree/admin/reports/index.html.erb +6 -0
  51. data/app/views/spree/admin/return_authorization_reasons/index.html.erb +6 -3
  52. data/app/views/spree/admin/return_authorizations/index.html.erb +6 -0
  53. data/app/views/spree/admin/roles/_form.html.erb +1 -1
  54. data/app/views/spree/admin/roles/index.html.erb +5 -2
  55. data/app/views/spree/admin/roles/new.html.erb +12 -9
  56. data/app/views/spree/admin/shared/_content_header.html.erb +3 -2
  57. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +1 -1
  58. data/app/views/spree/admin/shared/_header.html.erb +4 -3
  59. data/app/views/spree/admin/shared/_new_resource_links.html.erb +1 -1
  60. data/app/views/spree/admin/shared/_returns_and_refunds_nav.html.erb +1 -0
  61. data/app/views/spree/admin/shared/_shipping_nav.html.erb +1 -0
  62. data/app/views/spree/admin/shared/_stock_nav.html.erb +1 -0
  63. data/app/views/spree/admin/shared/_team_nav.html.erb +1 -0
  64. data/app/views/spree/admin/shared/sidebar/_integrations_nav.html.erb +1 -3
  65. data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +15 -16
  66. data/app/views/spree/admin/shared/sidebar/_promotions_nav.html.erb +4 -14
  67. data/app/views/spree/admin/shared/sidebar/_returns_nav.html.erb +1 -0
  68. data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +10 -30
  69. data/app/views/spree/admin/shared/sidebar/_storefront_nav.html.erb +18 -20
  70. data/app/views/spree/admin/shared/sidebar/_vendors_nav.html.erb +11 -7
  71. data/app/views/spree/admin/shipping_categories/index.html.erb +3 -0
  72. data/app/views/spree/admin/shipping_methods/index.html.erb +8 -1
  73. data/app/views/spree/admin/stock_items/_filters.html.erb +1 -1
  74. data/app/views/spree/admin/stock_items/index.html.erb +6 -0
  75. data/app/views/spree/admin/stock_locations/index.html.erb +3 -0
  76. data/app/views/spree/admin/stock_transfers/_filters.html.erb +1 -0
  77. data/app/views/spree/admin/stock_transfers/index.html.erb +3 -0
  78. data/app/views/spree/admin/store_credit_categories/index.html.erb +3 -0
  79. data/app/views/spree/admin/store_credits/index.html.erb +3 -0
  80. data/app/views/spree/admin/stores/edit.html.erb +1 -1
  81. data/app/views/spree/admin/tax_categories/index.html.erb +3 -0
  82. data/app/views/spree/admin/tax_rates/index.html.erb +3 -0
  83. data/app/views/spree/admin/taxonomies/index.html.erb +3 -0
  84. data/app/views/spree/admin/themes/index.html.erb +3 -0
  85. data/app/views/spree/admin/users/_filters.html.erb +1 -0
  86. data/app/views/spree/admin/users/index.html.erb +5 -2
  87. data/app/views/spree/admin/webhooks_subscribers/index.html.erb +5 -2
  88. data/app/views/spree/admin/zones/index.html.erb +3 -0
  89. data/lib/spree/admin/engine.rb +111 -37
  90. metadata +9 -11
  91. data/app/views/spree/admin/products/_index_header.html.erb +0 -7
  92. data/app/views/spree/admin/shared/sidebar/_custom_nav.html.erb +0 -0
  93. data/app/views/spree/admin/shipping_methods/_actions.html.erb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38049374f6d7f79407c48dfcf500d7fdc68d33066be7a19aa9ed6d43097f0251
4
- data.tar.gz: 3b6da7a55d29b372f6e1ea85550eb83834a85220b3386f3168ecd551a892b2b7
3
+ metadata.gz: 3970db34e315d777871a1d2e53cf27ac817b0ed7784d0fca0cf74f9ea6b736d4
4
+ data.tar.gz: 735e2cf7d03a439acb8cbd492f42f6ee7aa3172ff6bbcbaa300ba53ec5d40a4c
5
5
  SHA512:
6
- metadata.gz: 5f7a0c8b6512c468a00bcbbe83d674191984292b00349a2cdafd1fc2f4ab1213f839a9a2bc2e3901811f4bc3ff880f338892e7a6d0e02ae772bad0cf27a36cd9
7
- data.tar.gz: 1177771475c2b570e542146d1e2e860bf11fe6960cd4ee5e46f2d8022abba0c52f8036b95a393d004183d9f68a30ef849a8c0f50d505f83dcf2aa631790dbc87
6
+ metadata.gz: 5f5951292d223e9e8594898d1156cff0ecb0f2b69029dc160fb226340d3723e3203fee617448e8458709fd01776cb5d481f7863b9792ad0abe5d4411d6250945
7
+ data.tar.gz: b3843f735e552418eaab27b0b24f05388dd8ff256e8aa1cde15d2707e0c1cf4874689ab10d6ae4da248570322dbebca54f7267fc42fd31a06c0f64a9afb005be
@@ -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
  }
@@ -137,6 +137,12 @@ module Spree
137
137
 
138
138
  'spree/admin'
139
139
  end
140
+
141
+ def parse_date_param(date_string)
142
+ return if date_string.blank?
143
+
144
+ date_string.to_date&.in_time_zone(current_timezone)
145
+ end
140
146
  end
141
147
  end
142
148
  end
@@ -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
@@ -63,12 +63,6 @@ module Spree
63
63
  attributes[:date_to] = parse_date_param(attributes[:date_to])&.end_of_day if attributes[:date_to].present?
64
64
  attributes
65
65
  end
66
-
67
- def parse_date_param(date_string)
68
- return if date_string.blank?
69
-
70
- date_string.to_date&.in_time_zone(current_timezone)
71
- end
72
66
  end
73
67
  end
74
68
  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
@@ -7,10 +7,16 @@ module Spree
7
7
  # @param [String, nil] icon Optional icon name to prepend to the label
8
8
  # @param [Boolean, nil] active Whether the link should be marked as active
9
9
  # @return [SafeBuffer] The navigation item HTML
10
- def nav_item(label, url, icon: nil, active: nil)
10
+ def nav_item(label = nil, url, icon: nil, active: nil, data: {})
11
11
  content_tag :li, class: 'nav-item', role: 'presentation' do
12
- label = icon(icon) + label if icon.present?
13
- active_link_to label, url, class: 'nav-link', active: active
12
+ if block_given?
13
+ active_link_to url, class: 'nav-link', active: active, data: data do
14
+ yield
15
+ end
16
+ else
17
+ label = icon(icon) + label if icon.present? && label.present?
18
+ active_link_to label, url, class: 'nav-link', active: active, data: data
19
+ end
14
20
  end
15
21
  end
16
22
 
@@ -41,7 +47,7 @@ module Spree
41
47
  button_tag(raw(selected_option), class: 'btn btn-light btn-sm', data: { toggle: 'dropdown', expanded: false }) +
42
48
  content_tag(:div, class: 'dropdown-menu') do
43
49
  per_page_options.map do |option|
44
- link_to option, per_page_dropdown_params(option), class: "dropdown-item #{'active' if option == selected_option}"
50
+ link_to option, per_page_dropdown_params(option), class: "dropdown-item #{'active' if option.to_i == selected_option.to_i}"
45
51
  end.join.html_safe
46
52
  end
47
53
  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" %>
@@ -1,5 +1,11 @@
1
1
  <%= render 'spree/admin/shared/team_nav' %>
2
2
 
3
+ <% content_for :page_actions do %>
4
+ <%= render_admin_partials(:admin_users_actions_partials) %>
5
+ <% end %>
6
+
7
+ <%= render_admin_partials(:admin_users_header_partials) %>
8
+
3
9
  <div class="card-lg">
4
10
  <div class="table-responsive">
5
11
  <table class="table">
@@ -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 %>
@@ -1,5 +1,11 @@
1
1
  <%= render 'spree/admin/promotions/header' %>
2
2
 
3
+ <% content_for :page_actions do %>
4
+ <%= render_admin_partials(:coupon_codes_actions_partials) %>
5
+ <% end %>
6
+
7
+ <%= render_admin_partials(:coupon_codes_header_partials) %>
8
+
3
9
  <div class="row">
4
10
  <div class="col-12 col-lg-8">
5
11
  <div class="card-lg">
@@ -1,10 +1,11 @@
1
- <% content_for :head do %>
2
- <script type="text/javascript" src="https://cdn.goentri.com/entri.js"></script>
3
- <% end %>
4
1
  <%= content_for(:page_title) do %>
5
2
  <%= Spree.t(:domains) %>
6
3
  <% end %>
7
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= render_admin_partials(:custom_domains_actions_partials) %>
7
+ <% end %>
8
+
8
9
  <div class="card-lg p-4">
9
10
  <h5 class="mb-3">Internal URL</h5>
10
11
  <div class="row mb-4">
@@ -6,6 +6,12 @@
6
6
  <%= Spree.t(:customer_returns) %>
7
7
  <% end %>
8
8
 
9
+ <% content_for :page_actions do %>
10
+ <%= render_admin_partials(:customer_returns_actions_partials) %>
11
+ <% end %>
12
+
13
+ <%= render_admin_partials(:customer_returns_header_partials) %>
14
+
9
15
  <div class="card-lg">
10
16
  <%= search_form_for [:admin, @search], url: spree.admin_customer_returns_path, class: "filter-wrap", data: {controller: "filters reveal", reveal_hidden_class: "d-none"} do |f| %>
11
17
  <%= render "spree/admin/shared/filters_search_bar",
@@ -4,6 +4,7 @@
4
4
  <% end %>
5
5
 
6
6
  <% content_for :page_actions do %>
7
+ <%= render_admin_partials(:digital_assets_actions_partials) %>
7
8
  <% if can?(:create, Spree::Digital.new(variant: @product.default_variant)) %>
8
9
  <span data-toggle="modal" data-target="#modal">
9
10
  <%= link_to_with_icon "plus",
@@ -17,6 +18,8 @@
17
18
  <% end %>
18
19
  <% end %>
19
20
 
21
+ <%= render_admin_partials(:digital_assets_header_partials) %>
22
+
20
23
  <div class="card p-0">
21
24
  <div class="card-body p-0">
22
25
  <div class="table-responsive" id="<%= dom_id(@product, :digital_assets) %>">
@@ -1,5 +1,11 @@
1
1
  <%= render 'spree/admin/shared/audit_nav' %>
2
2
 
3
+ <% content_for :page_actions do %>
4
+ <%= render_admin_partials(:exports_actions_partials) %>
5
+ <% end %>
6
+
7
+ <%= render_admin_partials(:exports_header_partials) %>
8
+
3
9
  <div class="card-lg">
4
10
  <% if @collection.any? %>
5
11
  <div class="table-responsive">
@@ -29,6 +29,8 @@
29
29
  <%= f.text_field :batch_prefix_eq, class: "form-control", data: {filters_target: :input} %>
30
30
  </div>
31
31
 
32
+ <%= render_admin_partials(:gift_cards_filters_partials, f: f) %>
33
+
32
34
  <div class="form-actions">
33
35
  <%= turbo_save_button_tag Spree.t(:filter_results) do %>
34
36
  <%= icon("search") %>
@@ -4,6 +4,7 @@
4
4
  <% end %>
5
5
 
6
6
  <% content_for :page_actions do %>
7
+ <%= render_admin_partials(:gift_cards_actions_partials) %>
7
8
  <%= link_to spree.admin_gift_cards_path(q: params[:q].to_unsafe_hash, per_page: params[:per_page], format: :csv), id: 'gift-card-batch-export-link', class: 'btn btn-light bg-transparent with-tip', title: 'Export gift cards to a CSV file' do %>
8
9
  <%= icon 'table-export', class: 'mr-2' %>
9
10
  <%= Spree.t(:export) %>
@@ -28,6 +29,8 @@
28
29
  <% end %>
29
30
  <% end %>
30
31
 
32
+ <%= render_admin_partials(:gift_cards_header_partials) %>
33
+
31
34
  <div class="card-lg p-0">
32
35
  <% if params[:frame_name].present? %>
33
36
  <%= turbo_frame_tag params[:frame_name], autoscroll: true, data: { autoscroll_block: :nearest, autoscroll_behavior: :smooth } do %>
@@ -2,6 +2,12 @@
2
2
  <%= Spree.t(:integrations) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= render_admin_partials(:integrations_actions_partials) %>
7
+ <% end %>
8
+
9
+ <%= render_admin_partials(:integrations_header_partials) %>
10
+
5
11
  <div class="row">
6
12
  <div class="col-lg-8 offset-lg-2">
7
13
  <div class="alert alert-info mb-4">
@@ -1,5 +1,11 @@
1
1
  <%= render 'spree/admin/shared/team_nav' %>
2
2
 
3
+ <% content_for :page_actions do %>
4
+ <%= render_admin_partials(:invitations_actions_partials) %>
5
+ <% end %>
6
+
7
+ <%= render_admin_partials(:invitations_header_partials) %>
8
+
3
9
  <div class="card-lg">
4
10
  <div class="table-responsive">
5
11
  <table class="table">
@@ -3,6 +3,7 @@
3
3
  <%= content_for(:title, Spree.t('admin.oauth_applications.list')) %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
+ <%= render_admin_partials(:oauth_applications_actions_partials) %>
6
7
  <%= link_to_with_icon 'plus', Spree.t('admin.oauth_applications.new'), new_object_url, class: "btn btn-primary" %>
7
8
  <% end if can? :create, Spree::OauthApplication %>
8
9
 
@@ -15,6 +16,8 @@
15
16
  </div>
16
17
  <% end %>
17
18
 
19
+ <%= render_admin_partials(:oauth_applications_header_partials) %>
20
+
18
21
  <div class="card-lg">
19
22
  <% if @collection.any? %>
20
23
  <div class="table-responsive">
@@ -3,6 +3,7 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
+ <%= render_admin_partials(:option_types_actions_partials) %>
6
7
  <%= link_to_with_icon 'plus', Spree.t(:new_option_type), new_object_url, class: 'btn btn-primary' %>
7
8
  <% end if can?(:create, Spree::OptionType) %>
8
9
 
@@ -13,6 +14,8 @@
13
14
  </div>
14
15
  <% end %>
15
16
 
17
+ <%= render_admin_partials(:option_types_header_partials) %>
18
+
16
19
  <div class="card-lg">
17
20
  <%= render partial: "spree/admin/option_types/filter" %>
18
21
  <% if @option_types.any? %>
@@ -7,9 +7,12 @@
7
7
  <% end %>
8
8
 
9
9
  <% content_for :page_actions do %>
10
+ <%= render_admin_partials(:orders_actions_partials) %>
10
11
  <%= link_to_with_icon 'plus', Spree.t(:new_order), spree.admin_orders_path, class: "btn btn-primary", data: { turbo_method: :post } if can?(:create, Spree::Order) %>
11
12
  <% end %>
12
13
 
14
+ <%= render_admin_partials(:orders_header_partials) %>
15
+
13
16
  <div class="card-lg">
14
17
  <% if params[:frame_name].present? %>
15
18
  <%= turbo_frame_tag params[:frame_name], autoscroll: true, data: { autoscroll_block: :nearest, autoscroll_behavior: :smooth } do %>
@@ -2,9 +2,12 @@
2
2
  <%= Spree.t(:pages) %>
3
3
  <% end %>
4
4
  <% content_for :page_actions do %>
5
+ <%= render_admin_partials(:pages_actions_partials) %>
5
6
  <%= link_to_with_icon 'plus', Spree.t(:add_new_page), spree.new_admin_page_path, class: "btn btn-primary" if can?(:create, Spree::Page.new) %>
6
7
  <% end %>
7
8
 
9
+ <%= render_admin_partials(:pages_header_partials) %>
10
+
8
11
  <div class="card-lg">
9
12
  <%= render "spree/admin/pages/filters" %>
10
13
  <% if @collection.any? %>
@@ -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 } %>
@@ -2,6 +2,12 @@
2
2
  <%= Spree.t(:payment_methods) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= render_admin_partials(:payment_methods_actions_partials) %>
7
+ <% end %>
8
+
9
+ <%= render_admin_partials(:payment_methods_header_partials) %>
10
+
5
11
  <div class="card-lg">
6
12
  <div class="table-responsive">
7
13
  <table class="table">
@@ -1,8 +1,11 @@
1
+ <%= render 'spree/admin/shared/posts_tabs' %>
2
+
1
3
  <% content_for :page_actions do %>
4
+ <%= render_admin_partials(:post_categories_actions_partials) %>
2
5
  <%= link_to_with_icon 'plus', Spree.t(:new_post_category), new_object_url, class: 'btn btn-primary' if can?(:create, Spree::PostCategory) %>
3
6
  <% end %>
4
7
 
5
- <%= render 'spree/admin/shared/posts_tabs' %>
8
+ <%= render_admin_partials(:post_categories_header_partials) %>
6
9
 
7
10
  <% if @collection.any? %>
8
11
  <div class="card-lg">
@@ -26,6 +26,7 @@
26
26
  </div>
27
27
  </div>
28
28
  </div>
29
+ <%= render_admin_partials(:posts_filters_partials, f: f) %>
29
30
  <%= render 'spree/admin/shared/filter_submit' %>
30
31
  </div>
31
32