spree_backend 4.1.11 → 4.2.0.beta
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/backend-add.svg +5 -0
- data/app/assets/images/backend-adjust.svg +5 -0
- data/app/assets/images/backend-approve.svg +3 -0
- data/app/assets/images/backend-arrow-down.svg +1 -0
- data/app/assets/images/backend-arrow-left.svg +1 -0
- data/app/assets/images/backend-arrow-right.svg +1 -0
- data/app/assets/images/backend-arrow-up.svg +1 -0
- data/app/assets/images/backend-calendar.svg +9 -0
- data/app/assets/images/backend-cancel.svg +7 -0
- data/app/assets/images/backend-capture.svg +3 -0
- data/app/assets/images/backend-cart.svg +1 -0
- data/app/assets/images/backend-chevron-down.svg +1 -0
- data/app/assets/images/backend-chevron-left.svg +1 -0
- data/app/assets/images/backend-chevron-right.svg +1 -0
- data/app/assets/images/backend-chevron-up.svg +1 -0
- data/app/assets/images/backend-clone.svg +7 -0
- data/app/assets/images/backend-close.svg +7 -0
- data/app/assets/images/backend-delete.svg +6 -0
- data/app/assets/images/backend-double-chevron-left.svg +15 -0
- data/app/assets/images/backend-double-chevron-right.svg +17 -0
- data/app/assets/images/backend-edit.svg +14 -0
- data/app/assets/images/backend-enter.svg +6 -0
- data/app/assets/images/backend-envelope.svg +3 -0
- data/app/assets/images/backend-exit.svg +13 -0
- data/app/assets/images/backend-extensions.svg +4 -0
- data/app/assets/images/backend-eye-open.svg +8 -0
- data/app/assets/images/backend-file.svg +6 -0
- data/app/assets/images/backend-filter.svg +3 -0
- data/app/assets/images/backend-folder.svg +4 -0
- data/app/assets/images/backend-images.svg +7 -0
- data/app/assets/images/backend-info.svg +7 -0
- data/app/assets/images/backend-items.svg +5 -0
- data/app/assets/images/backend-leaf.svg +7 -0
- data/app/assets/images/backend-list.svg +5 -0
- data/app/assets/images/backend-location.svg +4 -0
- data/app/assets/images/backend-menu.svg +5 -0
- data/app/assets/images/backend-money.svg +1 -0
- data/app/assets/images/backend-move.svg +5 -0
- data/app/assets/images/backend-ok.svg +3 -0
- data/app/assets/images/backend-pagination-double-arrow-right.svg +8 -0
- data/app/assets/images/backend-payments.svg +8 -0
- data/app/assets/images/backend-pencil.svg +1 -0
- data/app/assets/images/backend-products.svg +5 -0
- data/app/assets/images/backend-promotion.svg +8 -0
- data/app/assets/images/backend-recycle.svg +5 -0
- data/app/assets/images/backend-remove.svg +6 -0
- data/app/assets/images/backend-report.svg +6 -0
- data/app/assets/images/backend-resume.svg +5 -0
- data/app/assets/images/backend-returns.svg +3 -0
- data/app/assets/images/backend-save.svg +3 -0
- data/app/assets/images/backend-search.svg +1 -0
- data/app/assets/images/backend-settings.svg +6 -0
- data/app/assets/images/backend-shipping.svg +3 -0
- data/app/assets/images/backend-slack.svg +3 -0
- data/app/assets/images/backend-sort.svg +5 -0
- data/app/assets/images/backend-split.svg +3 -0
- data/app/assets/images/backend-store.svg +14 -0
- data/app/assets/images/backend-tick.svg +3 -0
- data/app/assets/images/backend-update.svg +3 -0
- data/app/assets/images/backend-user.svg +3 -0
- data/app/assets/images/backend-users.svg +6 -0
- data/app/assets/images/backend-view.svg +8 -0
- data/app/assets/images/backend-void.svg +7 -0
- data/app/assets/javascripts/spree/backend.js +5 -2
- data/app/assets/javascripts/spree/backend/admin.js +156 -147
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +1 -0
- data/app/assets/javascripts/spree/backend/flatpickr_locals.js +37 -0
- data/app/assets/javascripts/spree/backend/multi_currency.js +38 -0
- data/app/assets/javascripts/spree/backend/payments/edit.js +4 -3
- data/app/assets/javascripts/spree/backend/payments/new.js +18 -18
- data/app/assets/javascripts/spree/backend/promotions.js +1 -1
- data/app/assets/javascripts/spree/backend/spree-select2.js +18 -4
- data/app/assets/javascripts/spree/backend/stock_management.js +2 -1
- data/app/assets/javascripts/spree/backend/taxon_tree_menu.js +4 -4
- data/app/assets/javascripts/spree/backend/taxonomy.js +8 -1
- data/app/assets/javascripts/spree/backend/taxons.js +25 -16
- data/app/assets/javascripts/spree/backend/user_picker.js +1 -1
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js +1 -1
- data/app/assets/javascripts/spree/backend/variant_management.js +2 -1
- data/app/assets/stylesheets/spree/backend.css +1 -1
- data/app/assets/stylesheets/spree/backend/components/_buttons.scss +27 -11
- data/app/assets/stylesheets/spree/backend/components/_filters.scss +35 -5
- data/app/assets/stylesheets/spree/backend/components/_icons.scss +39 -4
- data/app/assets/stylesheets/spree/backend/components/_main.scss +32 -6
- data/app/assets/stylesheets/spree/backend/components/_navbar.scss +16 -8
- data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +119 -55
- data/app/assets/stylesheets/spree/backend/components/_tables.scss +62 -19
- data/app/assets/stylesheets/spree/backend/components/_taxon_products_view.scss +26 -63
- data/app/assets/stylesheets/spree/backend/global/_variables.scss +5 -1
- data/app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss +95 -0
- data/app/assets/stylesheets/spree/backend/plugins/_jquery_ui.scss +0 -117
- data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +73 -24
- data/app/assets/stylesheets/spree/backend/shared/_base.scss +40 -0
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +38 -0
- data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +5 -0
- data/app/assets/stylesheets/spree/backend/views/_order_payments.scss +12 -0
- data/app/assets/stylesheets/spree/backend/views/_product_properties.scss +11 -0
- data/app/assets/stylesheets/spree/backend/views/prototypes.scss +42 -0
- data/app/controllers/spree/admin/general_settings_controller.rb +27 -0
- data/app/controllers/spree/admin/prices_controller.rb +39 -0
- data/app/controllers/spree/admin/stock_transfers_controller.rb +8 -1
- data/app/controllers/spree/admin/stores_controller.rb +61 -1
- data/app/controllers/spree/admin/taxons_controller.rb +5 -1
- data/app/helpers/spree/admin/base_helper.rb +25 -8
- data/app/helpers/spree/admin/navigation_helper.rb +50 -19
- data/app/helpers/spree/admin/orders_helper.rb +2 -2
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_first_page.html.erb +1 -1
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_gap.html.erb +1 -1
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_last_page.html.erb +1 -1
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_next_page.html.erb +1 -1
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_page.html.erb +0 -0
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_paginator.html.erb +1 -1
- data/app/views/kaminari/{twitter-bootstrap-4 → admin-twitter-bootstrap-4}/_prev_page.html.erb +1 -1
- data/app/views/spree/admin/adjustments/_adjustment.html.erb +2 -2
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +16 -16
- data/app/views/spree/admin/adjustments/edit.html.erb +2 -2
- data/app/views/spree/admin/adjustments/index.html.erb +3 -3
- data/app/views/spree/admin/adjustments/new.html.erb +1 -1
- data/app/views/spree/admin/countries/_form.html.erb +9 -4
- data/app/views/spree/admin/countries/index.html.erb +27 -24
- data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +37 -35
- data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +2 -0
- data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +45 -43
- data/app/views/spree/admin/customer_returns/index.html.erb +3 -1
- data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
- data/app/views/spree/admin/general_settings/_form.html.erb +27 -0
- data/app/views/spree/admin/general_settings/edit.html.erb +4 -3
- data/app/views/spree/admin/images/edit.html.erb +2 -2
- data/app/views/spree/admin/images/index.html.erb +7 -7
- data/app/views/spree/admin/images/new.html.erb +2 -2
- data/app/views/spree/admin/log_entries/index.html.erb +4 -3
- data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
- data/app/views/spree/admin/option_types/edit.html.erb +22 -20
- data/app/views/spree/admin/option_types/index.html.erb +27 -25
- data/app/views/spree/admin/orders/_adjustments.html.erb +26 -26
- data/app/views/spree/admin/orders/_line_items.html.erb +7 -7
- data/app/views/spree/admin/orders/_order_actions.html.erb +1 -1
- data/app/views/spree/admin/orders/_risk_analysis.html.erb +44 -42
- data/app/views/spree/admin/orders/_shipment.html.erb +6 -6
- data/app/views/spree/admin/orders/_shipment_manifest.html.erb +5 -5
- data/app/views/spree/admin/orders/_store_form.html.erb +3 -3
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +1 -1
- data/app/views/spree/admin/orders/index.html.erb +135 -127
- data/app/views/spree/admin/payment_methods/index.html.erb +6 -4
- data/app/views/spree/admin/payments/_capture_events.html.erb +18 -16
- data/app/views/spree/admin/payments/_form.html.erb +1 -1
- data/app/views/spree/admin/payments/_list.html.erb +39 -37
- data/app/views/spree/admin/payments/index.html.erb +2 -3
- data/app/views/spree/admin/payments/new.html.erb +1 -1
- data/app/views/spree/admin/payments/show.html.erb +1 -1
- data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +30 -30
- data/app/views/spree/admin/payments/source_views/_gateway.html.erb +20 -18
- data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +28 -26
- data/app/views/spree/admin/prices/_variant_prices.html.erb +43 -0
- data/app/views/spree/admin/prices/index.html.erb +21 -0
- data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +16 -4
- data/app/views/spree/admin/product_properties/index.html.erb +24 -19
- data/app/views/spree/admin/products/_add_stock_form.html.erb +1 -1
- data/app/views/spree/admin/products/_autocomplete.js.erb +27 -21
- data/app/views/spree/admin/products/_form.html.erb +40 -9
- data/app/views/spree/admin/products/edit.html.erb +1 -1
- data/app/views/spree/admin/products/index.html.erb +24 -19
- data/app/views/spree/admin/products/new.html.erb +11 -2
- data/app/views/spree/admin/products/stock.html.erb +3 -3
- data/app/views/spree/admin/promotion_categories/index.html.erb +4 -1
- data/app/views/spree/admin/promotions/_actions.html.erb +2 -2
- data/app/views/spree/admin/promotions/_form.html.erb +44 -17
- data/app/views/spree/admin/promotions/_promotion_action.html.erb +1 -1
- data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -1
- data/app/views/spree/admin/promotions/_rules.html.erb +4 -4
- data/app/views/spree/admin/promotions/edit.html.erb +2 -2
- data/app/views/spree/admin/promotions/index.html.erb +5 -3
- data/app/views/spree/admin/promotions/new.html.erb +7 -6
- data/app/views/spree/admin/promotions/rules/_country.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_item_total.html.erb +5 -5
- data/app/views/spree/admin/promotions/rules/_option_value.html.erb +6 -13
- data/app/views/spree/admin/promotions/rules/_product.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_taxon.html.erb +1 -1
- data/app/views/spree/admin/properties/index.html.erb +5 -3
- data/app/views/spree/admin/prototypes/_prototypes.html.erb +30 -28
- data/app/views/spree/admin/prototypes/index.html.erb +21 -19
- data/app/views/spree/admin/prototypes/show.html.erb +21 -8
- data/app/views/spree/admin/refunds/edit.html.erb +2 -2
- data/app/views/spree/admin/refunds/new.html.erb +2 -2
- data/app/views/spree/admin/reimbursement_types/_form.html.erb +4 -4
- data/app/views/spree/admin/reimbursement_types/index.html.erb +4 -2
- data/app/views/spree/admin/reimbursements/edit.html.erb +66 -63
- data/app/views/spree/admin/reimbursements/index.html.erb +21 -20
- data/app/views/spree/admin/reimbursements/show.html.erb +66 -60
- data/app/views/spree/admin/reports/index.html.erb +18 -17
- data/app/views/spree/admin/reports/sales_total.html.erb +20 -19
- data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -2
- data/app/views/spree/admin/return_authorizations/edit.html.erb +3 -3
- data/app/views/spree/admin/return_authorizations/index.html.erb +3 -1
- data/app/views/spree/admin/return_authorizations/new.html.erb +2 -2
- data/app/views/spree/admin/return_index/customer_returns.html.erb +4 -4
- data/app/views/spree/admin/return_index/return_authorizations.html.erb +4 -4
- data/app/views/spree/admin/roles/index.html.erb +21 -19
- data/app/views/spree/admin/shared/_account_nav.html.erb +51 -65
- data/app/views/spree/admin/shared/_address_form.html.erb +31 -73
- data/app/views/spree/admin/shared/_cal_close.html.erb +10 -0
- data/app/views/spree/admin/shared/_content_header.html.erb +40 -21
- data/app/views/spree/admin/shared/_edit_resource_links.html.erb +2 -2
- data/app/views/spree/admin/shared/_header.html.erb +14 -11
- data/app/views/spree/admin/shared/_index_table_options.html.erb +5 -7
- data/app/views/spree/admin/shared/_main_menu.html.erb +25 -14
- data/app/views/spree/admin/shared/_new_resource_links.html.erb +2 -2
- data/app/views/spree/admin/shared/_order_summary.html.erb +2 -0
- data/app/views/spree/admin/shared/_order_tabs.html.erb +9 -9
- data/app/views/spree/admin/shared/_product_tabs.html.erb +13 -5
- data/app/views/spree/admin/shared/_refunds.html.erb +31 -29
- data/app/views/spree/admin/shared/_report_order_criteria.html.erb +27 -6
- data/app/views/spree/admin/shared/_sidebar.html.erb +19 -1
- data/app/views/spree/admin/shared/_table_filter.html.erb +3 -3
- data/app/views/spree/admin/shared/_translations.html.erb +33 -1
- data/app/views/spree/admin/shared/_version.html.erb +1 -1
- data/app/views/spree/admin/shared/named_types/_index.html.erb +3 -1
- data/app/views/spree/admin/shipping_categories/index.html.erb +3 -1
- data/app/views/spree/admin/shipping_methods/index.html.erb +3 -1
- data/app/views/spree/admin/state_changes/index.html.erb +5 -2
- data/app/views/spree/admin/states/_state_list.html.erb +25 -24
- data/app/views/spree/admin/states/index.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +2 -2
- data/app/views/spree/admin/stock_locations/index.html.erb +3 -1
- data/app/views/spree/admin/stock_movements/index.html.erb +28 -26
- data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +20 -18
- data/app/views/spree/admin/stock_transfers/index.html.erb +6 -4
- data/app/views/spree/admin/stock_transfers/new.html.erb +3 -3
- data/app/views/spree/admin/stock_transfers/show.html.erb +3 -3
- data/app/views/spree/admin/store_credit_categories/index.html.erb +3 -1
- data/app/views/spree/admin/store_credits/index.html.erb +3 -1
- data/app/views/spree/admin/stores/_form.html.erb +128 -68
- data/app/views/spree/admin/stores/edit.html.erb +1 -1
- data/app/views/spree/admin/stores/index.html.erb +4 -2
- data/app/views/spree/admin/tax_categories/index.html.erb +29 -27
- data/app/views/spree/admin/tax_rates/index.html.erb +3 -1
- data/app/views/spree/admin/taxonomies/_list.html.erb +24 -22
- data/app/views/spree/admin/taxonomies/edit.html.erb +2 -2
- data/app/views/spree/admin/taxonomies/index.html.erb +1 -1
- data/app/views/spree/admin/taxons/_form.html.erb +3 -3
- data/app/views/spree/admin/taxons/_taxon_table.html.erb +24 -22
- data/app/views/spree/admin/taxons/edit.html.erb +6 -2
- data/app/views/spree/admin/taxons/index.html.erb +1 -1
- data/app/views/spree/admin/users/_lifetime_stats.html.erb +24 -23
- data/app/views/spree/admin/users/_sidebar.html.erb +5 -5
- data/app/views/spree/admin/users/_user_page_actions.html.erb +1 -1
- data/app/views/spree/admin/users/edit.html.erb +2 -2
- data/app/views/spree/admin/users/index.html.erb +25 -23
- data/app/views/spree/admin/users/items.html.erb +3 -2
- data/app/views/spree/admin/users/orders.html.erb +30 -29
- data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +3 -3
- data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +2 -2
- data/app/views/spree/admin/variants/_form.html.erb +14 -2
- data/app/views/spree/admin/variants/_split.js.erb +2 -2
- data/app/views/spree/admin/variants/index.html.erb +7 -5
- data/app/views/spree/admin/zones/index.html.erb +4 -4
- data/app/views/spree/layouts/admin.html.erb +33 -27
- data/config/initializers/ransack.rb +31 -0
- data/config/routes.rb +1 -0
- data/lib/spree/backend.rb +2 -0
- data/lib/spree_backend.rb +0 -1
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spree_backend.gemspec +6 -4
- data/vendor/assets/javascripts/js.cookie.js +154 -156
- data/vendor/assets/javascripts/purify.js +1217 -0
- data/vendor/assets/javascripts/sortable.js +3709 -0
- data/vendor/assets/stylesheets/animate.css +7 -3156
- data/vendor/assets/stylesheets/jquery.jstree/themes/spree/style.scss +23 -9
- metadata +137 -24
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="form-actions" data-hook="buttons">
|
2
|
-
<%= button Spree.t('actions.update'), '
|
2
|
+
<%= button Spree.t('actions.update'), 'save.svg', 'submit', {class: 'btn-success', data: { disable_with: "#{ Spree.t(:saving) }..." }} %>
|
3
3
|
<span class="or"><%= Spree.t(:or) %></span>
|
4
|
-
<%= button_link_to Spree.t('actions.cancel'), collection_url, icon: '
|
4
|
+
<%= button_link_to Spree.t('actions.cancel'), collection_url, icon: 'cancel.svg' %>
|
5
5
|
</div>
|
@@ -1,22 +1,25 @@
|
|
1
1
|
<header class="header logged-in">
|
2
2
|
|
3
|
-
<nav class="navbar fixed-top navbar-dark align-items-
|
4
|
-
<div class="
|
5
|
-
<%= link_to(
|
6
|
-
image_tag(Spree::Config[:admin_interface_logo], id: 'logo'),
|
7
|
-
spree.admin_path,
|
8
|
-
class: "logo navbar-brand"
|
9
|
-
) %>
|
3
|
+
<nav class="navbar fixed-top navbar-dark align-items-middle">
|
4
|
+
<div class="col-3 col-sm-4 p-0 d-lg-none">
|
10
5
|
<button
|
11
|
-
id="sidebar-
|
12
|
-
class="navbar-toggler h-100
|
6
|
+
id="sidebar-open"
|
7
|
+
class="navbar-toggler h-100 text-light"
|
13
8
|
type="button"
|
14
9
|
aria-expanded="false"
|
15
10
|
aria-label="Toggle navigation">
|
16
|
-
|
11
|
+
<%= svg_icon name: "menu.svg", width: '20', height: '20' %>
|
17
12
|
</button>
|
18
13
|
</div>
|
19
|
-
<div class="col-
|
14
|
+
<div class="col text-center text-lg-left">
|
15
|
+
<%= link_to(
|
16
|
+
image_tag(Spree::Config[:admin_interface_logo], id: 'logo', alt: current_store.name),
|
17
|
+
spree.admin_path,
|
18
|
+
class: "logo navbar-brand"
|
19
|
+
) %>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="col-3 col-sm-4 text-right p-0">
|
20
23
|
<%= render partial: 'spree/admin/shared/account_nav' %>
|
21
24
|
</div>
|
22
25
|
</nav>
|
@@ -4,15 +4,13 @@
|
|
4
4
|
<% args[:action] = per_page_action %>
|
5
5
|
<% end %>
|
6
6
|
|
7
|
-
<div class="row index-pagination-row">
|
8
|
-
<div class="col-
|
9
|
-
<%= paginate collection, theme: 'twitter-bootstrap-4' %>
|
7
|
+
<div class="row index-pagination-row mt-4">
|
8
|
+
<div class="col-12 col-sm-9 text-center text-sm-left">
|
9
|
+
<%= paginate collection, theme: 'admin-twitter-bootstrap-4' %>
|
10
10
|
</div>
|
11
|
-
<div class="col-
|
12
|
-
|
13
|
-
<%= form_tag(per_page_dropdown_params(args), { method: :get, class: 'js-per-page-form form-inline justify-content-end' }) do %>
|
11
|
+
<div class="col-12 col-sm-3 text-center text-sm-left">
|
12
|
+
<%= form_tag(per_page_dropdown_params(args), { method: :get, class: 'js-per-page-form form-inline justify-content-center justify-content-sm-end' }) do %>
|
14
13
|
<%= per_page_dropdown %>
|
15
14
|
<% end %>
|
16
|
-
</div>
|
17
15
|
</div>
|
18
16
|
</div>
|
@@ -1,43 +1,54 @@
|
|
1
1
|
<nav>
|
2
|
+
<div class="text-right d-lg-none p-2 border-bottom">
|
3
|
+
<button
|
4
|
+
id="sidebar-close"
|
5
|
+
class="btn btn-link"
|
6
|
+
type="button"
|
7
|
+
aria-expanded="false"
|
8
|
+
aria-label="Toggle navigation">
|
9
|
+
<%= svg_icon name: "cancel.svg", width: '20', height: '20' %>
|
10
|
+
</button>
|
11
|
+
</div>
|
12
|
+
|
2
13
|
<% if can? :admin, Spree::Order %>
|
3
|
-
<ul class="nav nav-sidebar border-bottom">
|
4
|
-
<%= tab *Spree::BackendConfiguration::ORDER_TABS, icon: '
|
14
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarOrder">
|
15
|
+
<%= tab *Spree::BackendConfiguration::ORDER_TABS, icon: 'list.svg' %>
|
5
16
|
</ul>
|
6
17
|
<% end %>
|
7
18
|
|
8
19
|
<% if can?(:admin, Spree::ReturnAuthorization) || can?(:admin, Spree::CustomerReturn) %>
|
9
|
-
<ul class="nav nav-sidebar border-bottom">
|
10
|
-
<%= main_menu_tree Spree.t(:returns), icon: "
|
20
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarReturn">
|
21
|
+
<%= main_menu_tree Spree.t(:returns), icon: "returns.svg", sub_menu: "returns", url: "#sidebar-returns" %>
|
11
22
|
</ul>
|
12
23
|
<% end %>
|
13
24
|
|
14
25
|
<% if can? :admin, Spree::Product %>
|
15
|
-
<ul class="nav nav-sidebar border-bottom">
|
16
|
-
<%= main_menu_tree Spree.t(:products), icon: "
|
26
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarProduct">
|
27
|
+
<%= main_menu_tree Spree.t(:products), icon: "products.svg", sub_menu: "product", url: "#sidebar-product" %>
|
17
28
|
</ul>
|
18
29
|
<% end %>
|
19
30
|
|
20
31
|
<% if can? :admin, Spree::Admin::ReportsController %>
|
21
|
-
<ul class="nav nav-sidebar border-bottom">
|
22
|
-
<%= tab *Spree::BackendConfiguration::REPORT_TABS, icon: '
|
32
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarReport">
|
33
|
+
<%= tab *Spree::BackendConfiguration::REPORT_TABS, icon: 'report.svg' %>
|
23
34
|
</ul>
|
24
35
|
<% end %>
|
25
36
|
|
26
37
|
<% if can? :admin, Spree::Promotion %>
|
27
|
-
<ul class="nav nav-sidebar border-bottom">
|
28
|
-
<%= main_menu_tree Spree.t(:promotions), icon: "
|
38
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarPromotion">
|
39
|
+
<%= main_menu_tree Spree.t(:promotions), icon: "promotion.svg", sub_menu: "promotion", url: "#sidebar-promotions" %>
|
29
40
|
</ul>
|
30
41
|
<% end %>
|
31
42
|
|
32
43
|
<% if Spree.user_class && can?(:admin, Spree.user_class) %>
|
33
|
-
<ul class="nav nav-sidebar border-bottom">
|
34
|
-
<%= tab *Spree::BackendConfiguration::USER_TABS, url: spree.admin_users_path, icon: '
|
44
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarUser">
|
45
|
+
<%= tab *Spree::BackendConfiguration::USER_TABS, url: spree.admin_users_path, icon: 'users.svg' %>
|
35
46
|
</ul>
|
36
47
|
<% end %>
|
37
48
|
|
38
49
|
<% if can? :admin, current_store %>
|
39
|
-
<ul class="nav nav-sidebar border-bottom">
|
40
|
-
<%= main_menu_tree Spree.t(:configurations), icon: "
|
50
|
+
<ul class="nav nav-sidebar border-bottom" id="sidebarConfiguration">
|
51
|
+
<%= main_menu_tree Spree.t(:configurations), icon: "settings.svg", sub_menu: "configuration", url: "#sidebar-configuration" %>
|
41
52
|
</ul>
|
42
53
|
<% end %>
|
43
54
|
</nav>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="form-actions" data-hook="buttons">
|
2
|
-
<%= button Spree.t('actions.create'), '
|
2
|
+
<%= button Spree.t('actions.create'), 'save.svg', 'submit', {class: 'btn-success', data: { disable_with: "#{ Spree.t(:saving) }..." }} %>
|
3
3
|
<span class="or"><%= Spree.t(:or) %></span>
|
4
|
-
<%= button_link_to Spree.t('actions.cancel'), collection_url, icon: '
|
4
|
+
<%= button_link_to Spree.t('actions.cancel'), collection_url, icon: 'cancel.svg' %>
|
5
5
|
</div>
|
@@ -2,6 +2,7 @@
|
|
2
2
|
<div class="card-header">
|
3
3
|
<h3 class="card-title mb-0 h5"><%= Spree.t(:summary) %></h3>
|
4
4
|
</div>
|
5
|
+
<div class="table-responsive">
|
5
6
|
<table class="table table-condensed table-bordered" id="order_tab_summary" data-hook>
|
6
7
|
<tbody class="additional-info">
|
7
8
|
<tr>
|
@@ -123,4 +124,5 @@
|
|
123
124
|
<% end %>
|
124
125
|
</tbody>
|
125
126
|
</table>
|
127
|
+
</div>
|
126
128
|
</div>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<ul class="nav flex-column nav-pills" data-hook="admin_order_tabs">
|
8
8
|
<% if ((can? :update, @order) && (@order.shipments.size.zero? || @order.shipments.shipped.size.zero?)) %>
|
9
9
|
<li data-hook='admin_order_tabs_cart_details'>
|
10
|
-
<%= link_to_with_icon '
|
10
|
+
<%= link_to_with_icon 'cart.svg',
|
11
11
|
Spree.t(:cart),
|
12
12
|
cart_admin_order_url(@order),
|
13
13
|
class: "#{'active' if current == :cart} nav-link" %>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
<% if ((can?(:update, @order) && can?(:read, Spree::Store)) && (@order.shipments.size.zero? || @order.shipments.shipped.size.zero?)) %>
|
18
18
|
<li data-hook='admin_order_tabs_store_details'>
|
19
|
-
<%= link_to_with_icon '
|
19
|
+
<%= link_to_with_icon 'store.svg',
|
20
20
|
Spree.t(:store),
|
21
21
|
store_admin_order_url(@order),
|
22
22
|
class: "#{'active' if current == :store} nav-link" %>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
<% if can?(:update, @order) && @order.checkout_steps.include?("address") %>
|
27
27
|
<li data-hook='admin_order_tabs_customer_details'>
|
28
|
-
<%= link_to_with_icon 'user',
|
28
|
+
<%= link_to_with_icon 'user.svg',
|
29
29
|
Spree.t(:customer),
|
30
30
|
spree.admin_order_customer_url(@order),
|
31
31
|
class: "#{'active' if current == :customer_details} nav-link" %>
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
<% if can? :update, @order %>
|
36
36
|
<li data-hook='admin_order_tabs_shipment_details'>
|
37
|
-
<%= link_to_with_icon '
|
37
|
+
<%= link_to_with_icon 'shipping.svg',
|
38
38
|
Spree.t(:shipments),
|
39
39
|
edit_admin_order_url(@order),
|
40
40
|
class: "#{'active' if current == :shipments} nav-link" %>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
<% if can? :index, Spree::Adjustment %>
|
45
45
|
<li data-hook='admin_order_tabs_adjustments'>
|
46
|
-
<%= link_to_with_icon '
|
46
|
+
<%= link_to_with_icon 'adjust.svg',
|
47
47
|
Spree.t(:adjustments),
|
48
48
|
spree.admin_order_adjustments_url(@order),
|
49
49
|
class: "#{'active' if current == :adjustments} nav-link" %>
|
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
<% if can?(:index, Spree::Payment) %>
|
54
54
|
<li data-hook='admin_order_tabs_payments'>
|
55
|
-
<%= link_to_with_icon '
|
55
|
+
<%= link_to_with_icon 'payments.svg',
|
56
56
|
Spree.t(:payments),
|
57
57
|
spree.admin_order_payments_url(@order),
|
58
58
|
class: "#{'active' if current == :payments} nav-link" %>
|
@@ -62,7 +62,7 @@
|
|
62
62
|
<% if can? :index, Spree::ReturnAuthorization %>
|
63
63
|
<% if @order.completed? %>
|
64
64
|
<li data-hook='admin_order_tabs_return_authorizations'>
|
65
|
-
<%= link_to_with_icon '
|
65
|
+
<%= link_to_with_icon 'enter.svg',
|
66
66
|
Spree.t(:return_authorizations),
|
67
67
|
spree.admin_order_return_authorizations_url(@order),
|
68
68
|
class: "#{'active' if current == :return_authorizations} nav-link" %>
|
@@ -73,7 +73,7 @@
|
|
73
73
|
<% if can? :index, Spree::CustomerReturn %>
|
74
74
|
<% if @order.completed? %>
|
75
75
|
<li>
|
76
|
-
<%= link_to_with_icon '
|
76
|
+
<%= link_to_with_icon 'returns.svg',
|
77
77
|
Spree.t(:customer_returns),
|
78
78
|
spree.admin_order_customer_returns_url(@order),
|
79
79
|
class: "#{'active' if current == :customer_returns} nav-link" %>
|
@@ -83,7 +83,7 @@
|
|
83
83
|
|
84
84
|
<% if can? :update, @order %>
|
85
85
|
<li data-hook='admin_order_tabs_state_changes'>
|
86
|
-
<%= link_to_with_icon '
|
86
|
+
<%= link_to_with_icon 'save.svg',
|
87
87
|
Spree::StateChange.human_attribute_name(:state_changes),
|
88
88
|
spree.admin_order_state_changes_url(@order),
|
89
89
|
class: "#{'active' if current == :state_changes} nav-link" %>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<% content_for :sidebar do %>
|
7
7
|
<ul class="nav flex-column nav-pills" data-hook="admin_product_tabs">
|
8
8
|
<%= content_tag :li do %>
|
9
|
-
<%= link_to_with_icon 'edit',
|
9
|
+
<%= link_to_with_icon 'edit.svg',
|
10
10
|
Spree.t(:details),
|
11
11
|
edit_admin_product_url(@product),
|
12
12
|
class: "nav-link #{'active' if current == :details}" %>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<% end if can?(:admin, Spree::Product) %>
|
15
15
|
|
16
16
|
<%= content_tag :li do %>
|
17
|
-
<%= link_to_with_icon '
|
17
|
+
<%= link_to_with_icon 'images.svg',
|
18
18
|
Spree.t(:images),
|
19
19
|
spree.admin_product_images_url(@product),
|
20
20
|
class: "nav-link #{'active' if current == :images}" %>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<% end if can?(:admin, Spree::Image) && !@product.deleted? %>
|
23
23
|
|
24
24
|
<%= content_tag :li do %>
|
25
|
-
<%= link_to_with_icon '
|
25
|
+
<%= link_to_with_icon 'adjust.svg',
|
26
26
|
Spree.t(:variants),
|
27
27
|
spree.admin_product_variants_url(@product),
|
28
28
|
class: "nav-link #{'active' if current == :variants}" %>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
<% end if can?(:admin, Spree::Variant) && !@product.deleted? %>
|
31
31
|
|
32
32
|
<%= content_tag :li do %>
|
33
|
-
<%= link_to_with_icon 'list
|
33
|
+
<%= link_to_with_icon 'list.svg',
|
34
34
|
Spree.t(:properties),
|
35
35
|
spree.admin_product_product_properties_url(@product),
|
36
36
|
class: "nav-link #{'active' if current == :properties}" %>
|
@@ -38,11 +38,19 @@
|
|
38
38
|
<% end if can?(:admin, Spree::ProductProperty) && !@product.deleted? %>
|
39
39
|
|
40
40
|
<%= content_tag :li do %>
|
41
|
-
<%= link_to_with_icon '
|
41
|
+
<%= link_to_with_icon 'items.svg',
|
42
42
|
Spree.t(:stock),
|
43
43
|
stock_admin_product_url(@product),
|
44
44
|
class: "nav-link #{'active' if current == :stock}" %>
|
45
45
|
|
46
46
|
<% end if can?(:admin, Spree::StockItem) && !@product.deleted? %>
|
47
|
+
|
48
|
+
<%= content_tag :li do %>
|
49
|
+
<%= link_to_with_icon 'money.svg',
|
50
|
+
Spree.t(:prices),
|
51
|
+
admin_product_prices_path(@product),
|
52
|
+
class: "nav-link #{'active' if current == :prices}" %>
|
53
|
+
|
54
|
+
<% end if can?(:admin, Spree::Price) && !@product.deleted? %>
|
47
55
|
</ul>
|
48
56
|
<% end %>
|
@@ -1,32 +1,34 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
<
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<th></th>
|
12
|
-
<% end %>
|
13
|
-
</tr>
|
14
|
-
</thead>
|
15
|
-
<tbody>
|
16
|
-
<% refunds.each do |refund| %>
|
17
|
-
<tr id="<%= dom_id(refund) %>" data-hook="refunds_row" class="<%= cycle('odd', 'even', name: 'refund_table_cycle')%>">
|
18
|
-
<td><%= pretty_time(refund.created_at) %></td>
|
19
|
-
<td><%= refund.payment.number %></td>
|
20
|
-
<td class="amount"><%= refund.display_amount %></td>
|
21
|
-
<td><%= payment_method_name(refund.payment) %></td>
|
22
|
-
<td><%= refund.transaction_id %></td>
|
23
|
-
<td><%= truncate(refund.reason.name, length: 100) %></td>
|
1
|
+
<div class="table-responsive">
|
2
|
+
<table class="table table-condensed table-bordered" id='refunds' data-order-id='<%= @order.number %>'>
|
3
|
+
<thead>
|
4
|
+
<tr data-hook="refunds_header">
|
5
|
+
<th><%= "#{Spree.t('date')}/#{Spree.t('time')}" %></th>
|
6
|
+
<th><%= Spree.t(:payment_identifier) %></th>
|
7
|
+
<th><%= Spree.t(:amount) %></th>
|
8
|
+
<th><%= Spree.t(:payment_method) %></th>
|
9
|
+
<th><%= Spree.t(:transaction_id) %></th>
|
10
|
+
<th><%= Spree.t(:reason) %></th>
|
24
11
|
<% if show_actions %>
|
25
|
-
<
|
26
|
-
<%= link_to_with_icon('edit', Spree.t(:edit), edit_admin_order_payment_refund_path(refund.payment.order, refund.payment, refund), no_text: true, class: "btn btn-outline-secondary btn-sm") if can?(:edit, refund) %>
|
27
|
-
</td>
|
12
|
+
<th></th>
|
28
13
|
<% end %>
|
29
14
|
</tr>
|
30
|
-
|
31
|
-
|
32
|
-
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<% refunds.each do |refund| %>
|
18
|
+
<tr id="<%= dom_id(refund) %>" data-hook="refunds_row" class="<%= cycle('odd', 'even', name: 'refund_table_cycle')%>">
|
19
|
+
<td><%= pretty_time(refund.created_at) %></td>
|
20
|
+
<td><%= refund.payment.number %></td>
|
21
|
+
<td class="amount"><%= refund.display_amount %></td>
|
22
|
+
<td><%= payment_method_name(refund.payment) %></td>
|
23
|
+
<td><%= refund.transaction_id %></td>
|
24
|
+
<td><%= truncate(refund.reason.name, length: 100) %></td>
|
25
|
+
<% if show_actions %>
|
26
|
+
<td class="actions actions-1">
|
27
|
+
<%= link_to_with_icon('edit.svg', Spree.t(:edit), edit_admin_order_payment_refund_path(refund.payment.order, refund.payment, refund), no_text: true, class: "btn btn-outline-secondary btn-sm") if can?(:edit, refund) %>
|
28
|
+
</td>
|
29
|
+
<% end %>
|
30
|
+
</tr>
|
31
|
+
<% end %>
|
32
|
+
</tbody>
|
33
|
+
</table>
|
34
|
+
</div>
|
@@ -2,16 +2,37 @@
|
|
2
2
|
<div class="form-group date-range-filter">
|
3
3
|
<%= label_tag nil, Spree.t(:date_range) %>
|
4
4
|
<div class="date-range-filter row">
|
5
|
-
<div class="col-md-6">
|
6
|
-
|
5
|
+
<div class="col-12 col-md-6 mb-3 mb-md-0">
|
6
|
+
<div class="input-group datePickerFrom"
|
7
|
+
data-wrap="true"
|
8
|
+
data-max-date="<%= params[:q][:completed_at_lt] %>" >
|
9
|
+
<%= s.text_field :completed_at_gt,
|
10
|
+
class: 'form-control shadow-none',
|
11
|
+
placeholder: Spree.t(:starting_from),
|
12
|
+
value: datepicker_field_value(params[:q][:completed_at_gt]),
|
13
|
+
'data-input':'' %>
|
14
|
+
|
15
|
+
<%= render partial: 'spree/admin/shared/cal_close' %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="col-12 col-md-6 mt-3 mt-md-0">
|
20
|
+
<div class="input-group datePickerTo"
|
21
|
+
data-wrap="true"
|
22
|
+
data-min-date="<%= params[:q][:completed_at_gt] %>" >
|
23
|
+
|
24
|
+
<%= s.text_field :completed_at_lt,
|
25
|
+
class: 'form-control shadow-none',
|
26
|
+
placeholder: Spree.t(:ending_at),
|
27
|
+
value: datepicker_field_value(params[:q][:completed_at_lt]),
|
28
|
+
'data-input':'' %>
|
29
|
+
<%= render partial: 'spree/admin/shared/cal_close' %>
|
30
|
+
</div>
|
7
31
|
</div>
|
8
|
-
<div class="col-md-6">
|
9
|
-
<%= s.text_field :completed_at_lt, class: 'datepicker datepicker-to form-control', value: datepicker_field_value(params[:q][:completed_at_lt]) %>
|
10
|
-
</div>
|
11
32
|
</div>
|
12
33
|
</div>
|
13
34
|
|
14
35
|
<div class="form-actions">
|
15
|
-
<%= button Spree.t(:search), 'search' %>
|
36
|
+
<%= button Spree.t(:search), 'search.svg' %>
|
16
37
|
</div>
|
17
38
|
<% end %>
|
@@ -1,5 +1,23 @@
|
|
1
|
+
<div class="d-lg-none page-actions__close border-bottom text-right">
|
2
|
+
<button
|
3
|
+
id="contextual-menu-close"
|
4
|
+
class="btn btn-link"
|
5
|
+
type="button"
|
6
|
+
aria-expanded="false"
|
7
|
+
aria-label="Toggle page actions">
|
8
|
+
<%= svg_icon name: "cancel.svg", width: '20', height: '20' %>
|
9
|
+
</button>
|
10
|
+
</div>
|
11
|
+
<% if content_for?(:page_actions) %>
|
12
|
+
<div class="page-actions d-lg-none col-12 px-0 <% if content_for?(:sidebar) %>pb-3<% end %> text-center" data-hook="toolbar">
|
13
|
+
<div class="d-flex justify-content-center flex-wrap">
|
14
|
+
<%= yield :page_actions %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
|
1
19
|
<% if content_for?(:sidebar) %>
|
2
|
-
<aside id="sidebar" class="main-right-sidebar" data-hook>
|
20
|
+
<aside id="sidebar" class="main-right-sidebar px-2" data-hook>
|
3
21
|
<%= yield :sidebar %>
|
4
22
|
</aside>
|
5
23
|
<% end %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<% if content_for?(:table_filter) %>
|
2
|
-
<div class="filter-wrap row">
|
2
|
+
<div class="filter-wrap row mb-4">
|
3
3
|
<div class="col-12">
|
4
4
|
<div class="input-group index-filter-button">
|
5
5
|
<span class="input-group-btn">
|
6
|
-
<button class="btn js-show-index-filters" type="button">
|
7
|
-
|
6
|
+
<button class="btn js-show-index-filters m-0" type="button">
|
7
|
+
<%= svg_icon name: "chevron-right.svg", width: '12', height: '12' %>
|
8
8
|
<%= Spree.t(:filter) %>
|
9
9
|
</button>
|
10
10
|
</span>
|
@@ -10,10 +10,42 @@
|
|
10
10
|
confirm_delete: Spree.t(:confirm_delete),
|
11
11
|
currency_separator: I18n.t('number.currency.format.separator'),
|
12
12
|
cut: Spree.t(:cut),
|
13
|
+
|
13
14
|
date_picker: Spree.t(:js_format, scope: 'date_picker', default: 'yy/mm/dd'),
|
15
|
+
firstDay: Spree.t(:first_day, scope: 'date_picker', default: (0).to_i),
|
16
|
+
rangeSep: Spree.t(:rangeSeparator, scope: 'date_picker', default: ' to '),
|
17
|
+
weekAbbr: Spree.t(:weekAbbreviation, scope: 'date_picker', default: 'Wk'),
|
18
|
+
scrollTitle: Spree.t(:scrollTitle, scope: 'date_picker', default: 'Scroll to increment'),
|
19
|
+
toggleTitle: Spree.t(:toggleTitle, scope: 'date_picker', default: 'Click to toggle'),
|
20
|
+
am: Spree.t(:am, scope: 'date_picker', default: 'AM'),
|
21
|
+
pm: Spree.t(:pm, scope: 'date_picker', default: 'PM'),
|
22
|
+
yearAriaLabel: Spree.t(:yearAriaLabel, scope: 'date_picker', default: 'Year'),
|
23
|
+
hourAriaLabel: Spree.t(:hourAriaLabel, scope: 'date_picker', default: 'Hour'),
|
24
|
+
minuteAriaLabel: Spree.t(:minuteAriaLabel, scope: 'date_picker', default: 'Minute'),
|
25
|
+
|
26
|
+
sun: Spree.t(:sun, scope: 'date_picker', default: 'Sun'),
|
27
|
+
mon: Spree.t(:mon, scope: 'date_picker', default: 'Mon'),
|
28
|
+
tue: Spree.t(:tue, scope: 'date_picker', default: 'Tue'),
|
29
|
+
wed: Spree.t(:wed, scope: 'date_picker', default: 'Wed'),
|
30
|
+
thu: Spree.t(:thu, scope: 'date_picker', default: 'Thu'),
|
31
|
+
fri: Spree.t(:fri, scope: 'date_picker', default: 'Fri'),
|
32
|
+
sat: Spree.t(:sat, scope: 'date_picker', default: 'Sat'),
|
33
|
+
|
34
|
+
lh_jan: Spree.t(:lh_jan, scope: 'date_picker', default: 'January'),
|
35
|
+
lh_feb: Spree.t(:lh_feb, scope: 'date_picker', default: 'February'),
|
36
|
+
lh_mar: Spree.t(:lh_mar, scope: 'date_picker', default: 'March'),
|
37
|
+
lh_apr: Spree.t(:lh_apr, scope: 'date_picker', default: 'April'),
|
38
|
+
lh_may: Spree.t(:lh_may, scope: 'date_picker', default: 'May'),
|
39
|
+
lh_jun: Spree.t(:lh_jun, scope: 'date_picker', default: 'June'),
|
40
|
+
lh_jul: Spree.t(:lh_jul, scope: 'date_picker', default: 'July'),
|
41
|
+
lh_aug: Spree.t(:lh_aug, scope: 'date_picker', default: 'August'),
|
42
|
+
lh_sep: Spree.t(:lh_sep, scope: 'date_picker', default: 'September'),
|
43
|
+
lh_oct: Spree.t(:lh_oct, scope: 'date_picker', default: 'October'),
|
44
|
+
lh_nov: Spree.t(:lh_nov, scope: 'date_picker', default: 'November'),
|
45
|
+
lh_dec: Spree.t(:lh_dec, scope: 'date_picker', default: 'December'),
|
46
|
+
|
14
47
|
destroy: Spree.t(:destroy, scope: :actions),
|
15
48
|
edit: Spree.t(:edit, scope: :actions),
|
16
|
-
first_day: Spree.t(:first_day, scope: 'date_picker', default: 0).to_i,
|
17
49
|
find_a_taxon: Spree.t(:find_a_taxon),
|
18
50
|
item_stock_placeholder: Spree.t(:choose_location),
|
19
51
|
loading: Spree.t(:loading),
|