solidus_admin 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +23 -4
- data/README.md +6 -1
- data/Rakefile +15 -15
- data/app/assets/builds/solidus_admin/tailwind.css +722 -45
- data/app/assets/images/solidus_admin/remixicon.license.txt +196 -0
- data/app/assets/images/solidus_admin/remixicon.symbol.svg +4 -4
- data/app/blueprints/solidus_admin/state_blueprint.rb +13 -0
- data/app/components/concerns/solidus_admin/slotable_default.rb +42 -0
- data/app/components/solidus_admin/adjustment_reasons/edit/component.html.erb +6 -15
- data/app/components/solidus_admin/adjustment_reasons/edit/component.yml +0 -1
- data/app/components/solidus_admin/adjustment_reasons/index/component.rb +13 -13
- data/app/components/solidus_admin/adjustment_reasons/new/component.html.erb +6 -15
- data/app/components/solidus_admin/adjustment_reasons/new/component.yml +0 -1
- data/app/components/solidus_admin/base_component.rb +7 -3
- data/app/components/solidus_admin/layout/confirm/component.html.erb +18 -0
- data/app/components/solidus_admin/layout/confirm/component.js +21 -0
- data/app/components/solidus_admin/layout/confirm/component.rb +26 -0
- data/app/components/solidus_admin/layout/confirm/component.yml +4 -0
- data/app/components/solidus_admin/layout/flashes/alerts/component.html.erb +7 -0
- data/app/components/solidus_admin/layout/flashes/alerts/component.rb +19 -0
- data/app/components/solidus_admin/layout/flashes/component.html.erb +5 -0
- data/app/components/solidus_admin/layout/flashes/component.rb +4 -0
- data/app/components/solidus_admin/layout/flashes/toasts/component.html.erb +5 -0
- data/app/components/solidus_admin/layout/flashes/toasts/component.rb +9 -0
- data/app/components/solidus_admin/layout/navigation/account/component.html.erb +12 -1
- data/app/components/solidus_admin/layout/navigation/account/component.rb +4 -4
- data/app/components/solidus_admin/layout/page_helpers.rb +3 -9
- data/app/components/solidus_admin/layout/skip_link/component.rb +3 -3
- data/app/components/solidus_admin/option_types/edit/component.html.erb +44 -0
- data/app/components/solidus_admin/option_types/edit/component.rb +5 -0
- data/app/components/solidus_admin/option_types/edit/component.yml +10 -0
- data/app/components/solidus_admin/option_types/index/component.rb +22 -22
- data/app/components/solidus_admin/option_types/new/component.html.erb +16 -0
- data/app/components/solidus_admin/option_types/new/component.rb +4 -0
- data/app/components/solidus_admin/option_types/new/component.yml +4 -0
- data/app/components/solidus_admin/option_values/edit/component.html.erb +16 -0
- data/app/components/solidus_admin/option_values/edit/component.rb +4 -0
- data/app/components/solidus_admin/option_values/edit/component.yml +4 -0
- data/app/components/solidus_admin/option_values/new/component.html.erb +16 -0
- data/app/components/solidus_admin/option_values/new/component.rb +7 -0
- data/app/components/solidus_admin/option_values/new/component.yml +4 -0
- data/app/components/solidus_admin/option_values/table/component.rb +53 -0
- data/app/components/solidus_admin/option_values/table/component.yml +3 -0
- data/app/components/solidus_admin/orders/cart/component.html.erb +5 -7
- data/app/components/solidus_admin/orders/cart/result/component.html.erb +2 -2
- data/app/components/solidus_admin/orders/index/component.rb +26 -26
- data/app/components/solidus_admin/orders/show/address/component.html.erb +8 -20
- data/app/components/solidus_admin/orders/show/address/component.rb +7 -7
- data/app/components/solidus_admin/orders/show/address/component.yml +0 -1
- data/app/components/solidus_admin/orders/show/adjustments/index/adjustable/spree_shipment/component.rb +1 -1
- data/app/components/solidus_admin/orders/show/adjustments/index/component.rb +24 -21
- data/app/components/solidus_admin/orders/show/component.html.erb +2 -2
- data/app/components/solidus_admin/orders/show/component.rb +1 -1
- data/app/components/solidus_admin/orders/show/component.yml +0 -3
- data/app/components/solidus_admin/orders/show/customer_search/result/component.html.erb +2 -2
- data/app/components/solidus_admin/orders/show/email/component.html.erb +2 -2
- data/app/components/solidus_admin/payment_methods/edit/component.html.erb +13 -0
- data/app/components/solidus_admin/payment_methods/edit/component.rb +7 -0
- data/app/components/solidus_admin/payment_methods/edit/component.yml +2 -0
- data/app/components/solidus_admin/payment_methods/form/component.html.erb +29 -0
- data/app/components/solidus_admin/payment_methods/form/component.rb +34 -0
- data/app/components/solidus_admin/payment_methods/form/component.yml +15 -0
- data/app/components/solidus_admin/payment_methods/index/component.rb +24 -23
- data/app/components/solidus_admin/payment_methods/new/component.html.erb +12 -0
- data/app/components/solidus_admin/payment_methods/new/component.rb +7 -0
- data/app/components/solidus_admin/payment_methods/new/component.yml +2 -0
- data/app/components/solidus_admin/products/index/component.rb +26 -26
- data/app/components/solidus_admin/products/show/categories/new/component.html.erb +17 -0
- data/app/components/solidus_admin/products/show/categories/new/component.rb +17 -0
- data/app/components/solidus_admin/products/show/categories/new/component.yml +5 -0
- data/app/components/solidus_admin/products/show/component.html.erb +90 -66
- data/app/components/solidus_admin/products/show/component.rb +2 -2
- data/app/components/solidus_admin/products/show/component.yml +23 -11
- data/app/components/solidus_admin/products/status/component.rb +1 -1
- data/app/components/solidus_admin/products/stock/component.rb +7 -7
- data/app/components/solidus_admin/properties/edit/component.html.erb +5 -5
- data/app/components/solidus_admin/properties/index/component.rb +13 -13
- data/app/components/solidus_admin/properties/new/component.html.erb +5 -5
- data/app/components/solidus_admin/refund_reasons/edit/component.html.erb +6 -15
- data/app/components/solidus_admin/refund_reasons/edit/component.yml +0 -1
- data/app/components/solidus_admin/refund_reasons/index/component.rb +13 -13
- data/app/components/solidus_admin/refund_reasons/new/component.html.erb +6 -14
- data/app/components/solidus_admin/refund_reasons/new/component.yml +0 -1
- data/app/components/solidus_admin/refunds_and_returns/component.rb +7 -7
- data/app/components/solidus_admin/reimbursement_types/index/component.rb +2 -2
- data/app/components/solidus_admin/return_reasons/edit/component.html.erb +5 -14
- data/app/components/solidus_admin/return_reasons/index/component.rb +11 -11
- data/app/components/solidus_admin/return_reasons/new/component.html.erb +5 -14
- data/app/components/solidus_admin/roles/edit/component.html.erb +12 -12
- data/app/components/solidus_admin/roles/edit/component.yml +0 -1
- data/app/components/solidus_admin/roles/index/component.rb +12 -12
- data/app/components/solidus_admin/roles/new/component.html.erb +12 -12
- data/app/components/solidus_admin/roles/new/component.yml +0 -1
- data/app/components/solidus_admin/shipping/component.rb +5 -5
- data/app/components/solidus_admin/shipping_categories/edit/component.html.erb +4 -4
- data/app/components/solidus_admin/shipping_categories/edit/component.yml +0 -1
- data/app/components/solidus_admin/shipping_categories/index/component.rb +9 -9
- data/app/components/solidus_admin/shipping_categories/new/component.html.erb +4 -4
- data/app/components/solidus_admin/shipping_categories/new/component.yml +0 -1
- data/app/components/solidus_admin/shipping_methods/index/component.rb +10 -10
- data/app/components/solidus_admin/stock_items/edit/component.html.erb +5 -8
- data/app/components/solidus_admin/stock_items/edit/component.rb +2 -2
- data/app/components/solidus_admin/stock_items/index/component.rb +25 -25
- data/app/components/solidus_admin/stock_locations/edit/component.html.erb +16 -0
- data/app/components/solidus_admin/stock_locations/edit/component.rb +5 -0
- data/app/components/solidus_admin/stock_locations/edit/component.yml +2 -0
- data/app/components/solidus_admin/stock_locations/form/component.html.erb +65 -0
- data/app/components/solidus_admin/stock_locations/form/component.rb +11 -0
- data/app/components/solidus_admin/stock_locations/form/component.yml +19 -0
- data/app/components/solidus_admin/stock_locations/index/component.rb +94 -47
- data/app/components/solidus_admin/stock_locations/new/component.html.erb +16 -0
- data/app/components/solidus_admin/stock_locations/new/component.rb +16 -0
- data/app/components/solidus_admin/stock_locations/new/component.yml +2 -0
- data/app/components/solidus_admin/store_credit_reasons/edit/component.html.erb +5 -14
- data/app/components/solidus_admin/store_credit_reasons/edit/component.yml +0 -1
- data/app/components/solidus_admin/store_credit_reasons/index/component.rb +11 -11
- data/app/components/solidus_admin/store_credit_reasons/new/component.html.erb +5 -14
- data/app/components/solidus_admin/store_credit_reasons/new/component.yml +0 -1
- data/app/components/solidus_admin/stores/edit/component.html.erb +27 -0
- data/app/components/solidus_admin/stores/edit/component.rb +5 -0
- data/app/components/solidus_admin/stores/form/component.html.erb +102 -0
- data/app/components/solidus_admin/stores/form/component.rb +27 -0
- data/app/components/solidus_admin/stores/form/component.yml +17 -0
- data/app/components/solidus_admin/stores/index/component.rb +51 -22
- data/app/components/solidus_admin/stores/new/component.html.erb +16 -0
- data/app/components/solidus_admin/stores/new/component.rb +5 -0
- data/app/components/solidus_admin/stores/new/component.yml +2 -0
- data/app/components/solidus_admin/tax_categories/edit/component.html.erb +7 -15
- data/app/components/solidus_admin/tax_categories/edit/component.yml +0 -1
- data/app/components/solidus_admin/tax_categories/index/component.rb +17 -17
- data/app/components/solidus_admin/tax_categories/new/component.html.erb +7 -15
- data/app/components/solidus_admin/tax_categories/new/component.yml +0 -1
- data/app/components/solidus_admin/tax_rates/edit/component.html.erb +12 -0
- data/app/components/solidus_admin/tax_rates/edit/component.rb +5 -0
- data/app/components/solidus_admin/tax_rates/edit/component.yml +4 -0
- data/app/components/solidus_admin/tax_rates/form/component.html.erb +25 -0
- data/app/components/solidus_admin/tax_rates/form/component.rb +29 -0
- data/app/components/solidus_admin/tax_rates/form/component.yml +9 -0
- data/app/components/solidus_admin/tax_rates/index/component.rb +38 -20
- data/app/components/solidus_admin/tax_rates/new/component.html.erb +12 -0
- data/app/components/solidus_admin/tax_rates/new/component.rb +5 -0
- data/app/components/solidus_admin/tax_rates/new/component.yml +4 -0
- data/app/components/solidus_admin/taxes/component.rb +4 -4
- data/app/components/solidus_admin/taxonomies/index/component.rb +7 -7
- data/app/components/solidus_admin/turbo/target_frame/component.html.erb +5 -0
- data/app/components/solidus_admin/turbo/target_frame/component.rb +8 -0
- data/app/components/solidus_admin/ui/alert/component.html.erb +35 -0
- data/app/components/solidus_admin/ui/alert/component.rb +51 -0
- data/app/components/solidus_admin/ui/alert/component.yml +8 -0
- data/app/components/solidus_admin/ui/badge/component.rb +11 -11
- data/app/components/solidus_admin/ui/button/component.rb +84 -27
- data/app/components/solidus_admin/ui/button/component.yml +10 -0
- data/app/components/solidus_admin/ui/checkbox/component.rb +42 -0
- data/app/components/solidus_admin/ui/dropdown/component.rb +3 -3
- data/app/components/solidus_admin/ui/forms/address/component.html.erb +1 -48
- data/app/components/solidus_admin/ui/forms/address/component.rb +29 -6
- data/app/components/solidus_admin/ui/forms/address/fields/city_and_zipcode/component.html.erb +4 -0
- data/app/components/solidus_admin/ui/forms/address/fields/city_and_zipcode/component.rb +8 -0
- data/app/components/solidus_admin/ui/forms/address/fields/country_and_state/component.html.erb +39 -0
- data/app/components/solidus_admin/ui/forms/address/{component.js → fields/country_and_state/component.js} +2 -0
- data/app/components/solidus_admin/ui/forms/address/fields/country_and_state/component.rb +15 -0
- data/app/components/solidus_admin/ui/forms/address/fields/reverse_charge_fields/component.html.erb +7 -0
- data/app/components/solidus_admin/ui/forms/address/fields/reverse_charge_fields/component.rb +12 -0
- data/app/components/solidus_admin/ui/forms/address/fieldsets/base.rb +54 -0
- data/app/components/solidus_admin/ui/forms/address/fieldsets/contact/component.rb +16 -0
- data/app/components/solidus_admin/ui/forms/address/fieldsets/contact_info/component.rb +10 -0
- data/app/components/solidus_admin/ui/forms/address/fieldsets/location/component.rb +14 -0
- data/app/components/solidus_admin/ui/forms/checkbox/component.html.erb +14 -0
- data/app/components/solidus_admin/ui/forms/checkbox/component.rb +24 -31
- data/app/components/solidus_admin/ui/forms/field/component.html.erb +4 -4
- data/app/components/solidus_admin/ui/forms/field/component.rb +14 -18
- data/app/components/solidus_admin/ui/forms/input/component.rb +9 -18
- data/app/components/solidus_admin/ui/forms/search/result/component.rb +2 -2
- data/app/components/solidus_admin/ui/forms/select/component.html.erb +21 -0
- data/app/components/solidus_admin/ui/forms/select/component.rb +157 -0
- data/app/components/solidus_admin/ui/forms/switch/component.rb +4 -4
- data/app/components/solidus_admin/ui/icon/component.rb +4 -4
- data/app/components/solidus_admin/ui/icon/names.txt +973 -238
- data/app/components/solidus_admin/ui/modal/component.html.erb +2 -4
- data/app/components/solidus_admin/ui/modal/component.js +7 -1
- data/app/components/solidus_admin/ui/modal/component.rb +2 -2
- data/app/components/solidus_admin/ui/pages/index/component.rb +50 -19
- data/app/components/solidus_admin/ui/panel/component.rb +5 -9
- data/app/components/solidus_admin/ui/radio/component.rb +29 -0
- data/app/components/solidus_admin/ui/tab/component.rb +4 -4
- data/app/components/solidus_admin/ui/table/component.html.erb +11 -10
- data/app/components/solidus_admin/ui/table/component.js +18 -26
- data/app/components/solidus_admin/ui/table/component.rb +24 -18
- data/app/components/solidus_admin/ui/table/component.yml +1 -0
- data/app/components/solidus_admin/ui/table/ransack_filter/component.html.erb +1 -1
- data/app/components/solidus_admin/ui/table/ransack_filter/component.rb +7 -7
- data/app/components/solidus_admin/ui/thumbnail/component.rb +5 -5
- data/app/components/solidus_admin/ui/toast/component.html.erb +6 -6
- data/app/components/solidus_admin/ui/toast/component.rb +1 -1
- data/app/components/solidus_admin/ui/toggletip/component.rb +1 -1
- data/app/components/solidus_admin/users/addresses/component.html.erb +3 -5
- data/app/components/solidus_admin/users/addresses/component.rb +0 -30
- data/app/components/solidus_admin/users/addresses/component.yml +0 -7
- data/app/components/solidus_admin/users/edit/api_access/component.html.erb +6 -4
- data/app/components/solidus_admin/users/edit/api_access/component.yml +8 -2
- data/app/components/solidus_admin/users/edit/component.html.erb +15 -12
- data/app/components/solidus_admin/users/edit/component.rb +1 -33
- data/app/components/solidus_admin/users/edit/component.yml +0 -7
- data/app/components/solidus_admin/users/edit/tabs/component.rb +46 -0
- data/app/components/solidus_admin/users/edit/tabs/component.yml +6 -0
- data/app/components/solidus_admin/users/index/component.rb +20 -20
- data/app/components/solidus_admin/users/items/component.html.erb +1 -3
- data/app/components/solidus_admin/users/items/component.rb +18 -51
- data/app/components/solidus_admin/users/items/component.yml +0 -7
- data/app/components/solidus_admin/users/orders/component.html.erb +1 -3
- data/app/components/solidus_admin/users/orders/component.rb +9 -39
- data/app/components/solidus_admin/users/orders/component.yml +0 -6
- data/app/components/solidus_admin/users/store_credits/edit_amount/component.html.erb +7 -8
- data/app/components/solidus_admin/users/store_credits/edit_amount/component.rb +0 -5
- data/app/components/solidus_admin/users/store_credits/edit_amount/component.yml +0 -1
- data/app/components/solidus_admin/users/store_credits/edit_memo/component.html.erb +4 -4
- data/app/components/solidus_admin/users/store_credits/edit_memo/component.yml +0 -1
- data/app/components/solidus_admin/users/store_credits/edit_validity/component.html.erb +6 -7
- data/app/components/solidus_admin/users/store_credits/edit_validity/component.rb +0 -5
- data/app/components/solidus_admin/users/store_credits/index/component.html.erb +4 -6
- data/app/components/solidus_admin/users/store_credits/index/component.rb +10 -40
- data/app/components/solidus_admin/users/store_credits/index/component.yml +0 -6
- data/app/components/solidus_admin/users/store_credits/new/component.html.erb +12 -13
- data/app/components/solidus_admin/users/store_credits/new/component.rb +0 -9
- data/app/components/solidus_admin/users/store_credits/new/component.yml +0 -1
- data/app/components/solidus_admin/users/store_credits/show/component.html.erb +5 -7
- data/app/components/solidus_admin/users/store_credits/show/component.rb +8 -38
- data/app/components/solidus_admin/users/store_credits/show/component.yml +0 -6
- data/app/components/solidus_admin/users_and_roles/component.rb +4 -4
- data/app/components/solidus_admin/zones/edit/component.html.erb +1 -0
- data/app/components/solidus_admin/zones/edit/component.rb +4 -0
- data/app/components/solidus_admin/zones/form/component.html.erb +47 -0
- data/app/components/solidus_admin/zones/form/component.js +32 -0
- data/app/components/solidus_admin/zones/form/component.rb +23 -0
- data/app/components/solidus_admin/zones/form/component.yml +7 -0
- data/app/components/solidus_admin/zones/index/component.rb +57 -18
- data/app/components/solidus_admin/zones/new/component.html.erb +1 -0
- data/app/components/solidus_admin/zones/new/component.rb +4 -0
- data/app/controllers/concerns/solidus_admin/moveable.rb +31 -0
- data/app/controllers/solidus_admin/addresses_controller.rb +9 -11
- data/app/controllers/solidus_admin/adjustments_controller.rb +5 -6
- data/app/controllers/solidus_admin/base_controller.rb +8 -7
- data/app/controllers/solidus_admin/controller_helpers/authorization.rb +1 -1
- data/app/controllers/solidus_admin/controller_helpers/locale.rb +1 -1
- data/app/controllers/solidus_admin/controller_helpers/pagination.rb +37 -0
- data/app/controllers/solidus_admin/controller_helpers/search.rb +5 -5
- data/app/controllers/solidus_admin/controller_helpers/theme.rb +2 -2
- data/app/controllers/solidus_admin/customers_controller.rb +3 -3
- data/app/controllers/solidus_admin/line_items_controller.rb +3 -3
- data/app/controllers/solidus_admin/option_types_controller.rb +11 -32
- data/app/controllers/solidus_admin/option_values_controller.rb +54 -0
- data/app/controllers/solidus_admin/orders_controller.rb +25 -19
- data/app/controllers/solidus_admin/payment_methods_controller.rb +23 -28
- data/app/controllers/solidus_admin/product_option_types_controller.rb +5 -0
- data/app/controllers/solidus_admin/product_taxons_controller.rb +58 -0
- data/app/controllers/solidus_admin/products_controller.rb +24 -28
- data/app/controllers/solidus_admin/reimbursement_types_controller.rb +3 -3
- data/app/controllers/solidus_admin/resources_controller.rb +59 -20
- data/app/controllers/solidus_admin/shipping_methods_controller.rb +4 -4
- data/app/controllers/solidus_admin/states_controller.rb +30 -0
- data/app/controllers/solidus_admin/stock_items_controller.rb +11 -6
- data/app/controllers/solidus_admin/stock_locations_controller.rb +25 -26
- data/app/controllers/solidus_admin/store_credits_controller.rb +9 -9
- data/app/controllers/solidus_admin/stores_controller.rb +43 -9
- data/app/controllers/solidus_admin/tax_rates_controller.rb +9 -22
- data/app/controllers/solidus_admin/taxonomies_controller.rb +5 -21
- data/app/controllers/solidus_admin/users_controller.rb +16 -16
- data/app/controllers/solidus_admin/zones_controller.rb +6 -26
- data/app/helpers/solidus_admin/flash_helper.rb +14 -0
- data/app/helpers/solidus_admin/last_login_helper.rb +2 -2
- data/app/helpers/solidus_admin/permission_sets_helper.rb +3 -3
- data/app/helpers/solidus_admin/solidus_form_helper.rb +9 -0
- data/app/helpers/solidus_admin/stimulus_helper.rb +29 -0
- data/app/helpers/solidus_admin/void_elements_helper.rb +1 -1
- data/app/javascript/solidus_admin/application.js +10 -1
- data/app/javascript/solidus_admin/confirm_modal.js +24 -0
- data/app/javascript/solidus_admin/controllers/custom_validity_controller.js +12 -0
- data/app/javascript/solidus_admin/controllers/sortable_controller.js +9 -2
- data/app/javascript/solidus_admin/tom-select/plugins/patch_scroll.js +19 -0
- data/app/javascript/solidus_admin/tom-select/plugins/remote_with_pagination.js +67 -0
- data/app/javascript/solidus_admin/tom-select/plugins/stash_on_search.js +68 -0
- data/app/javascript/solidus_admin/tom-select/tom-select.js +11 -0
- data/app/javascript/solidus_admin/utils.js +40 -0
- data/app/javascript/solidus_admin/web_components/solidus_select.js +90 -0
- data/app/javascript/vendor/custom_elements.js +3 -0
- data/app/lib/solidus_admin/form_builder.rb +58 -0
- data/app/views/layouts/solidus_admin/application.html.erb +6 -8
- data/app/views/layouts/solidus_admin/preview.html.erb +1 -1
- data/app/views/solidus_admin/option_values/create.turbo_stream.erb +3 -0
- data/app/views/solidus_admin/option_values/destroy.turbo_stream.erb +3 -0
- data/app/views/solidus_admin/option_values/update.turbo_stream.erb +3 -0
- data/config/importmap.rb +9 -0
- data/config/initializers/view_component.rb +1 -1
- data/config/locales/option_types.en.yml +5 -1
- data/config/locales/option_values.en.yml +9 -0
- data/config/locales/payment_methods.en.yml +5 -1
- data/config/locales/product_taxons.en.yml +6 -0
- data/config/locales/products.en.yml +2 -0
- data/config/locales/solidus_select.yml +6 -0
- data/config/locales/stock_locations.en.yml +4 -0
- data/config/locales/stores.en.yml +22 -0
- data/config/locales/tax_rates.en.yml +4 -0
- data/config/locales/zones.en.yml +4 -0
- data/config/routes.rb +21 -9
- data/config/tailwind.config.js +6 -2
- data/docs/components.md +2 -2
- data/docs/index_pages.md +11 -5
- data/docs/stimulusjs.md +1 -1
- data/eslint.config.mjs +25 -0
- data/lib/generators/solidus_admin/component/component_generator.rb +10 -6
- data/lib/generators/solidus_admin/install/install_generator.rb +24 -5
- data/lib/generators/solidus_admin/install/templates/config/initializers/solidus_admin.rb.tt +6 -0
- data/lib/solidus_admin/admin_resources.rb +1 -1
- data/lib/solidus_admin/configuration.rb +14 -14
- data/lib/solidus_admin/engine.rb +3 -2
- data/lib/solidus_admin/importmap.rb +1 -1
- data/lib/solidus_admin/menu_item.rb +1 -1
- data/lib/solidus_admin/preview.rb +1 -0
- data/lib/solidus_admin/testing_support/admin_assets.rb +1 -1
- data/lib/solidus_admin/testing_support/feature_helpers.rb +77 -3
- data/lib/solidus_admin/testing_support/shared_examples/crud_resource_requests.rb +43 -36
- data/lib/solidus_admin/testing_support/shared_examples/moveable.rb +48 -0
- data/lib/solidus_admin/testing_support/shared_examples/promotion_categories_features.rb +5 -11
- data/lib/solidus_admin/version.rb +1 -1
- data/lib/tasks/tailwind.rake +1 -1
- data/solidus_admin.gemspec +24 -21
- metadata +173 -29
- data/.eslintrc.json +0 -7
- data/app/components/solidus_admin/products/show/component.js +0 -9
- data/app/components/solidus_admin/ui/forms/input/component.js +0 -15
- data/app/components/solidus_admin/users/edit/api_access/component.js +0 -9
- data/app/javascript/solidus_admin/controllers/confirm_controller.js +0 -21
- data/lib/solidus_admin/testing_support/shared_examples/bulk_delete_resources.rb +0 -20
- /data/app/{components/solidus_admin/ui/toast/component.js → javascript/solidus_admin/controllers/alert_animation_controller.js} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module SolidusAdmin
|
|
4
|
-
class PaymentMethodsController < SolidusAdmin::
|
|
5
|
-
include SolidusAdmin::
|
|
4
|
+
class PaymentMethodsController < SolidusAdmin::ResourcesController
|
|
5
|
+
include SolidusAdmin::Moveable
|
|
6
6
|
|
|
7
|
-
before_action :
|
|
7
|
+
before_action :initialize_resource, only: [:new]
|
|
8
|
+
before_action :validate_type, only: [:create, :update]
|
|
8
9
|
|
|
9
10
|
search_scope(:all)
|
|
10
11
|
search_scope(:active, default: true, &:active)
|
|
@@ -12,41 +13,35 @@ module SolidusAdmin
|
|
|
12
13
|
search_scope(:storefront, &:available_to_users)
|
|
13
14
|
search_scope(:admin, &:available_to_admin)
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
payment_methods = apply_search_to(
|
|
17
|
-
Spree::PaymentMethod.ordered_by_position,
|
|
18
|
-
param: :q,
|
|
19
|
-
)
|
|
16
|
+
private
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
def resource_class = Spree::PaymentMethod
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
format.html { render component('payment_methods/index').new(page: @page) }
|
|
25
|
-
end
|
|
26
|
-
end
|
|
20
|
+
def resources_collection = resource_class.all
|
|
27
21
|
|
|
28
|
-
def
|
|
29
|
-
@payment_method.insert_at(params[:position].to_i)
|
|
22
|
+
def resources_sorting_options = {position: :asc}
|
|
30
23
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
def permitted_resource_params
|
|
25
|
+
params.require(:payment_method).permit(:name, :description, :auto_capture, :type, :preference_source,
|
|
26
|
+
:preferred_server, :preferred_test_mode, :active, :available_to_admin, :available_to_users, store_ids: [])
|
|
34
27
|
end
|
|
35
28
|
|
|
36
|
-
def
|
|
37
|
-
@
|
|
38
|
-
|
|
39
|
-
Spree::PaymentMethod.transaction { @payment_methods.destroy_all }
|
|
29
|
+
def initialize_resource
|
|
30
|
+
@resource = resource_class.new(stores: [Spree::Store.default])
|
|
31
|
+
end
|
|
40
32
|
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
def available_types
|
|
34
|
+
Rails.application.config.spree.payment_methods.map(&:name)
|
|
43
35
|
end
|
|
44
36
|
|
|
45
|
-
|
|
37
|
+
def validate_type
|
|
38
|
+
unless available_types.include?(params[:payment_method][:type])
|
|
39
|
+
@resource ||= resource_class.new(permitted_resource_params.except(:type))
|
|
40
|
+
@resource.errors.add(:type, :invalid)
|
|
46
41
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
page_component = @resource.persisted? ? edit_component.new(@resource) : new_component.new(@resource)
|
|
43
|
+
render_resource_form_with_errors(page_component)
|
|
44
|
+
end
|
|
50
45
|
end
|
|
51
46
|
end
|
|
52
47
|
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SolidusAdmin
|
|
4
|
+
class ProductTaxonsController < SolidusAdmin::BaseController
|
|
5
|
+
before_action :load_product, only: [:new, :create]
|
|
6
|
+
|
|
7
|
+
def new
|
|
8
|
+
render component("products/show/categories/new").new(product: @product)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create
|
|
12
|
+
init_taxon
|
|
13
|
+
root_taxon! if @taxon.root?
|
|
14
|
+
@product.taxons << @taxon
|
|
15
|
+
|
|
16
|
+
respond_to do |format|
|
|
17
|
+
format.html { redirect_to @product, status: :see_other, notice: t(".success") }
|
|
18
|
+
end
|
|
19
|
+
rescue ActiveRecord::RecordInvalid
|
|
20
|
+
component = component("products/show/categories/new").new(product: @product, taxon: @taxon)
|
|
21
|
+
respond_to do |format|
|
|
22
|
+
format.html { render component, status: :unprocessable_entity }
|
|
23
|
+
format.turbo_stream do
|
|
24
|
+
render turbo_stream: turbo_stream.replace(:new_product_category, component),
|
|
25
|
+
status: :unprocessable_entity
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def load_product
|
|
33
|
+
@product = Spree::Product.friendly.find(params[:product_id])
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def init_taxon
|
|
37
|
+
@taxon = Spree::Taxon.new(category_params)
|
|
38
|
+
@taxon.taxonomy_id = @taxon.parent&.taxonomy_id
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Parent-less taxons must be associated with a taxonomy of the same name; it's guaranteed that in order to create a
|
|
42
|
+
# new parent-less taxon we need to create a new taxonomy.
|
|
43
|
+
def root_taxon!
|
|
44
|
+
# if Taxonomy.create! fails on the next step, we need validation errors on taxon object
|
|
45
|
+
# to display them on the form
|
|
46
|
+
@taxon.validate
|
|
47
|
+
Spree::Taxonomy.create!(name: @taxon.name, root: @taxon)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def authorization_subject
|
|
51
|
+
Spree::Classification
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def category_params
|
|
55
|
+
params.require(:taxon).permit(:name, :parent_id, :description)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -8,24 +8,25 @@ module SolidusAdmin
|
|
|
8
8
|
search_scope(:deleted) { _1.with_discarded.discarded }
|
|
9
9
|
search_scope(:discontinued) { _1.where(discontinue_on: ...Time.current) }
|
|
10
10
|
search_scope(:available) { _1.available }
|
|
11
|
-
search_scope(:in_stock) { _1.where(id: Spree::Variant.in_stock.
|
|
12
|
-
search_scope(:out_of_stock) { _1.where.not(id: Spree::Variant.in_stock.
|
|
13
|
-
|
|
14
|
-
before_action :split_params, only: [:update]
|
|
11
|
+
search_scope(:in_stock) { _1.where(id: Spree::Variant.in_stock.select(:product_id)) }
|
|
12
|
+
search_scope(:out_of_stock) { _1.where.not(id: Spree::Variant.in_stock.select(:product_id)) }
|
|
15
13
|
|
|
16
14
|
def index
|
|
17
15
|
products = apply_search_to(
|
|
18
|
-
Spree::Product.includes(
|
|
16
|
+
Spree::Product.includes(
|
|
17
|
+
:variant_images,
|
|
18
|
+
master: :prices,
|
|
19
|
+
variants: :prices,
|
|
20
|
+
variants_including_master: {stock_items: :stock_location}
|
|
21
|
+
),
|
|
19
22
|
param: :q,
|
|
23
|
+
distinct: false
|
|
20
24
|
)
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
products,
|
|
24
|
-
ordered_by: { updated_at: :desc, id: :desc },
|
|
25
|
-
)
|
|
26
|
+
@page = paginate(products, ordered_by: {name: :asc})
|
|
26
27
|
|
|
27
28
|
respond_to do |format|
|
|
28
|
-
format.html { render component(
|
|
29
|
+
format.html { render component("products/index").new(page: @page) }
|
|
29
30
|
end
|
|
30
31
|
end
|
|
31
32
|
|
|
@@ -37,25 +38,21 @@ module SolidusAdmin
|
|
|
37
38
|
@product = Spree::Product.with_discarded.friendly.find(params[:id])
|
|
38
39
|
|
|
39
40
|
respond_to do |format|
|
|
40
|
-
format.html { render component(
|
|
41
|
+
format.html { render component("products/show").new(product: @product) }
|
|
41
42
|
end
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
def update
|
|
45
46
|
@product = Spree::Product.friendly.find(params[:id])
|
|
46
47
|
|
|
47
|
-
if @product.update(
|
|
48
|
-
flash[:success] = t(
|
|
49
|
-
Spree::Product.model_name.human,
|
|
50
|
-
@product.name.inspect,
|
|
51
|
-
].join(' '))
|
|
52
|
-
|
|
48
|
+
if @product.update(product_params)
|
|
49
|
+
flash[:success] = t(".success")
|
|
53
50
|
redirect_to action: :show, status: :see_other
|
|
54
51
|
else
|
|
55
52
|
flash.now[:error] = @product.errors.full_messages.join(", ")
|
|
56
53
|
|
|
57
54
|
respond_to do |format|
|
|
58
|
-
format.html { render component(
|
|
55
|
+
format.html { render component("products/show").new(product: @product), status: :unprocessable_entity }
|
|
59
56
|
end
|
|
60
57
|
end
|
|
61
58
|
end
|
|
@@ -67,7 +64,7 @@ module SolidusAdmin
|
|
|
67
64
|
@products.discard_all
|
|
68
65
|
end
|
|
69
66
|
|
|
70
|
-
flash[:notice] = t(
|
|
67
|
+
flash[:notice] = t(".success")
|
|
71
68
|
redirect_to products_path, status: :see_other
|
|
72
69
|
end
|
|
73
70
|
|
|
@@ -79,7 +76,7 @@ module SolidusAdmin
|
|
|
79
76
|
.update_all(discontinue_on: Time.current)
|
|
80
77
|
end
|
|
81
78
|
|
|
82
|
-
flash[:notice] = t(
|
|
79
|
+
flash[:notice] = t(".success")
|
|
83
80
|
redirect_to products_path, status: :see_other
|
|
84
81
|
end
|
|
85
82
|
|
|
@@ -97,17 +94,16 @@ module SolidusAdmin
|
|
|
97
94
|
.update_all(discontinue_on: nil)
|
|
98
95
|
end
|
|
99
96
|
|
|
100
|
-
flash[:notice] = t(
|
|
97
|
+
flash[:notice] = t(".success")
|
|
101
98
|
redirect_to products_path, status: :see_other
|
|
102
99
|
end
|
|
103
100
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
end
|
|
101
|
+
private
|
|
102
|
+
|
|
103
|
+
def product_params
|
|
104
|
+
params.require(:product).permit(:name, :slug, :description, :meta_title, :meta_description, :meta_keywords, :gtin,
|
|
105
|
+
:condition, :price, :cost_price, :cost_currency, :sku, :shipping_category_id, :tax_category_id,
|
|
106
|
+
:available_on, :discontinue_on, :promotionable, option_type_ids: [], taxon_ids: [])
|
|
111
107
|
end
|
|
112
108
|
end
|
|
113
109
|
end
|
|
@@ -7,13 +7,13 @@ module SolidusAdmin
|
|
|
7
7
|
def index
|
|
8
8
|
reimbursement_types = apply_search_to(
|
|
9
9
|
Spree::ReimbursementType.unscoped.order(id: :desc),
|
|
10
|
-
param: :q
|
|
10
|
+
param: :q
|
|
11
11
|
)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
@page = paginate(reimbursement_types)
|
|
14
14
|
|
|
15
15
|
respond_to do |format|
|
|
16
|
-
format.html { render component(
|
|
16
|
+
format.html { render component("reimbursement_types/index").new(page: @page) }
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
module SolidusAdmin
|
|
4
4
|
class ResourcesController < SolidusAdmin::BaseController
|
|
5
|
+
DEFAULT_PER_PAGE = 20
|
|
6
|
+
|
|
5
7
|
include SolidusAdmin::ControllerHelpers::Search
|
|
6
8
|
|
|
7
|
-
helper_method :search_filter_params
|
|
9
|
+
helper_method :search_filter_params, :resource_form_frame
|
|
8
10
|
|
|
9
11
|
before_action :set_paginated_resources, only: %i[index]
|
|
10
12
|
before_action :set_resource, only: %i[edit update]
|
|
@@ -14,27 +16,35 @@ module SolidusAdmin
|
|
|
14
16
|
# Uses {set_paginated_resources} to set @resources
|
|
15
17
|
# and a instance variable with the plural name of the resource.
|
|
16
18
|
#
|
|
17
|
-
# Uses
|
|
19
|
+
# Uses {paginate} to set @page for pagination.
|
|
18
20
|
#
|
|
19
21
|
# @see set_paginated_resources
|
|
20
22
|
# @see resources_collection
|
|
21
23
|
def index
|
|
22
24
|
respond_to do |format|
|
|
23
25
|
format.html { render index_component.new(page: @page) }
|
|
26
|
+
format.json do
|
|
27
|
+
set_pagination_headers(@page)
|
|
28
|
+
render json: blueprint.render(@page.records, view: blueprint_view)
|
|
29
|
+
end
|
|
24
30
|
end
|
|
25
31
|
end
|
|
26
32
|
|
|
27
33
|
def new
|
|
28
|
-
@resource
|
|
34
|
+
@resource ||= resource_class.new
|
|
29
35
|
render new_component.new(@resource)
|
|
30
36
|
end
|
|
31
37
|
|
|
32
38
|
def create
|
|
33
|
-
@resource
|
|
39
|
+
@resource ||= resource_class.new(permitted_resource_params)
|
|
34
40
|
|
|
35
41
|
if @resource.save
|
|
36
|
-
flash[:notice] = t(
|
|
37
|
-
|
|
42
|
+
flash[:notice] = t(".success")
|
|
43
|
+
|
|
44
|
+
respond_to do |format|
|
|
45
|
+
format.html { redirect_to after_create_path, status: :see_other }
|
|
46
|
+
format.turbo_stream if prefer_turbo_stream?
|
|
47
|
+
end
|
|
38
48
|
else
|
|
39
49
|
page_component = new_component.new(@resource)
|
|
40
50
|
render_resource_form_with_errors(page_component)
|
|
@@ -42,13 +52,19 @@ module SolidusAdmin
|
|
|
42
52
|
end
|
|
43
53
|
|
|
44
54
|
def edit
|
|
45
|
-
|
|
55
|
+
respond_to do |format|
|
|
56
|
+
format.html { render edit_component.new(@resource) }
|
|
57
|
+
end
|
|
46
58
|
end
|
|
47
59
|
|
|
48
60
|
def update
|
|
49
61
|
if @resource.update(permitted_resource_params)
|
|
50
|
-
flash[:notice] = t(
|
|
51
|
-
|
|
62
|
+
flash[:notice] = t(".success")
|
|
63
|
+
|
|
64
|
+
respond_to do |format|
|
|
65
|
+
format.html { redirect_to after_update_path, status: :see_other }
|
|
66
|
+
format.turbo_stream if prefer_turbo_stream?
|
|
67
|
+
end
|
|
52
68
|
else
|
|
53
69
|
page_component = edit_component.new(@resource)
|
|
54
70
|
render_resource_form_with_errors(page_component)
|
|
@@ -60,8 +76,12 @@ module SolidusAdmin
|
|
|
60
76
|
|
|
61
77
|
resource_class.transaction { @resource.destroy_all }
|
|
62
78
|
|
|
63
|
-
flash[:notice] = t(
|
|
64
|
-
|
|
79
|
+
flash[:notice] = t(".success")
|
|
80
|
+
|
|
81
|
+
respond_to do |format|
|
|
82
|
+
format.html { redirect_back_or_to after_destroy_path, status: :see_other }
|
|
83
|
+
format.turbo_stream if prefer_turbo_stream?
|
|
84
|
+
end
|
|
65
85
|
end
|
|
66
86
|
|
|
67
87
|
private
|
|
@@ -73,16 +93,19 @@ module SolidusAdmin
|
|
|
73
93
|
def set_paginated_resources
|
|
74
94
|
@resources ||= apply_search_to(
|
|
75
95
|
resources_collection,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
end
|
|
96
|
+
param: :q
|
|
97
|
+
).tap do |resources|
|
|
98
|
+
instance_variable_set("@#{plural_resource_name}", resources)
|
|
99
|
+
@page = paginate(resources, ordered_by: resources_sorting_options, per_page:)
|
|
100
|
+
end
|
|
82
101
|
end
|
|
83
102
|
|
|
84
103
|
def resources_sorting_options
|
|
85
|
-
{
|
|
104
|
+
{id: :desc}
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def per_page
|
|
108
|
+
DEFAULT_PER_PAGE
|
|
86
109
|
end
|
|
87
110
|
|
|
88
111
|
def resources_collection
|
|
@@ -91,7 +114,7 @@ module SolidusAdmin
|
|
|
91
114
|
|
|
92
115
|
def set_resource
|
|
93
116
|
@resource ||= resource_class.find(params[:id]).tap do |resource|
|
|
94
|
-
|
|
117
|
+
instance_variable_set("@#{resource_name}", resource)
|
|
95
118
|
end
|
|
96
119
|
end
|
|
97
120
|
|
|
@@ -126,7 +149,7 @@ module SolidusAdmin
|
|
|
126
149
|
render page_component, status: :unprocessable_entity
|
|
127
150
|
end
|
|
128
151
|
format.turbo_stream do
|
|
129
|
-
render turbo_stream: turbo_stream.replace(
|
|
152
|
+
render turbo_stream: turbo_stream.replace(resource_form_frame, page_component),
|
|
130
153
|
status: :unprocessable_entity
|
|
131
154
|
end
|
|
132
155
|
end
|
|
@@ -148,5 +171,21 @@ module SolidusAdmin
|
|
|
148
171
|
def after_destroy_path
|
|
149
172
|
solidus_admin.send("#{plural_resource_name}_path", **search_filter_params)
|
|
150
173
|
end
|
|
174
|
+
|
|
175
|
+
def blueprint
|
|
176
|
+
raise NotImplementedError,
|
|
177
|
+
"You must implement the blueprint method in #{self.class}"
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def blueprint_view
|
|
181
|
+
raise NotImplementedError,
|
|
182
|
+
"You must implement the blueprint_view method in #{self.class}"
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def resource_form_frame
|
|
186
|
+
:resource_form
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def prefer_turbo_stream? = false
|
|
151
190
|
end
|
|
152
191
|
end
|
|
@@ -7,13 +7,13 @@ module SolidusAdmin
|
|
|
7
7
|
def index
|
|
8
8
|
shipping_methods = apply_search_to(
|
|
9
9
|
Spree::ShippingMethod.order(id: :desc),
|
|
10
|
-
param: :q
|
|
10
|
+
param: :q
|
|
11
11
|
)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
@page = paginate(shipping_methods)
|
|
14
14
|
|
|
15
15
|
respond_to do |format|
|
|
16
|
-
format.html { render component(
|
|
16
|
+
format.html { render component("shipping_methods/index").new(page: @page) }
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -22,7 +22,7 @@ module SolidusAdmin
|
|
|
22
22
|
|
|
23
23
|
Spree::ShippingMethod.transaction { @shipping_methods.destroy_all }
|
|
24
24
|
|
|
25
|
-
flash[:notice] = t(
|
|
25
|
+
flash[:notice] = t(".success")
|
|
26
26
|
redirect_back_or_to shipping_methods_path, status: :see_other
|
|
27
27
|
end
|
|
28
28
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module SolidusAdmin
|
|
4
|
+
class StatesController < SolidusAdmin::ResourcesController
|
|
5
|
+
skip_before_action :authorize_solidus_admin_user!
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
def resource_class
|
|
10
|
+
Spree::State
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def resources_sorting_options
|
|
14
|
+
{name: :asc}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def blueprint
|
|
18
|
+
SolidusAdmin::StateBlueprint
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def blueprint_view
|
|
22
|
+
view = params[:view]&.to_sym
|
|
23
|
+
blueprint.view?(view) ? view : :default
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def per_page
|
|
27
|
+
100
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -6,13 +6,13 @@ module SolidusAdmin
|
|
|
6
6
|
|
|
7
7
|
search_scope(:all, default: true) { _1 }
|
|
8
8
|
search_scope(:back_orderable) { _1.where(backorderable: true) }
|
|
9
|
-
search_scope(:out_of_stock) { _1.where(
|
|
10
|
-
search_scope(:low_stock) { _1.where(
|
|
11
|
-
search_scope(:in_stock) { _1.where(
|
|
9
|
+
search_scope(:out_of_stock) { _1.where("count_on_hand <= 0") }
|
|
10
|
+
search_scope(:low_stock) { _1.where("count_on_hand > 0 AND count_on_hand < ?", SolidusAdmin::Config.low_stock_value) }
|
|
11
|
+
search_scope(:in_stock) { _1.where("count_on_hand > 0") }
|
|
12
12
|
|
|
13
13
|
def index
|
|
14
14
|
respond_to do |format|
|
|
15
|
-
format.html { render component(
|
|
15
|
+
format.html { render component("stock_items/index").new(page: @page) }
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -33,13 +33,18 @@ module SolidusAdmin
|
|
|
33
33
|
|
|
34
34
|
def resource_class = Spree::StockItem
|
|
35
35
|
|
|
36
|
-
def resources_collection
|
|
36
|
+
def resources_collection
|
|
37
|
+
Spree::StockItem.reorder(nil).includes(
|
|
38
|
+
:stock_location,
|
|
39
|
+
variant: [:product, :images, {option_values: :option_type}]
|
|
40
|
+
)
|
|
41
|
+
end
|
|
37
42
|
|
|
38
43
|
def resources_sorting_options
|
|
39
44
|
{
|
|
40
45
|
variant_id: :desc,
|
|
41
46
|
stock_location_id: :desc,
|
|
42
|
-
id: :desc
|
|
47
|
+
id: :desc
|
|
43
48
|
}
|
|
44
49
|
end
|
|
45
50
|
|
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module SolidusAdmin
|
|
4
|
-
class StockLocationsController < SolidusAdmin::
|
|
5
|
-
|
|
4
|
+
class StockLocationsController < SolidusAdmin::ResourcesController
|
|
5
|
+
private
|
|
6
6
|
|
|
7
|
-
def
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
def resource_class = Spree::StockLocation
|
|
8
|
+
|
|
9
|
+
def permitted_resource_params
|
|
10
|
+
params.require(:stock_location).permit(
|
|
11
|
+
:name,
|
|
12
|
+
:admin_name,
|
|
13
|
+
:code,
|
|
14
|
+
:address1,
|
|
15
|
+
:address2,
|
|
16
|
+
:city, :zipcode,
|
|
17
|
+
:country_id,
|
|
18
|
+
:state_name,
|
|
19
|
+
:state_id,
|
|
20
|
+
:phone,
|
|
21
|
+
:email,
|
|
22
|
+
:active,
|
|
23
|
+
:default,
|
|
24
|
+
:backorderable_default,
|
|
25
|
+
:propagate_all_variants,
|
|
26
|
+
:restock_inventory,
|
|
27
|
+
:fulfillable,
|
|
28
|
+
:check_stock_on_transfer
|
|
11
29
|
)
|
|
12
|
-
|
|
13
|
-
set_page_and_extract_portion_from(stock_locations)
|
|
14
|
-
|
|
15
|
-
respond_to do |format|
|
|
16
|
-
format.html { render component('stock_locations/index').new(page: @page) }
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def destroy
|
|
21
|
-
@stock_locations = Spree::StockLocation.where(id: params[:id])
|
|
22
|
-
|
|
23
|
-
Spree::StockLocation.transaction { @stock_locations.destroy_all }
|
|
24
|
-
|
|
25
|
-
flash[:notice] = t('.success')
|
|
26
|
-
redirect_back_or_to stock_locations_path, status: :see_other
|
|
27
30
|
end
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def stock_location_params
|
|
32
|
-
params.require(:stock_location).permit(:stock_location_id, permitted_stock_location_attributes)
|
|
33
|
-
end
|
|
32
|
+
def resources_collection = Spree::StockLocation.unscoped
|
|
34
33
|
end
|
|
35
34
|
end
|
|
@@ -48,7 +48,7 @@ module SolidusAdmin
|
|
|
48
48
|
return unless ensure_store_credit_category { render_new_with_errors }
|
|
49
49
|
|
|
50
50
|
if @store_credit.save
|
|
51
|
-
flash[:notice] = t(
|
|
51
|
+
flash[:notice] = t(".success")
|
|
52
52
|
redirect_to after_create_path, status: :see_other
|
|
53
53
|
else
|
|
54
54
|
render_new_with_errors
|
|
@@ -72,7 +72,7 @@ module SolidusAdmin
|
|
|
72
72
|
return unless ensure_store_credit_reason { render_edit_with_errors }
|
|
73
73
|
|
|
74
74
|
if @store_credit.update_amount(permitted_resource_params[:amount], @store_credit_reason, spree_current_user)
|
|
75
|
-
flash[:notice] = t(
|
|
75
|
+
flash[:notice] = t(".success")
|
|
76
76
|
redirect_to after_update_path, status: :see_other
|
|
77
77
|
else
|
|
78
78
|
render_edit_with_errors
|
|
@@ -84,7 +84,7 @@ module SolidusAdmin
|
|
|
84
84
|
format.html {
|
|
85
85
|
render component("users/store_credits/edit_memo").new(
|
|
86
86
|
user: @user,
|
|
87
|
-
store_credit: @store_credit
|
|
87
|
+
store_credit: @store_credit
|
|
88
88
|
)
|
|
89
89
|
}
|
|
90
90
|
end
|
|
@@ -92,10 +92,10 @@ module SolidusAdmin
|
|
|
92
92
|
|
|
93
93
|
def update_memo
|
|
94
94
|
if @store_credit.update(memo: permitted_resource_params[:memo])
|
|
95
|
-
flash[:notice] = t(
|
|
95
|
+
flash[:notice] = t(".success")
|
|
96
96
|
else
|
|
97
97
|
# Memo update failures are nearly impossible to trigger due to lack of validation.
|
|
98
|
-
flash[:error] = t(
|
|
98
|
+
flash[:error] = t(".failure")
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
redirect_to after_update_path, status: :see_other
|
|
@@ -117,11 +117,11 @@ module SolidusAdmin
|
|
|
117
117
|
return unless ensure_store_credit_reason { render_edit_with_errors }
|
|
118
118
|
|
|
119
119
|
if @store_credit.invalidate(@store_credit_reason, spree_current_user)
|
|
120
|
-
flash[:notice] = t(
|
|
120
|
+
flash[:notice] = t(".success")
|
|
121
121
|
else
|
|
122
122
|
# Ensure store_credit_reason handles invalid param/form submissions and modal re-rendering.
|
|
123
123
|
# This is just a fallback error state in case anything goes wrong with StoreCredit#invalidate.
|
|
124
|
-
flash[:error] = t(
|
|
124
|
+
flash[:error] = t(".failure")
|
|
125
125
|
end
|
|
126
126
|
|
|
127
127
|
redirect_to after_update_path, status: :see_other
|
|
@@ -202,7 +202,7 @@ module SolidusAdmin
|
|
|
202
202
|
@store_credit_reason = Spree::StoreCreditReason.find_by(id: permitted_resource_params[:store_credit_reason_id])
|
|
203
203
|
|
|
204
204
|
if @store_credit_reason.blank?
|
|
205
|
-
@store_credit.errors.add(:store_credit_reason_id, "Store
|
|
205
|
+
@store_credit.errors.add(:store_credit_reason_id, "Store credit reason must be provided")
|
|
206
206
|
yield if block_given? # Block is for error template rendering on a per-action basis so this can be re-used.
|
|
207
207
|
return false
|
|
208
208
|
end
|
|
@@ -213,7 +213,7 @@ module SolidusAdmin
|
|
|
213
213
|
@store_credit_category = Spree::StoreCreditCategory.find_by(id: permitted_resource_params[:category_id])
|
|
214
214
|
|
|
215
215
|
if @store_credit_category.blank?
|
|
216
|
-
@store_credit.errors.add(:category_id, "Store
|
|
216
|
+
@store_credit.errors.add(:category_id, "Store credit category must be provided")
|
|
217
217
|
yield if block_given? # Block is for error template rendering on a per-action basis so this can be re-used.
|
|
218
218
|
return false
|
|
219
219
|
end
|