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,12 +1,6 @@
|
|
|
1
1
|
en:
|
|
2
2
|
title: "Users / %{email} / Order History"
|
|
3
|
-
account: Account
|
|
4
|
-
addresses: Addresses
|
|
5
3
|
order_history: Order History
|
|
6
|
-
items: Items
|
|
7
|
-
store_credit: Store Credit
|
|
8
|
-
last_active: Last Active
|
|
9
4
|
create_order_for_user: Create order for this user
|
|
10
5
|
no_orders_found: No Orders found.
|
|
11
6
|
create_one: Create One
|
|
12
|
-
back: Back
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
<%= turbo_frame_tag :
|
|
1
|
+
<%= turbo_frame_tag :resource_form, target: "_top" do %>
|
|
2
2
|
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
|
|
3
|
-
<%=
|
|
3
|
+
<%= solidus_form_for @store_credit, url: form_url, method: :put, html: { id: form_id } do |f| %>
|
|
4
4
|
<div class="flex flex-col gap-6 pb-4">
|
|
5
|
-
<%=
|
|
6
|
-
<%=
|
|
7
|
-
f,
|
|
5
|
+
<%= f.text_field(:amount, class: "required") %>
|
|
6
|
+
<%= f.select(
|
|
8
7
|
:store_credit_reason_id,
|
|
9
|
-
|
|
10
|
-
include_blank: t('
|
|
8
|
+
@store_credit_reasons.map { [_1.name, _1.id] },
|
|
9
|
+
include_blank: t('.choose_reason'),
|
|
11
10
|
html: { required: true }
|
|
12
11
|
) %>
|
|
13
12
|
</div>
|
|
@@ -15,7 +14,7 @@
|
|
|
15
14
|
<form method="dialog">
|
|
16
15
|
<%= render component("ui/button").new(scheme: :secondary, text: t('.cancel')) %>
|
|
17
16
|
</form>
|
|
18
|
-
<%=
|
|
17
|
+
<%= f.submit %>
|
|
19
18
|
<% end %>
|
|
20
19
|
<% end %>
|
|
21
20
|
<% end %>
|
|
@@ -14,9 +14,4 @@ class SolidusAdmin::Users::StoreCredits::EditAmount::Component < SolidusAdmin::R
|
|
|
14
14
|
def form_url
|
|
15
15
|
solidus_admin.update_amount_user_store_credit_path(@user, @store_credit, **search_filter_params)
|
|
16
16
|
end
|
|
17
|
-
|
|
18
|
-
def store_credit_reasons_select_options
|
|
19
|
-
# Placeholder + Store Credit Reasons
|
|
20
|
-
"<option value>#{t('.choose_reason')}</option>" + options_from_collection_for_select(@store_credit_reasons, :id, :name)
|
|
21
|
-
end
|
|
22
17
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<%= turbo_frame_tag :
|
|
1
|
+
<%= turbo_frame_tag :resource_form, target: "_top" do %>
|
|
2
2
|
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
|
|
3
|
-
<%=
|
|
3
|
+
<%= solidus_form_for @store_credit, url: form_url, method: :put, html: { id: form_id } do |f| %>
|
|
4
4
|
<div class="flex flex-col gap-6 pb-4">
|
|
5
|
-
<%=
|
|
5
|
+
<%= f.text_field(:memo) %>
|
|
6
6
|
</div>
|
|
7
7
|
<% modal.with_actions do %>
|
|
8
8
|
<form method="dialog">
|
|
9
9
|
<%= render component("ui/button").new(scheme: :secondary, text: t('.cancel')) %>
|
|
10
10
|
</form>
|
|
11
|
-
<%=
|
|
11
|
+
<%= f.submit %>
|
|
12
12
|
<% end %>
|
|
13
13
|
<% end %>
|
|
14
14
|
<% end %>
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
<%= turbo_frame_tag :
|
|
1
|
+
<%= turbo_frame_tag :resource_form, target: "_top" do %>
|
|
2
2
|
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
|
|
3
|
-
<%=
|
|
3
|
+
<%= solidus_form_for @store_credit, url: form_url, method: :put, html: { id: form_id } do |f| %>
|
|
4
4
|
<div class="flex flex-col gap-6 pb-4">
|
|
5
|
-
<%=
|
|
6
|
-
f,
|
|
5
|
+
<%= f.select(
|
|
7
6
|
:store_credit_reason_id,
|
|
8
|
-
|
|
9
|
-
include_blank: t('
|
|
7
|
+
@store_credit_reasons.map { [_1.name, _1.id] },
|
|
8
|
+
include_blank: t('.choose_reason'),
|
|
10
9
|
html: { required: true }
|
|
11
10
|
) %>
|
|
12
11
|
</div>
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
<form method="dialog">
|
|
15
14
|
<%= render component("ui/button").new(scheme: :secondary, text: t('.cancel')) %>
|
|
16
15
|
</form>
|
|
17
|
-
<%=
|
|
16
|
+
<%= f.submit(text: t('.submit'), scheme: :danger) %>
|
|
18
17
|
<% end %>
|
|
19
18
|
<% end %>
|
|
20
19
|
<% end %>
|
|
@@ -14,9 +14,4 @@ class SolidusAdmin::Users::StoreCredits::EditValidity::Component < SolidusAdmin:
|
|
|
14
14
|
def form_url
|
|
15
15
|
solidus_admin.invalidate_user_store_credit_path(@user, @store_credit, **search_filter_params)
|
|
16
16
|
end
|
|
17
|
-
|
|
18
|
-
def store_credit_reasons_select_options
|
|
19
|
-
# Placeholder + Store Credit Reasons
|
|
20
|
-
"<option value>#{t('.choose_reason')}</option>" + options_from_collection_for_select(@store_credit_reasons, :id, :name)
|
|
21
|
-
end
|
|
22
17
|
end
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
tag: :a,
|
|
9
9
|
href: new_store_credit_path,
|
|
10
10
|
data: {
|
|
11
|
-
turbo_frame: :
|
|
11
|
+
turbo_frame: :resource_form
|
|
12
12
|
},
|
|
13
13
|
text: t(".add_store_credit"),
|
|
14
14
|
icon: "add-line"
|
|
@@ -17,9 +17,7 @@
|
|
|
17
17
|
<% end %>
|
|
18
18
|
|
|
19
19
|
<%= page_header do %>
|
|
20
|
-
|
|
21
|
-
<%= render(component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], 'aria-current': tab[:current], href: tab[:href])) %>
|
|
22
|
-
<% end %>
|
|
20
|
+
<%= render component("users/edit/tabs").new(user: @user, current: :store_credits) %>
|
|
23
21
|
<% end %>
|
|
24
22
|
|
|
25
23
|
<%= page_with_sidebar do %>
|
|
@@ -47,7 +45,7 @@
|
|
|
47
45
|
<%= render component("ui/button").new(
|
|
48
46
|
tag: :a,
|
|
49
47
|
data: {
|
|
50
|
-
turbo_frame: :
|
|
48
|
+
turbo_frame: :resource_form
|
|
51
49
|
},
|
|
52
50
|
href: new_store_credit_path,
|
|
53
51
|
text: t(".create_one"),
|
|
@@ -61,5 +59,5 @@
|
|
|
61
59
|
<% end %>
|
|
62
60
|
<% end %>
|
|
63
61
|
|
|
64
|
-
<%= turbo_frame_tag :
|
|
62
|
+
<%= turbo_frame_tag :resource_form, target: "_top" %>
|
|
65
63
|
<% end %>
|
|
@@ -12,36 +12,6 @@ class SolidusAdmin::Users::StoreCredits::Index::Component < SolidusAdmin::BaseCo
|
|
|
12
12
|
Spree::StoreCredit
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def tabs
|
|
16
|
-
[
|
|
17
|
-
{
|
|
18
|
-
text: t('.account'),
|
|
19
|
-
href: solidus_admin.user_path(@user),
|
|
20
|
-
current: false,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
text: t('.addresses'),
|
|
24
|
-
href: solidus_admin.addresses_user_path(@user),
|
|
25
|
-
current: false,
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
text: t('.order_history'),
|
|
29
|
-
href: solidus_admin.orders_user_path(@user),
|
|
30
|
-
current: false,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
text: t('.items'),
|
|
34
|
-
href: spree.items_admin_user_path(@user),
|
|
35
|
-
current: false,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
text: t('.store_credit'),
|
|
39
|
-
href: solidus_admin.user_store_credits_path(@user),
|
|
40
|
-
current: true,
|
|
41
|
-
},
|
|
42
|
-
]
|
|
43
|
-
end
|
|
44
|
-
|
|
45
15
|
def rows
|
|
46
16
|
@store_credits
|
|
47
17
|
end
|
|
@@ -58,54 +28,54 @@ class SolidusAdmin::Users::StoreCredits::Index::Component < SolidusAdmin::BaseCo
|
|
|
58
28
|
[
|
|
59
29
|
{
|
|
60
30
|
header: :credited,
|
|
61
|
-
col: {
|
|
31
|
+
col: {class: "w-[12%]"},
|
|
62
32
|
data: ->(store_credit) do
|
|
63
33
|
link_to store_credit.display_amount.to_html, show_path(store_credit), class: "body-link text-sm"
|
|
64
34
|
end
|
|
65
35
|
},
|
|
66
36
|
{
|
|
67
37
|
header: :authorized,
|
|
68
|
-
col: {
|
|
38
|
+
col: {class: "w-[13%]"},
|
|
69
39
|
data: ->(store_credit) do
|
|
70
40
|
link_to store_credit.display_amount_authorized.to_html, show_path(store_credit), class: "body-link text-sm"
|
|
71
41
|
end
|
|
72
42
|
},
|
|
73
43
|
{
|
|
74
44
|
header: :used,
|
|
75
|
-
col: {
|
|
45
|
+
col: {class: "w-[9%]"},
|
|
76
46
|
data: ->(store_credit) do
|
|
77
47
|
link_to store_credit.display_amount_used.to_html, show_path(store_credit), class: "body-link text-sm"
|
|
78
48
|
end
|
|
79
49
|
},
|
|
80
50
|
{
|
|
81
51
|
header: :type,
|
|
82
|
-
col: {
|
|
52
|
+
col: {class: "w-[13%]"},
|
|
83
53
|
data: ->(store_credit) do
|
|
84
|
-
component(
|
|
54
|
+
component("ui/badge").new(name: store_credit.credit_type.name, color: :blue)
|
|
85
55
|
end
|
|
86
56
|
},
|
|
87
57
|
{
|
|
88
58
|
header: :created_by,
|
|
89
|
-
col: {
|
|
59
|
+
col: {class: "w-[22%]"},
|
|
90
60
|
data: ->(store_credit) do
|
|
91
61
|
content_tag :div, store_credit.created_by_email, class: "text-sm"
|
|
92
62
|
end
|
|
93
63
|
},
|
|
94
64
|
{
|
|
95
65
|
header: :issued_on,
|
|
96
|
-
col: {
|
|
66
|
+
col: {class: "w-[16%]"},
|
|
97
67
|
data: ->(store_credit) do
|
|
98
68
|
content_tag :span, I18n.l(store_credit.created_at.to_date), class: "text-sm"
|
|
99
69
|
end
|
|
100
70
|
},
|
|
101
71
|
{
|
|
102
72
|
header: :invalidated,
|
|
103
|
-
col: {
|
|
73
|
+
col: {class: "w-[15%]"},
|
|
104
74
|
data: ->(store_credit) do
|
|
105
75
|
if store_credit.invalidated?
|
|
106
|
-
component(
|
|
76
|
+
component("ui/badge").new(name: :yes, color: :red, size: :m)
|
|
107
77
|
else
|
|
108
|
-
component(
|
|
78
|
+
component("ui/badge").new(name: :no, color: :green, size: :m)
|
|
109
79
|
end
|
|
110
80
|
end
|
|
111
81
|
}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
en:
|
|
2
2
|
title: "Users / %{email} / Store Credit"
|
|
3
|
-
account: Account
|
|
4
|
-
addresses: Addresses
|
|
5
|
-
order_history: Order History
|
|
6
|
-
items: Items
|
|
7
3
|
store_credit: Store Credit
|
|
8
|
-
last_active: Last Active
|
|
9
4
|
add_store_credit: Add Store Credit
|
|
10
5
|
no_credits_found: No Store Credits found.
|
|
11
6
|
create_one: Create One
|
|
12
|
-
back: Back
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
<%= turbo_frame_tag :
|
|
1
|
+
<%= turbo_frame_tag :resource_form, target: "_top" do %>
|
|
2
2
|
<%= render component("ui/modal").new(title: t(".title")) do |modal| %>
|
|
3
|
-
<%=
|
|
3
|
+
<%= solidus_form_for @store_credit, url: form_url, method: :post, html: { id: form_id } do |f| %>
|
|
4
4
|
<div class="flex flex-col gap-6 pb-4">
|
|
5
|
-
<%=
|
|
6
|
-
<%=
|
|
7
|
-
f,
|
|
5
|
+
<%= f.text_field(:amount, class: "required") %>
|
|
6
|
+
<%= f.select(
|
|
8
7
|
:currency,
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Spree::Config.available_currencies.map { [_1.iso_code, _1.iso_code] },
|
|
9
|
+
placeholder: t("spree.currency"),
|
|
10
|
+
value: Spree::Config.currency,
|
|
11
11
|
html: { required: true }
|
|
12
12
|
) %>
|
|
13
|
-
<%=
|
|
14
|
-
f,
|
|
13
|
+
<%= f.select(
|
|
15
14
|
:category_id,
|
|
16
|
-
|
|
17
|
-
include_blank: t("
|
|
15
|
+
@store_credit_categories.map { [_1.name, _1.id] },
|
|
16
|
+
include_blank: t(".choose_category"),
|
|
18
17
|
html: { required: true }
|
|
19
18
|
) %>
|
|
20
|
-
<%=
|
|
19
|
+
<%= f.text_field(:memo) %>
|
|
21
20
|
</div>
|
|
22
21
|
<% modal.with_actions do %>
|
|
23
22
|
<form method="dialog">
|
|
24
23
|
<%= render component("ui/button").new(scheme: :secondary, text: t(".cancel")) %>
|
|
25
24
|
</form>
|
|
26
|
-
<%=
|
|
25
|
+
<%= f.submit %>
|
|
27
26
|
<% end %>
|
|
28
27
|
<% end %>
|
|
29
28
|
<% end %>
|
|
@@ -10,13 +10,4 @@ class SolidusAdmin::Users::StoreCredits::New::Component < SolidusAdmin::Resource
|
|
|
10
10
|
def form_url
|
|
11
11
|
solidus_admin.user_store_credits_path(@user, **search_filter_params)
|
|
12
12
|
end
|
|
13
|
-
|
|
14
|
-
def currency_select_options
|
|
15
|
-
options_from_collection_for_select(Spree::Config.available_currencies, :iso_code, :iso_code, Spree::Config.currency)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def store_credit_categories_select_options
|
|
19
|
-
# Placeholder + Store Credit Categories
|
|
20
|
-
"<option value>#{t('.choose_category')}</option>" + options_from_collection_for_select(@store_credit_categories, :id, :name)
|
|
21
|
-
end
|
|
22
13
|
end
|
|
@@ -5,9 +5,7 @@
|
|
|
5
5
|
<% end %>
|
|
6
6
|
|
|
7
7
|
<%= page_header do %>
|
|
8
|
-
|
|
9
|
-
<%= render(component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], 'aria-current': tab[:current], href: tab[:href])) %>
|
|
10
|
-
<% end %>
|
|
8
|
+
<%= render component("users/edit/tabs").new(user: @user, current: :store_credits) %>
|
|
11
9
|
<% end %>
|
|
12
10
|
|
|
13
11
|
<%= page_with_sidebar do %>
|
|
@@ -31,7 +29,7 @@
|
|
|
31
29
|
tag: :a,
|
|
32
30
|
scheme: :danger,
|
|
33
31
|
data: {
|
|
34
|
-
turbo_frame: :
|
|
32
|
+
turbo_frame: :resource_form
|
|
35
33
|
},
|
|
36
34
|
href: edit_validity_url,
|
|
37
35
|
text: t(".invalidate"),
|
|
@@ -41,7 +39,7 @@
|
|
|
41
39
|
<%= render component("ui/button").new(
|
|
42
40
|
tag: :a,
|
|
43
41
|
data: {
|
|
44
|
-
turbo_frame: :
|
|
42
|
+
turbo_frame: :resource_form
|
|
45
43
|
},
|
|
46
44
|
href: edit_memo_url,
|
|
47
45
|
text: t(".edit_memo"),
|
|
@@ -51,7 +49,7 @@
|
|
|
51
49
|
<%= render component("ui/button").new(
|
|
52
50
|
tag: :a,
|
|
53
51
|
data: {
|
|
54
|
-
turbo_frame: :
|
|
52
|
+
turbo_frame: :resource_form
|
|
55
53
|
},
|
|
56
54
|
href: edit_amount_url,
|
|
57
55
|
text: t(".edit_amount"),
|
|
@@ -79,5 +77,5 @@
|
|
|
79
77
|
<% end %>
|
|
80
78
|
<% end %>
|
|
81
79
|
|
|
82
|
-
<%= turbo_frame_tag :
|
|
80
|
+
<%= turbo_frame_tag :resource_form, target: "_top" %>
|
|
83
81
|
<% end %>
|
|
@@ -18,36 +18,6 @@ class SolidusAdmin::Users::StoreCredits::Show::Component < SolidusAdmin::BaseCom
|
|
|
18
18
|
Spree::StoreCreditEvent
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def tabs
|
|
22
|
-
[
|
|
23
|
-
{
|
|
24
|
-
text: t('.account'),
|
|
25
|
-
href: solidus_admin.user_path(@user),
|
|
26
|
-
current: false,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
text: t('.addresses'),
|
|
30
|
-
href: solidus_admin.addresses_user_path(@user),
|
|
31
|
-
current: false,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
text: t('.order_history'),
|
|
35
|
-
href: solidus_admin.orders_user_path(@user),
|
|
36
|
-
current: false,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
text: t('.items'),
|
|
40
|
-
href: spree.items_admin_user_path(@user),
|
|
41
|
-
current: false,
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
text: t('.store_credit'),
|
|
45
|
-
href: solidus_admin.user_store_credits_path(@user),
|
|
46
|
-
current: true,
|
|
47
|
-
},
|
|
48
|
-
]
|
|
49
|
-
end
|
|
50
|
-
|
|
51
21
|
def form_id
|
|
52
22
|
@form_id ||= "#{stimulus_id}--form-#{@store_credit.id}"
|
|
53
23
|
end
|
|
@@ -68,53 +38,53 @@ class SolidusAdmin::Users::StoreCredits::Show::Component < SolidusAdmin::BaseCom
|
|
|
68
38
|
[
|
|
69
39
|
{
|
|
70
40
|
header: :date,
|
|
71
|
-
col: {
|
|
41
|
+
col: {class: "w-[15%]"},
|
|
72
42
|
data: ->(event) do
|
|
73
43
|
content_tag :span, I18n.l(event.created_at, format: :short), class: "text-sm"
|
|
74
44
|
end
|
|
75
45
|
},
|
|
76
46
|
{
|
|
77
47
|
header: :action,
|
|
78
|
-
col: {
|
|
48
|
+
col: {class: "w-[10%]"},
|
|
79
49
|
data: ->(event) do
|
|
80
50
|
content_tag :span, store_credit_event_admin_action_name(event), class: "text-sm"
|
|
81
51
|
end
|
|
82
52
|
},
|
|
83
53
|
{
|
|
84
54
|
header: :credited,
|
|
85
|
-
col: {
|
|
55
|
+
col: {class: "w-[10%]"},
|
|
86
56
|
data: ->(event) do
|
|
87
57
|
content_tag :span, event.display_amount, class: "text-sm"
|
|
88
58
|
end
|
|
89
59
|
},
|
|
90
60
|
{
|
|
91
61
|
header: :created_by,
|
|
92
|
-
col: {
|
|
62
|
+
col: {class: "w-[20%]"},
|
|
93
63
|
data: ->(event) do
|
|
94
64
|
content_tag :span, store_credit_event_originator_link(event), class: "body-link text-sm"
|
|
95
65
|
end
|
|
96
66
|
},
|
|
97
67
|
{
|
|
98
68
|
header: :total_amount,
|
|
99
|
-
col: {
|
|
69
|
+
col: {class: "w-[10%]"},
|
|
100
70
|
data: ->(event) do
|
|
101
71
|
content_tag :span, event.display_user_total_amount, class: "text-sm"
|
|
102
72
|
end
|
|
103
73
|
},
|
|
104
74
|
{
|
|
105
75
|
header: :total_unused,
|
|
106
|
-
col: {
|
|
76
|
+
col: {class: "w-[10%]"},
|
|
107
77
|
data: ->(event) do
|
|
108
78
|
content_tag :span, event.display_remaining_amount, class: "text-sm"
|
|
109
79
|
end
|
|
110
80
|
},
|
|
111
81
|
{
|
|
112
82
|
header: :reason_for_updating,
|
|
113
|
-
col: {
|
|
83
|
+
col: {class: "w-[25%]"},
|
|
114
84
|
data: ->(event) do
|
|
115
85
|
content_tag :span, event.store_credit_reason&.name, class: "text-sm"
|
|
116
86
|
end
|
|
117
|
-
}
|
|
87
|
+
}
|
|
118
88
|
]
|
|
119
89
|
end
|
|
120
90
|
end
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
en:
|
|
2
2
|
title: "Users / %{email} / Store Credit / %{amount}"
|
|
3
|
-
account: Account
|
|
4
|
-
addresses: Addresses
|
|
5
|
-
order_history: Order History
|
|
6
|
-
items: Items
|
|
7
3
|
store_credit: Store Credit
|
|
8
|
-
last_active: Last Active
|
|
9
4
|
add_store_credit: Add Store Credit
|
|
10
5
|
edit_amount: Edit Amount
|
|
11
6
|
edit_memo: Edit Memo
|
|
@@ -15,4 +10,3 @@ en:
|
|
|
15
10
|
created_by: Created By
|
|
16
11
|
type: Type
|
|
17
12
|
memo: Memo
|
|
18
|
-
back: Back
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
class SolidusAdmin::UsersAndRoles::Component < SolidusAdmin::UI::Pages::Index::Component
|
|
4
4
|
def title
|
|
5
5
|
page_header_title safe_join([
|
|
6
|
-
tag.div(t(".title"))
|
|
6
|
+
tag.div(t(".title"))
|
|
7
7
|
])
|
|
8
8
|
end
|
|
9
9
|
|
|
@@ -12,13 +12,13 @@ class SolidusAdmin::UsersAndRoles::Component < SolidusAdmin::UI::Pages::Index::C
|
|
|
12
12
|
{
|
|
13
13
|
text: Spree.user_class.model_name.human(count: 2),
|
|
14
14
|
href: solidus_admin.users_path,
|
|
15
|
-
current: model_class == Spree.user_class
|
|
15
|
+
current: model_class == Spree.user_class
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
text: Spree::Role.model_name.human(count: 2),
|
|
19
19
|
href: solidus_admin.roles_path,
|
|
20
|
-
current: model_class == Spree::Role
|
|
21
|
-
}
|
|
20
|
+
current: model_class == Spree::Role
|
|
21
|
+
}
|
|
22
22
|
]
|
|
23
23
|
end
|
|
24
24
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render component("zones/form").new(zone: @zone, form_url:, form_id:) %>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<%= turbo_frame_tag :resource_form, target: "_top" do %>
|
|
2
|
+
<%= render component("ui/modal").new(title:) do |modal| %>
|
|
3
|
+
<%= solidus_form_for @zone, url: @form_url, html: { id: @form_id, **stimulus_controller, **stimulus_value(name: :kind, value: @zone.kind) } do |f| %>
|
|
4
|
+
<div class="flex flex-col gap-6 pb-4">
|
|
5
|
+
<%= f.text_field(:name, class: "required") %>
|
|
6
|
+
|
|
7
|
+
<%= tag.div(class: "hidden", **stimulus_target("countriesWrapper")) do %>
|
|
8
|
+
<%= f.select(
|
|
9
|
+
:country_ids,
|
|
10
|
+
country_select_options,
|
|
11
|
+
multiple: true,
|
|
12
|
+
class: "required",
|
|
13
|
+
**stimulus_target("countriesSelect")
|
|
14
|
+
) %>
|
|
15
|
+
<% end %>
|
|
16
|
+
|
|
17
|
+
<%= tag.div(class: "hidden", **stimulus_target("statesWrapper")) do %>
|
|
18
|
+
<%= f.select(
|
|
19
|
+
:state_ids,
|
|
20
|
+
selected_state_select_options,
|
|
21
|
+
multiple: true,
|
|
22
|
+
class: "required",
|
|
23
|
+
src: solidus_admin.states_url(view: :state_with_country),
|
|
24
|
+
"data-query-param": "q[name_or_country_name_cont]",
|
|
25
|
+
**stimulus_target("statesSelect")
|
|
26
|
+
) %>
|
|
27
|
+
<% end %>
|
|
28
|
+
|
|
29
|
+
<%= f.text_field(:description, class: "required") %>
|
|
30
|
+
|
|
31
|
+
<%= f.select(
|
|
32
|
+
:kind,
|
|
33
|
+
[[t(".kinds.country"), :country], [t(".kinds.state"), :state]],
|
|
34
|
+
value: @zone.kind || default_zone_kind,
|
|
35
|
+
**stimulus_action("toggleKind", on: "change")
|
|
36
|
+
) %>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<% modal.with_actions do %>
|
|
40
|
+
<form method="dialog">
|
|
41
|
+
<%= render component("ui/button").cancel %>
|
|
42
|
+
</form>
|
|
43
|
+
<%= render component("ui/button").submit(resource: @zone, form: @form_id) %>
|
|
44
|
+
<% end %>
|
|
45
|
+
<% end %>
|
|
46
|
+
<% end %>
|
|
47
|
+
<% end %>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Controller } from "@hotwired/stimulus"
|
|
2
|
+
|
|
3
|
+
export default class extends Controller {
|
|
4
|
+
static targets = ["countriesWrapper", "statesWrapper", "countriesSelect", "statesSelect"]
|
|
5
|
+
static values = {
|
|
6
|
+
kind: { type: String, default: "state" }
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
connect() {
|
|
10
|
+
this.toggleSelectsVisibility();
|
|
11
|
+
this.toggleSelectDisabled();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
toggleKind(event) {
|
|
15
|
+
if (!event.target.value) return;
|
|
16
|
+
|
|
17
|
+
this.kindValue = event.target.value;
|
|
18
|
+
|
|
19
|
+
this.toggleSelectsVisibility();
|
|
20
|
+
this.toggleSelectDisabled();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
toggleSelectsVisibility() {
|
|
24
|
+
this.countriesWrapperTarget.classList.toggle("hidden", this.kindValue === "state");
|
|
25
|
+
this.statesWrapperTarget.classList.toggle("hidden", this.kindValue === "country");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
toggleSelectDisabled() {
|
|
29
|
+
this.countriesSelectTarget.disabled = this.kindValue === "state";
|
|
30
|
+
this.statesSelectTarget.disabled = this.kindValue === "country";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class SolidusAdmin::Zones::Form::Component < SolidusAdmin::BaseComponent
|
|
4
|
+
def initialize(zone:, form_url:, form_id:)
|
|
5
|
+
@zone = zone
|
|
6
|
+
@form_url = form_url
|
|
7
|
+
@form_id = form_id
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def title
|
|
11
|
+
@zone.new_record? ? t(".title.new") : t(".title.edit")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def country_select_options
|
|
15
|
+
Spree::Country.order(:name).map { |c| [c.name, c.id] }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def default_zone_kind = :state
|
|
19
|
+
|
|
20
|
+
def selected_state_select_options
|
|
21
|
+
Spree::State.where(id: @zone.state_ids).map { |s| [s.state_with_country, s.id] }
|
|
22
|
+
end
|
|
23
|
+
end
|