spree_backend 4.3.3 → 4.4.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +222 -0
- data/.codeclimate.yml +36 -0
- data/.editorconfig +22 -0
- data/.eslintignore +7 -0
- data/.eslintrc.cjs +29 -0
- data/.gem_release.yml +4 -0
- data/.github/CONTRIBUTING.md +1 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +47 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/ISSUE_TEMPLATE.md +39 -0
- data/.github/dependabot.yml +7 -0
- data/.github/workflows/spelling_lint.yml +34 -0
- data/.gitignore +63 -0
- data/.rubocop.yml +197 -0
- data/.solargraph.yml +20 -0
- data/.stylelintignore +4 -0
- data/.stylelintrc +6 -0
- data/CODE_OF_CONDUCT.md +22 -0
- data/Gemfile +59 -3
- data/README.md +123 -0
- data/SECURITY.md +1 -0
- data/app/assets/config/spree_backend_manifest.js +1 -1
- data/app/assets/images/backend-cloud-arrow-up.svg +4 -0
- data/app/assets/images/backend-eye-open.svg +1 -1
- data/app/assets/images/backend-file-earmark-font.svg +4 -0
- data/app/assets/images/backend-file-earmark-image.svg +4 -0
- data/app/assets/images/backend-file-earmark-music.svg +4 -0
- data/app/assets/images/backend-file-earmark-pdf.svg +4 -0
- data/app/assets/images/backend-file-earmark-play.svg +4 -0
- data/app/assets/images/backend-file-earmark-spreadsheet.svg +3 -0
- data/app/assets/images/backend-file-earmark-zip.svg +4 -0
- data/app/assets/images/backend-file-earmark.svg +3 -0
- data/app/assets/images/backend-hdd.svg +4 -0
- data/app/assets/images/backend-link.svg +4 -0
- data/app/assets/images/backend-view.svg +1 -1
- data/app/assets/javascripts/spree/backend/adjustments.js +5 -5
- data/app/assets/javascripts/spree/backend/admin.js +4 -6
- data/app/assets/javascripts/spree/backend/calculator.js +1 -1
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +1 -1
- data/app/assets/javascripts/spree/backend/cms/links.es6 +1 -1
- data/app/assets/javascripts/spree/backend/cms/live_preview.es6 +1 -1
- data/app/assets/javascripts/spree/backend/cms/page.es6 +22 -40
- data/app/assets/javascripts/spree/backend/cms/section.es6 +1 -1
- data/app/assets/javascripts/spree/backend/gateway.js +1 -1
- data/app/assets/javascripts/spree/backend/general_settings.js +1 -1
- data/app/assets/javascripts/spree/backend/global/_index.js +3 -1
- data/app/assets/javascripts/spree/backend/global/alerts.es6 +1 -1
- data/app/assets/javascripts/spree/backend/global/animate_css.es6 +19 -0
- data/app/assets/javascripts/spree/backend/global/fetch_request_utility.es6 +114 -0
- data/app/assets/javascripts/spree/backend/global/flatpickr.es6 +2 -1
- data/app/assets/javascripts/spree/backend/global/info_alert.es6 +1 -1
- data/app/assets/javascripts/spree/backend/global/radio_panel_toggle.es6 +1 -1
- data/app/assets/javascripts/spree/backend/global/ransack.es6 +7 -5
- data/app/assets/javascripts/spree/backend/global/responsive_menus.es6 +1 -1
- data/app/assets/javascripts/spree/backend/global/select2_autocomplete.es6 +4 -4
- data/app/assets/javascripts/spree/backend/global/select2_populate.es6 +2 -2
- data/app/assets/javascripts/spree/backend/global/side_scroll_indication.es6 +2 -2
- data/app/assets/javascripts/spree/backend/global/sortable.es6 +1 -1
- data/app/assets/javascripts/spree/backend/global/tinymce.es6 +3 -2
- data/app/assets/javascripts/spree/backend/line_items.js +7 -9
- data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +23 -28
- data/app/assets/javascripts/spree/backend/menus/_index.es6 +0 -1
- data/app/assets/javascripts/spree/backend/menus/menu_item.es6 +1 -1
- data/app/assets/javascripts/spree/backend/multi_currency.js +2 -2
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +1 -1
- data/app/assets/javascripts/spree/backend/orders/edit.js +1 -1
- data/app/assets/javascripts/spree/backend/payments/edit.js +32 -22
- data/app/assets/javascripts/spree/backend/payments/new.js +1 -1
- data/app/assets/javascripts/spree/backend/product_picker.js +16 -25
- data/app/assets/javascripts/spree/backend/progress.js +5 -3
- data/app/assets/javascripts/spree/backend/promotions.js +3 -1
- data/app/assets/javascripts/spree/backend/returns/expedited_exchanges_warning.js +1 -1
- data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +1 -1
- data/app/assets/javascripts/spree/backend/shipments.js +80 -79
- data/app/assets/javascripts/spree/backend/spree-select2.js +1 -1
- data/app/assets/javascripts/spree/backend/states.js +1 -1
- data/app/assets/javascripts/spree/backend/stock_location.js +1 -1
- data/app/assets/javascripts/spree/backend/stock_management.js +1 -1
- data/app/assets/javascripts/spree/backend/stock_movement.js +58 -13
- data/app/assets/javascripts/spree/backend/stock_transfer.js +62 -32
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +9 -8
- data/app/assets/javascripts/spree/backend/taxons.js +17 -14
- data/app/assets/javascripts/spree/backend/user_picker.js +1 -1
- data/app/assets/javascripts/spree/backend/users/edit.js +1 -1
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js +19 -11
- data/app/assets/javascripts/spree/backend/variant_management.js +1 -1
- data/app/assets/javascripts/spree/backend/zone.js +1 -1
- data/app/assets/javascripts/spree/backend.js +13 -33
- data/app/assets/javascripts/spree.js +2 -9
- data/app/assets/stylesheets/spree/backend/components/_main.scss +8 -0
- data/app/assets/stylesheets/spree/backend/plugins/_nav_x.scss +1 -1
- data/app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss +1 -1
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +1 -1
- data/app/assets/stylesheets/spree/backend/shared/_sortable_tree.scss +62 -0
- data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +3 -0
- data/app/assets/stylesheets/spree/backend/views/_digitals.scss +33 -0
- data/app/assets/stylesheets/spree/backend/views/_taxonomies.scss +3 -0
- data/app/controllers/spree/admin/base_controller.rb +4 -13
- data/app/controllers/spree/admin/digitals_controller.rb +33 -0
- data/app/controllers/spree/admin/general_settings_controller.rb +0 -5
- data/app/controllers/spree/admin/images_controller.rb +1 -1
- data/app/controllers/spree/admin/oauth_applications_controller.rb +17 -0
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -2
- data/app/controllers/spree/admin/orders_controller.rb +10 -2
- data/app/controllers/spree/admin/payment_methods_controller.rb +2 -2
- data/app/controllers/spree/admin/payments_controller.rb +1 -1
- data/app/controllers/spree/admin/products_controller.rb +4 -2
- data/app/controllers/spree/admin/promotions_controller.rb +1 -1
- data/app/controllers/spree/admin/properties_controller.rb +1 -1
- data/app/controllers/spree/admin/resource_controller.rb +9 -4
- data/app/controllers/spree/admin/return_index_controller.rb +1 -1
- data/app/controllers/spree/admin/stock_transfers_controller.rb +2 -2
- data/app/controllers/spree/admin/store_credits_controller.rb +2 -2
- data/app/controllers/spree/admin/stores_controller.rb +2 -2
- data/app/controllers/spree/admin/taxons_controller.rb +23 -38
- data/app/controllers/spree/admin/users_controller.rb +6 -19
- data/app/controllers/spree/admin/variants_controller.rb +1 -2
- data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +48 -0
- data/app/helpers/spree/admin/base_helper.rb +27 -9
- data/app/helpers/spree/admin/digital_helper.rb +28 -0
- data/app/helpers/spree/admin/menu_helper.rb +0 -21
- data/app/helpers/spree/admin/navigation_helper.rb +19 -9
- data/app/helpers/spree/admin/sortable_tree_helper.rb +31 -0
- data/app/helpers/spree/admin/stores_helper.rb +1 -1
- data/app/helpers/spree/admin/webhooks_subscribers_helper.rb +31 -0
- data/app/javascript/spree/dashboard/controllers/clipboard_controller.js +12 -0
- data/app/javascript/spree/dashboard/controllers/password_toggle_controller.js +14 -0
- data/app/javascript/spree/dashboard/controllers/sortable_tree_controller.js +55 -0
- data/app/javascript/spree/dashboard/controllers/spree_controller.js +25 -0
- data/app/javascript/spree/dashboard/controllers/upload_button_controller.js +13 -0
- data/app/javascript/spree/dashboard/controllers/webhooks_subscriber_events_controller.js +19 -0
- data/app/javascript/spree/dashboard/index.js +49 -0
- data/app/{assets/javascripts/spree/backend/global/bootstrap.es6 → javascript/spree/dashboard/utilities/bootstrap.js} +6 -2
- data/app/javascript/spree/dashboard/utilities/request_utility.js +54 -0
- data/app/models/spree/backend_configuration.rb +11 -0
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -2
- data/app/views/spree/admin/adjustments/_form.html.erb +2 -2
- data/app/views/spree/admin/adjustments/index.html.erb +1 -0
- data/app/views/spree/admin/cms_pages/_form.html.erb +8 -8
- data/app/views/spree/admin/cms_pages/edit.html.erb +1 -6
- data/app/views/spree/admin/cms_sections/_form.html.erb +2 -2
- data/app/views/spree/admin/cms_sections/types/_featured_article.html.erb +6 -6
- data/app/views/spree/admin/cms_sections/types/_hero_image.html.erb +6 -6
- data/app/views/spree/admin/cms_sections/types/_image_gallery.html.erb +12 -12
- data/app/views/spree/admin/cms_sections/types/_rich_text_content.html.erb +1 -1
- data/app/views/spree/admin/cms_sections/types/_side_by_side_images.html.erb +12 -12
- data/app/views/spree/admin/countries/_form.html.erb +4 -4
- data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
- data/app/views/spree/admin/digitals/_form.html.erb +35 -0
- data/app/views/spree/admin/digitals/index.html.erb +25 -0
- data/app/views/spree/admin/general_settings/edit.html.erb +1 -22
- data/app/views/spree/admin/menu_items/_form.html.erb +6 -6
- data/app/views/spree/admin/menus/_form.html.erb +3 -3
- data/app/views/spree/admin/menus/edit.html.erb +18 -18
- data/app/views/spree/admin/oauth_applications/_form.html.erb +22 -0
- data/app/views/spree/admin/oauth_applications/create.turbo_stream.erb +38 -0
- data/app/views/spree/admin/oauth_applications/edit.html.erb +13 -0
- data/app/views/spree/admin/oauth_applications/index.html.erb +51 -0
- data/app/views/spree/admin/oauth_applications/new.html.erb +15 -0
- data/app/views/spree/admin/option_types/_form.html.erb +3 -3
- data/app/views/spree/admin/option_types/_option_value_fields.html.erb +2 -2
- data/app/views/spree/admin/orders/_channel_form.html.erb +1 -1
- data/app/views/spree/admin/orders/_form.html.erb +1 -0
- data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +1 -0
- data/app/views/spree/admin/orders/_order_actions.html.erb +6 -0
- data/app/views/spree/admin/orders/_search.html.erb +151 -0
- data/app/views/spree/admin/orders/index.html.erb +2 -151
- data/app/views/spree/admin/payment_methods/_form.html.erb +2 -2
- data/app/views/spree/admin/payments/_list.html.erb +1 -1
- data/app/views/spree/admin/products/_form.html.erb +19 -19
- data/app/views/spree/admin/products/index.html.erb +2 -0
- data/app/views/spree/admin/products/new.html.erb +6 -6
- data/app/views/spree/admin/promotion_actions/create.js.erb +1 -1
- data/app/views/spree/admin/promotion_categories/_form.html.erb +2 -2
- data/app/views/spree/admin/promotions/_form.html.erb +5 -5
- data/app/views/spree/admin/properties/_form.html.erb +3 -3
- data/app/views/spree/admin/prototypes/_form.html.erb +4 -4
- data/app/views/spree/admin/refunds/new.html.erb +2 -2
- data/app/views/spree/admin/reimbursement_types/_form.html.erb +2 -2
- data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -3
- data/app/views/spree/admin/roles/_form.html.erb +1 -1
- data/app/views/spree/admin/shared/_account_nav.html.erb +1 -1
- data/app/views/spree/admin/shared/_address_form.html.erb +4 -4
- data/app/views/spree/admin/shared/_head.html.erb +4 -8
- data/app/views/spree/admin/shared/_main_menu.html.erb +12 -0
- data/app/views/spree/admin/shared/_new_resource_links.html.erb +1 -1
- data/app/views/spree/admin/shared/_product_tabs.html.erb +8 -0
- data/app/views/spree/admin/shared/_version.html.erb +1 -1
- data/app/views/spree/admin/shared/cms/_spree_product.html.erb +2 -2
- data/app/views/spree/admin/shared/cms/_spree_taxon.html.erb +2 -2
- data/app/views/spree/admin/shared/linkables/_spree_cms_page.erb +2 -2
- data/app/views/spree/admin/shared/linkables/_spree_product.html.erb +2 -2
- data/app/views/spree/admin/shared/linkables/_spree_taxon.html.erb +2 -2
- data/app/views/spree/admin/shared/linkables/_url.html.erb +1 -1
- data/app/views/spree/admin/shared/named_types/_form.html.erb +1 -1
- data/app/views/spree/admin/{menus/nested_menu_items/_item_bar.html.erb → shared/sortable_tree/_menu.html.erb} +10 -7
- data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +34 -0
- data/app/views/spree/admin/shared/sub_menu/_apps.html.erb +3 -0
- data/app/views/spree/admin/shared/sub_menu/_integrations.html.erb +3 -0
- data/app/views/spree/admin/shipping_categories/_form.html.erb +1 -1
- data/app/views/spree/admin/shipping_methods/_form.html.erb +8 -8
- data/app/views/spree/admin/states/_form.html.erb +2 -2
- data/app/views/spree/admin/stock_locations/_form.html.erb +2 -2
- data/app/views/spree/admin/stock_movements/_form.html.erb +3 -3
- data/app/views/spree/admin/store_credit_categories/_form.html.erb +1 -1
- data/app/views/spree/admin/store_credits/_form.html.erb +4 -4
- data/app/views/spree/admin/stores/_form.html.erb +280 -227
- data/app/views/spree/admin/tax_categories/_form.html.erb +4 -4
- data/app/views/spree/admin/tax_rates/_form.html.erb +4 -3
- data/app/views/spree/admin/taxonomies/_form.html.erb +2 -2
- data/app/views/spree/admin/taxonomies/edit.html.erb +34 -29
- data/app/views/spree/admin/taxons/_form.html.erb +101 -57
- data/app/views/spree/admin/taxons/edit.html.erb +6 -3
- data/app/views/spree/admin/taxons/index.html.erb +1 -1
- data/app/views/spree/admin/taxons/new.html.erb +16 -0
- data/app/views/spree/admin/users/_form.html.erb +3 -3
- data/app/views/spree/admin/users/edit.html.erb +0 -40
- data/app/views/spree/admin/variants/_autocomplete.js.erb +5 -5
- data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +2 -2
- data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +6 -6
- data/app/views/spree/admin/variants/_split.js.erb +1 -1
- data/app/views/spree/admin/variants/index.html.erb +4 -1
- data/app/views/spree/admin/webhooks_subscribers/_form.html.erb +101 -0
- data/app/views/spree/admin/webhooks_subscribers/edit.html.erb +13 -0
- data/app/views/spree/admin/webhooks_subscribers/index.html.erb +47 -0
- data/app/views/spree/admin/webhooks_subscribers/new.html.erb +13 -0
- data/app/views/spree/admin/webhooks_subscribers/show.html.erb +59 -0
- data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
- data/app/views/spree/admin/zones/_form.html.erb +2 -2
- data/app/views/spree/admin/zones/_state_members.html.erb +1 -1
- data/app/views/spree/layouts/admin.html.erb +1 -11
- data/codespell.txt +8 -0
- data/config/locales/en.yml +273 -0
- data/config/routes.rb +8 -4
- data/lib/generators/spree/backend/install/install_generator.rb +4 -2
- data/lib/generators/spree/backend/install/templates/app/javascript/spree-dashboard.js +7 -0
- data/lib/spree/backend/engine.rb +2 -1
- data/lib/spree/backend/testing_support/capybara_utils.rb +53 -0
- data/lib/spree/backend/testing_support/flash.rb +38 -0
- data/lib/spree/backend/testing_support/flatpickr_capybara.rb +126 -0
- data/lib/spree/backend/version.rb +9 -0
- data/lib/spree/backend.rb +2 -1
- data/lib/spree_backend.rb +17 -0
- data/license.md +13 -0
- data/package.json +46 -0
- data/rollup.config.js +41 -0
- data/spree_backend.gemspec +17 -16
- data/vendor/assets/javascripts/purify.js +1 -1
- data/vendor/assets/stylesheets/animate.css +2 -4
- data/yarn.lock +959 -0
- metadata +120 -38
- data/app/assets/javascripts/spree/backend/menus/menu.es6 +0 -57
- data/app/assets/javascripts/spree/backend/taxon_permalink_preview.js +0 -11
- data/app/assets/javascripts/spree/backend/taxon_tree_menu.js +0 -35
- data/app/assets/javascripts/spree/backend/taxonomy.js +0 -178
- data/app/views/spree/admin/taxonomies/_js_head.html.erb +0 -7
- data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +0 -4564
- data/vendor/assets/javascripts/js.cookie.js +0 -163
- data/vendor/assets/javascripts/modernizr.js +0 -3
- data/vendor/assets/stylesheets/jquery.jstree/themes/spree/style.scss +0 -230
- data/vendor/assets/stylesheets/jquery.jstree/themes/spree/throbber.gif +0 -0
- /data/app/assets/stylesheets/spree/backend/views/{prototypes.scss → _prototypes.scss} +0 -0
@@ -1,13 +1,13 @@
|
|
1
1
|
<div data-hook="admin_state_form_fields" class="row">
|
2
2
|
<div class="col-12 col-md-6">
|
3
|
-
<%= f.field_container :name
|
3
|
+
<%= f.field_container :name do %>
|
4
4
|
<%= f.label :name, Spree.t(:name) %>
|
5
5
|
<%= f.text_field :name, class: 'form-control' %>
|
6
6
|
<%= f.error_message_on :name %>
|
7
7
|
<% end %>
|
8
8
|
</div>
|
9
9
|
<div class="col-12 col-md-6">
|
10
|
-
<%= f.field_container :abbr
|
10
|
+
<%= f.field_container :abbr do %>
|
11
11
|
<%= f.label :abbr, Spree.t(:abbreviation) %>
|
12
12
|
<%= f.text_field :abbr, class: 'form-control' %>
|
13
13
|
<% end %>
|
@@ -2,14 +2,14 @@
|
|
2
2
|
<div class="row">
|
3
3
|
<div class="col-12 col-md-9" data-hook="stock_location_names">
|
4
4
|
<div data-hook="stock_location_name">
|
5
|
-
<%= f.field_container :name
|
5
|
+
<%= f.field_container :name do %>
|
6
6
|
<%= f.label :name, Spree.t(:name) %> <span class="required">*</span><br>
|
7
7
|
<%= f.text_field :name, class: 'form-control', required: true %>
|
8
8
|
<%= f.error_message_on :name %>
|
9
9
|
<% end %>
|
10
10
|
</div>
|
11
11
|
<div data-hook="stock_location_admin_name">
|
12
|
-
<%= f.field_container :admin_name
|
12
|
+
<%= f.field_container :admin_name do %>
|
13
13
|
<%= f.label :admin_name, Spree.t(:internal_name) %>
|
14
14
|
<%= f.text_field :admin_name, class: 'form-control', label: false %>
|
15
15
|
<% end %>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<div data-hook="admin_stock_movements_form_fields">
|
2
|
-
<%= f.field_container :quantity
|
2
|
+
<%= f.field_container :quantity do %>
|
3
3
|
<%= f.label :quantity, Spree.t(:quantity) %>
|
4
4
|
<%= f.text_field :quantity, class: 'form-control' %>
|
5
5
|
<% end %>
|
6
|
-
<%= f.field_container :stock_item_id
|
6
|
+
<%= f.field_container :stock_item_id do %>
|
7
7
|
<%= f.label :stock_item_id, Spree.t(:stock_item_id) %>
|
8
|
-
<%= select_tag 'stock_movement[stock_item_id]', nil , class: '
|
8
|
+
<%= select_tag 'stock_movement[stock_item_id]', nil , id: 'stock_movement_stock_item_id', class: 'd-block w-100', :'data-stock-location-id' => params[:stock_location_id] %>
|
9
9
|
<% end %>
|
10
10
|
</div>
|
11
11
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div data-hook="admin_store_credit_category_form_fields">
|
2
|
-
<%= f.field_container :name,
|
2
|
+
<%= f.field_container :name, 'data-hook' => 'store_credit_category_name' do %>
|
3
3
|
<%= f.label :name, Spree.t(:name) %> <span class="required">*</span>
|
4
4
|
<%= f.text_field :name, class: 'form-control' %>
|
5
5
|
<%= f.error_message_on :name %>
|
@@ -1,21 +1,21 @@
|
|
1
1
|
<div data-hook='admin_store_credit_form_fields'>
|
2
|
-
<%= f.field_container :amount
|
2
|
+
<%= f.field_container :amount do %>
|
3
3
|
<%= f.label :amount, raw(Spree.t(:amount) + required_span_tag) %>
|
4
4
|
<%= f.text_field :amount, class: 'form-control' %>
|
5
5
|
<%= f.error_message_on :amount %>
|
6
6
|
<% end %>
|
7
|
-
<%= f.field_container :currency
|
7
|
+
<%= f.field_container :currency do %>
|
8
8
|
<%= f.label :currency, raw(Spree.t(:currency) + required_span_tag) %>
|
9
9
|
<%= f.select :currency, currency_options(f.object.currency) %>
|
10
10
|
<%= f.error_message_on :currency %>
|
11
11
|
<% end %>
|
12
|
-
<%= f.field_container :category
|
12
|
+
<%= f.field_container :category do %>
|
13
13
|
<%= f.label :category, raw(Spree.t(:category) + required_span_tag) %>
|
14
14
|
<%= f.select :category_id, options_from_collection_for_select(@credit_categories, :id, :name, f.object.category.try(:id)),
|
15
15
|
{ include_blank: true }, { class: 'select2 fullwidth', placeholder: Spree.t(:select_a_store_credit_reason) } %>
|
16
16
|
<%= f.error_message_on :category %>
|
17
17
|
<% end %>
|
18
|
-
<%= f.field_container :memo
|
18
|
+
<%= f.field_container :memo do %>
|
19
19
|
<%= f.label :memo, Spree.t(:memo) %>
|
20
20
|
<%= f.text_area :memo, class: 'form-control' %>
|
21
21
|
<%= f.error_message_on :memo %>
|
@@ -1,259 +1,312 @@
|
|
1
1
|
<div data-hook="admin_store_form_fields">
|
2
|
-
|
3
|
-
<div class="card
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
</
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
2
|
+
<div class="card mb-4">
|
3
|
+
<div class="card-header">
|
4
|
+
<h1 class="card-title mb-0 h5">
|
5
|
+
<%= Spree.t(:basic_information) %>
|
6
|
+
</h1>
|
7
|
+
</div>
|
8
|
+
<div class="card-body">
|
9
|
+
<%= f.field_container :logo do %>
|
10
|
+
<% if @store.logo.attached? && @store.logo.variable? %>
|
11
|
+
<%= image_tag main_app.url_for(@store.logo.variant(resize: '244x104>')) %>
|
12
|
+
<% elsif @store.logo.attached? && @store.logo.image? %>
|
13
|
+
<%= image_tag main_app.url_for(@store.logo) %>
|
14
|
+
<% end %>
|
15
|
+
<%= f.field_container :logo do %>
|
16
|
+
<%= f.label :logo, Spree.t(:logo) %><br>
|
17
|
+
<%= f.file_field :logo %>
|
18
|
+
<%= f.error_message_on :logo %>
|
19
|
+
<% end %>
|
20
20
|
<% end %>
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
<%= f.field_container :mailer_logo do %>
|
22
|
+
<% if @store.mailer_logo.attached? && @store.mailer_logo.variable? %>
|
23
|
+
<%= image_tag main_app.url_for(@store.mailer_logo.variant(resize: '244x104>')) %>
|
24
|
+
<% end %>
|
25
|
+
<%= f.field_container :mailer_logo do %>
|
26
|
+
<%= f.label :mailer_logo, Spree.t(:mailer_logo) %><br>
|
27
|
+
<%= f.file_field :mailer_logo, accept: Spree::Store::MAILER_LOGO_CONTENT_TYPES.join(',') %>
|
28
|
+
<%= f.error_message_on :mailer_logo %>
|
29
|
+
<% end %>
|
25
30
|
<% end %>
|
26
|
-
<%= f.field_container :
|
27
|
-
|
28
|
-
|
29
|
-
|
31
|
+
<%= f.field_container :favicon_image do %>
|
32
|
+
<% if @store.favicon_image.attached? && @store.favicon_image.variable? %>
|
33
|
+
<%= image_tag main_app.url_for(@store.favicon_image.variant(resize: '104x104')) %>
|
34
|
+
<% end %>
|
35
|
+
<%= f.field_container :favicon_image do %>
|
36
|
+
<%= f.label :favicon_image, "#{Spree.t(:favicon)} (#{Spree.t(:favicon_upload_info)})" %><br>
|
37
|
+
<%= f.file_field :favicon_image, accept: Spree::Store::FAVICON_CONTENT_TYPES.join(',') %>
|
38
|
+
<%= f.error_message_on :favicon_image %>
|
39
|
+
<% end %>
|
30
40
|
<% end %>
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
<%=
|
41
|
+
<%= f.field_container :name do %>
|
42
|
+
<%= f.label :name, raw(Spree.t(:name) + required_span_tag) %>
|
43
|
+
<%= f.text_field :name, class: 'form-control', required: true %>
|
44
|
+
<%= f.error_message_on :name %>
|
35
45
|
<% end %>
|
36
|
-
<%= f.field_container :
|
37
|
-
<%= f.label :
|
38
|
-
<%= f.
|
39
|
-
|
46
|
+
<%= f.field_container :code do %>
|
47
|
+
<%= f.label :code, raw(Spree.t(:code) + required_span_tag) %>
|
48
|
+
<%= f.text_field :code, class: 'form-control', required: true %>
|
49
|
+
<small class="form-text text-muted">
|
50
|
+
<%= Spree.t('store_form.code_help') %>
|
51
|
+
</small>
|
52
|
+
<%= f.error_message_on :code %>
|
40
53
|
<% end %>
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
<%= f.label :code, raw(Spree.t(:code) + required_span_tag) %>
|
49
|
-
<%= f.text_field :code, class: 'form-control', required: true %>
|
50
|
-
<small class="form-text text-muted">
|
51
|
-
<%= Spree.t('store_form.code_help') %>
|
52
|
-
</small>
|
53
|
-
<%= f.error_message_on :code %>
|
54
|
-
<% end %>
|
55
|
-
<%= f.field_container :url, class: ['form-group'] do %>
|
56
|
-
<%= f.label :url, raw(Spree.t(:url) + required_span_tag) %>
|
57
|
-
<div class="input-group mb-3">
|
58
|
-
<div class="input-group-prepend">
|
59
|
-
<span class="input-group-text" id="basic-addon3">https://</span>
|
54
|
+
<%= f.field_container :url do %>
|
55
|
+
<%= f.label :url, raw(Spree.t(:url) + required_span_tag) %>
|
56
|
+
<div class="input-group mb-3">
|
57
|
+
<div class="input-group-prepend">
|
58
|
+
<span class="input-group-text" id="basic-addon3">https://</span>
|
59
|
+
</div>
|
60
|
+
<%= f.text_field :url, class: 'form-control', required: true %>
|
60
61
|
</div>
|
61
|
-
<%= f.
|
62
|
-
|
63
|
-
|
64
|
-
<% end %>
|
62
|
+
<%= f.error_message_on :url %>
|
63
|
+
<% end %>
|
64
|
+
</div>
|
65
65
|
</div>
|
66
|
-
</div>
|
67
66
|
|
68
|
-
<div class="card mb-4">
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
67
|
+
<div class="card mb-4">
|
68
|
+
<div class="card-header">
|
69
|
+
<h1 class="card-title mb-0 h5">
|
70
|
+
<%= Spree.t(:seo) %>
|
71
|
+
</h1>
|
72
|
+
</div>
|
73
|
+
<div class="card-body">
|
74
|
+
<%= f.field_container :seo_title do %>
|
75
|
+
<%= f.label :seo_title, Spree.t(:seo_title) %>
|
76
|
+
<%= f.text_field :seo_title, class: 'form-control' %>
|
77
|
+
<%= f.error_message_on :seo_title %>
|
78
|
+
<% end %>
|
79
|
+
<%= f.field_container :meta_description do %>
|
80
|
+
<%= f.label :meta_description, Spree.t(:meta_description) %>
|
81
|
+
<%= f.text_area :meta_description, class: 'form-control' %>
|
82
|
+
<%= f.error_message_on :meta_description %>
|
83
|
+
<% end %>
|
84
|
+
<%= f.field_container :meta_keywords do %>
|
85
|
+
<%= f.label :meta_keywords, Spree.t(:meta_keywords) %>
|
86
|
+
<%= f.text_field :meta_keywords, class: 'form-control' %>
|
87
|
+
<%= f.error_message_on :meta_keywords %>
|
88
|
+
<% end %>
|
89
|
+
<%= f.field_container :seo_robots do %>
|
90
|
+
<%= f.label :seo_robots, Spree.t(:seo_robots) %>
|
91
|
+
<%= f.text_field :seo_robots, class: 'form-control' %>
|
92
|
+
<%= f.error_message_on :seo_robots %>
|
93
|
+
<small class="form-text text-muted">
|
94
|
+
<%= raw(Spree.t('store_form.seo_robots')) %>
|
95
|
+
</small>
|
96
|
+
<% end %>
|
97
|
+
</div>
|
98
98
|
</div>
|
99
|
-
</div>
|
100
99
|
|
101
|
-
<div class="card mb-4">
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
100
|
+
<div class="card mb-4">
|
101
|
+
<div class="card-header">
|
102
|
+
<h1 class="card-title mb-0 h5">
|
103
|
+
<%= Spree.t(:email).pluralize %>
|
104
|
+
</h1>
|
105
|
+
</div>
|
106
|
+
<div class="card-body">
|
107
|
+
<%= f.field_container :mail_from_address do %>
|
108
|
+
<%= f.label :mail_from_address, raw(Spree.t(:mail_from_address) + required_span_tag) %>
|
109
|
+
<%= f.text_field :mail_from_address, class: 'form-control', required: true %>
|
110
|
+
<%= f.error_message_on :mail_from_address %>
|
111
|
+
<small class="form-text text-muted">
|
112
|
+
<%= Spree.t('store_form.mail_from_address_help') %>
|
113
|
+
</small>
|
114
|
+
<% end %>
|
116
115
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
116
|
+
<%= f.field_container :customer_support_email do %>
|
117
|
+
<%= f.label :customer_support_email, Spree.t(:customer_support_email) %>
|
118
|
+
<%= f.text_field :customer_support_email, class: 'form-control' %>
|
119
|
+
<%= f.error_message_on :customer_support_email %>
|
120
|
+
<small class="form-text text-muted">
|
121
|
+
<%= Spree.t('store_form.customer_support_email_help') %>
|
122
|
+
</small>
|
123
|
+
<% end %>
|
125
124
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
125
|
+
<%= f.field_container :new_order_notifications_email do %>
|
126
|
+
<%= f.label :new_order_notifications_email, Spree.t(:new_order_notifications_email) %>
|
127
|
+
<%= f.text_field :new_order_notifications_email, class: 'form-control' %>
|
128
|
+
<%= f.error_message_on :new_order_notifications_email %>
|
129
|
+
<small class="form-text text-muted">
|
130
|
+
<%= Spree.t('store_form.new_order_notifications_email_help') %>
|
131
|
+
</small>
|
132
|
+
<% end %>
|
133
|
+
</div>
|
134
134
|
</div>
|
135
|
-
</div>
|
136
135
|
|
137
|
-
<div class="card mb-4">
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
<small class="form-text text-muted">
|
158
|
-
<%= raw(Spree.t('store_form.checkout_zone_help')) %>
|
159
|
-
</small>
|
160
|
-
<%= f.error_message_on :checkout_zone_id %>
|
161
|
-
<% end %>
|
162
|
-
<%= f.field_container :default_locale, class: ['form-group'] do %>
|
163
|
-
<%= f.label :default_locale %>
|
164
|
-
<%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, @store.default_locale || I18n.locale), {}, { class: 'select2' } %>
|
165
|
-
<%= f.error_message_on :default_locale %>
|
166
|
-
<% unless defined?(SpreeI18n) %>
|
136
|
+
<div class="card mb-4">
|
137
|
+
<div class="card-header">
|
138
|
+
<h1 class="card-title mb-0 h5">
|
139
|
+
<%= Spree.t(:internationalization) %>
|
140
|
+
</h1>
|
141
|
+
</div>
|
142
|
+
<div class="card-body">
|
143
|
+
<%= f.field_container :default_currency do %>
|
144
|
+
<%= f.label :default_currency %>
|
145
|
+
<%= f.select :default_currency, currency_options(@store.default_currency), {}, { class: 'select2' } %>
|
146
|
+
<%= f.error_message_on :default_currency %>
|
147
|
+
<% end %>
|
148
|
+
<%= f.field_container :supported_currencies do %>
|
149
|
+
<%= f.label :supported_currencies, Spree.t(:supported_currencies) %>
|
150
|
+
<%= f.select :supported_currencies, currency_options(@store.supported_currencies&.split(',')), { prompt: false }, { multiple: true, class: 'select2' } %>
|
151
|
+
<%= f.error_message_on :supported_currencies %>
|
152
|
+
<% end %>
|
153
|
+
<%= f.field_container :checkout_zone_id do %>
|
154
|
+
<%= f.label :checkout_zone_id, Spree.t(:zone) %>
|
155
|
+
<%= f.select :checkout_zone_id, options_for_select(@zones, selected_checkout_zone(@store)&.id), { include_blank: Spree.t(:no_limits_zone) }, { class: 'select2' } %>
|
167
156
|
<small class="form-text text-muted">
|
168
|
-
<%= raw(Spree.t('store_form.
|
157
|
+
<%= raw(Spree.t('store_form.checkout_zone_help')) %>
|
169
158
|
</small>
|
159
|
+
<%= f.error_message_on :checkout_zone_id %>
|
160
|
+
<% end %>
|
161
|
+
<%= f.field_container :default_locale do %>
|
162
|
+
<%= f.label :default_locale %>
|
163
|
+
<%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, @store.default_locale || I18n.locale), {}, { class: 'select2' } %>
|
164
|
+
<%= f.error_message_on :default_locale %>
|
165
|
+
<% unless defined?(SpreeI18n) %>
|
166
|
+
<small class="form-text text-muted">
|
167
|
+
<%= raw(Spree.t('store_form.locales_help')) %>
|
168
|
+
</small>
|
169
|
+
<% end %>
|
170
|
+
<% end %>
|
171
|
+
<%= f.field_container :supported_locales do %>
|
172
|
+
<%= f.label :supported_locales, Spree.t(:supported_locales) %>
|
173
|
+
<%= f.select :supported_locales, options_from_collection_for_select(all_locales_options, :last, :first, @store.supported_locales&.split(',')), {}, { multiple: true, class: 'select2' } %>
|
174
|
+
<%= f.error_message_on :supported_locales %>
|
170
175
|
<% end %>
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
<%= f.error_message_on :default_country_id %>
|
181
|
-
<small class="form-text text-muted">
|
182
|
-
<%= Spree.t('store_form.default_country_help') %>
|
183
|
-
</small>
|
184
|
-
<% end %>
|
176
|
+
<%= f.field_container :default_country_id do %>
|
177
|
+
<%= f.label :default_country_id, Spree.t('i18n.default_country') %>
|
178
|
+
<%= f.select :default_country_id, options_from_collection_for_select(@countries, :id, :name, @store.default_country_id), {}, { class: 'select2' } %>
|
179
|
+
<%= f.error_message_on :default_country_id %>
|
180
|
+
<small class="form-text text-muted">
|
181
|
+
<%= Spree.t('store_form.default_country_help') %>
|
182
|
+
</small>
|
183
|
+
<% end %>
|
184
|
+
</div>
|
185
185
|
</div>
|
186
|
-
</div>
|
187
186
|
|
188
|
-
<div class="card mb-4">
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
</div>
|
194
|
-
<div class="card-body">
|
195
|
-
<div class="alert alert-warning col-12">
|
196
|
-
<%= Spree.t('store_form.social_help') %>
|
187
|
+
<div class="card mb-4">
|
188
|
+
<div class="card-header">
|
189
|
+
<h1 class="card-title mb-0 h5">
|
190
|
+
<%= Spree.t(:social) %>
|
191
|
+
</h1>
|
197
192
|
</div>
|
193
|
+
<div class="card-body">
|
194
|
+
<div class="alert alert-warning col-12">
|
195
|
+
<%= Spree.t('store_form.social_help') %>
|
196
|
+
</div>
|
198
197
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
198
|
+
<%= f.field_container :facebook do %>
|
199
|
+
<%= f.label :facebook, Spree.t(:facebook) %>
|
200
|
+
<div class="input-group mb-3">
|
201
|
+
<div class="input-group-prepend">
|
202
|
+
<span class="input-group-text" id="basic-addon3">https://facebook.com</span>
|
203
|
+
</div>
|
204
|
+
<%= f.text_field :facebook, class: 'form-control' %>
|
204
205
|
</div>
|
205
|
-
<%= f.
|
206
|
-
|
207
|
-
<%= f.
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
206
|
+
<%= f.error_message_on :facebook %>
|
207
|
+
<% end %>
|
208
|
+
<%= f.field_container :twitter do %>
|
209
|
+
<%= f.label :twitter, Spree.t(:twitter) %>
|
210
|
+
<div class="input-group mb-3">
|
211
|
+
<div class="input-group-prepend">
|
212
|
+
<span class="input-group-text" id="basic-addon3">https://twitter.com</span>
|
213
|
+
</div>
|
214
|
+
<%= f.text_field :twitter, class: 'form-control' %>
|
214
215
|
</div>
|
215
|
-
<%= f.
|
216
|
-
|
217
|
-
<%= f.
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
216
|
+
<%= f.error_message_on :twitter %>
|
217
|
+
<% end %>
|
218
|
+
<%= f.field_container :instagram do %>
|
219
|
+
<%= f.label :instagram, Spree.t(:instagram) %>
|
220
|
+
<div class="input-group mb-3">
|
221
|
+
<div class="input-group-prepend">
|
222
|
+
<span class="input-group-text" id="basic-addon3">https://instagram.com</span>
|
223
|
+
</div>
|
224
|
+
<%= f.text_field :instagram, class: 'form-control' %>
|
224
225
|
</div>
|
225
|
-
<%= f.
|
226
|
-
|
227
|
-
|
228
|
-
<% end %>
|
226
|
+
<%= f.error_message_on :instagram %>
|
227
|
+
<% end %>
|
228
|
+
</div>
|
229
229
|
</div>
|
230
|
-
</div>
|
231
230
|
|
232
|
-
<div class="card mb-4">
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
231
|
+
<div class="card mb-4">
|
232
|
+
<div class="card-header">
|
233
|
+
<h1 class="card-title mb-0 h5">
|
234
|
+
<%= Spree.t(:footer) %>
|
235
|
+
</h1>
|
236
|
+
</div>
|
237
|
+
<div class="card-body">
|
238
|
+
<div class="alert alert-warning col-12">
|
239
|
+
<%= Spree.t('store_form.footer_help') %>
|
240
|
+
</div>
|
241
|
+
|
242
|
+
<%= f.field_container :description do %>
|
243
|
+
<%= f.label :description, Spree.t(:description) %>
|
244
|
+
<%= f.text_area :description, class: 'form-control' %>
|
245
|
+
<%= f.error_message_on :description %>
|
246
|
+
<% end %>
|
247
|
+
<%= f.field_container :address do %>
|
248
|
+
<%= f.label :address, Spree.t(:address) %>
|
249
|
+
<%= f.text_area :address, class: 'form-control' %>
|
250
|
+
<%= f.error_message_on :address %>
|
251
|
+
<% end %>
|
252
|
+
<%= f.field_container :contact_phone do %>
|
253
|
+
<%= f.label :contact_phone, Spree.t(:contact_phone) %>
|
254
|
+
<%= f.text_field :contact_phone, class: 'form-control' %>
|
255
|
+
<%= f.error_message_on :contact_phone %>
|
256
|
+
<% end %>
|
257
|
+
</div>
|
237
258
|
</div>
|
238
|
-
<div class="card-
|
239
|
-
<div class="
|
240
|
-
|
259
|
+
<div class="card mb-4">
|
260
|
+
<div class="card-header">
|
261
|
+
<h1 class="card-title mb-0 h5">
|
262
|
+
<%= Spree.t('admin.store.digital_settings.digital_asset_settings') %>
|
263
|
+
</h1>
|
241
264
|
</div>
|
265
|
+
<div class="card-body">
|
266
|
+
<div class="row pb-0">
|
267
|
+
<div class="col-12 col-md-4">
|
268
|
+
<%= f.field_container :digital_asset_authorized_clicks do %>
|
269
|
+
<%= f.label :digital_asset_authorized_clicks, (raw Spree.t('admin.store.digital_settings.digital_asset_authorized_clicks.authorized_clicks') + required_span_tag) %>
|
270
|
+
<%= f.text_field :digital_asset_authorized_clicks, class: 'form-control', required: true %>
|
271
|
+
<%= f.error_message_on :digital_asset_authorized_clicks %>
|
272
|
+
<% end %>
|
273
|
+
<small class="form-text text-muted">
|
274
|
+
<%= Spree.t('admin.store.digital_settings.digital_asset_authorized_clicks.info') %>
|
275
|
+
</small>
|
276
|
+
<%= f.field_container :limit_digital_download_count, class: ['custom-control', 'custom-checkbox', 'my-4'] do %>
|
277
|
+
<%= f.check_box :limit_digital_download_count, class: 'custom-control-input' %>
|
278
|
+
<%= f.label :limit_digital_download_count, Spree.t('admin.store.digital_settings.limit_digital_download_count'), class: 'custom-control-label' %>
|
279
|
+
<%= f.error_message_on :limit_digital_download_count %>
|
280
|
+
<% end %>
|
281
|
+
</div>
|
282
|
+
|
283
|
+
<div class="col-12 col-md-4">
|
284
|
+
<%= f.field_container :digital_asset_authorized_days do %>
|
285
|
+
<%= f.label :digital_asset_authorized_days, (raw Spree.t('admin.store.digital_settings.digital_asset_authorized_days.authorized_days') + required_span_tag) %>
|
286
|
+
<%= f.text_field :digital_asset_authorized_days, class: 'form-control', required: true %>
|
287
|
+
<%= f.error_message_on :digital_asset_authorized_days %>
|
288
|
+
<% end %>
|
289
|
+
<small class="form-text text-muted">
|
290
|
+
<%= Spree.t('admin.store.digital_settings.digital_asset_authorized_days.info') %>
|
291
|
+
</small>
|
292
|
+
<%= f.field_container :limit_digital_download_days, class: ['custom-control', 'custom-checkbox', 'my-4'] do %>
|
293
|
+
<%= f.check_box :limit_digital_download_days, class: 'custom-control-input' %>
|
294
|
+
<%= f.label :limit_digital_download_days, Spree.t('admin.store.digital_settings.limit_digital_download_days'), class: 'custom-control-label' %>
|
295
|
+
<%= f.error_message_on :limit_digital_download_days %>
|
296
|
+
<% end %>
|
297
|
+
</div>
|
242
298
|
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
<%= f.text_field :contact_phone, class: 'form-control' %>
|
256
|
-
<%= f.error_message_on :contact_phone %>
|
257
|
-
<% end %>
|
299
|
+
<div class="col-12 col-md-4">
|
300
|
+
<%= f.field_container :digital_asset_link_expire_time do %>
|
301
|
+
<%= f.label :digital_asset_link_expire_time, (raw Spree.t('admin.store.digital_settings.digital_asset_link_expire_time.download_link_expire_time') + required_span_tag) %>
|
302
|
+
<%= f.text_field :digital_asset_link_expire_time, class: 'form-control', required: true %>
|
303
|
+
<%= f.error_message_on :digital_asset_link_expire_time %>
|
304
|
+
<% end %>
|
305
|
+
<small class="form-text text-muted">
|
306
|
+
<%= Spree.t('admin.store.digital_settings.digital_asset_link_expire_time.link_expire_time') %>
|
307
|
+
</small>
|
308
|
+
</div>
|
309
|
+
</div>
|
310
|
+
</div>
|
258
311
|
</div>
|
259
312
|
</div>
|