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
|
@@ -9,9 +9,7 @@
|
|
|
9
9
|
<% end %>
|
|
10
10
|
|
|
11
11
|
<%= page_header do %>
|
|
12
|
-
|
|
13
|
-
<%= render(component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], 'aria-current': tab[:current], href: tab[:href])) %>
|
|
14
|
-
<% end %>
|
|
12
|
+
<%= render component("users/edit/tabs").new(user: @user, current: :addresses) %>
|
|
15
13
|
<% end %>
|
|
16
14
|
|
|
17
15
|
<%= page_with_sidebar do %>
|
|
@@ -19,7 +17,7 @@
|
|
|
19
17
|
<%= render component('ui/panel').new(title: t(".billing_address")) do %>
|
|
20
18
|
<%= form_for @user, url: solidus_admin.update_addresses_user_path(@user), method: :put, html: { id: "#{form_id}_billing", autocomplete: "off", class: "bill_address" } do |f| %>
|
|
21
19
|
|
|
22
|
-
<%= render component('ui/forms/address').new(
|
|
20
|
+
<%= render component('ui/forms/address').new(addressable: @bill_address, form_field_name: "user[bill_address_attributes]") %>
|
|
23
21
|
<div class="py-1.5 text-center">
|
|
24
22
|
<%= render component("ui/button").new(tag: :button, text: t(".update"), form: "#{form_id}_billing") %>
|
|
25
23
|
<%= render component("ui/button").new(tag: :a, text: t(".cancel"), href: solidus_admin.addresses_user_path(@user), scheme: :secondary) %>
|
|
@@ -30,7 +28,7 @@
|
|
|
30
28
|
<%= render component('ui/panel').new(title: t(".shipping_address")) do %>
|
|
31
29
|
<%= form_for @user, url: solidus_admin.update_addresses_user_path(@user), method: :put, html: { id: "#{form_id}_shipping", autocomplete: "off", class: "ship_address" } do |f| %>
|
|
32
30
|
|
|
33
|
-
<%= render component('ui/forms/address').new(
|
|
31
|
+
<%= render component('ui/forms/address').new(addressable: @ship_address, form_field_name: "user[ship_address_attributes]") %>
|
|
34
32
|
<div class="py-1.5 text-center">
|
|
35
33
|
<%= render component("ui/button").new(tag: :button, text: t(".update"), form: "#{form_id}_shipping") %>
|
|
36
34
|
<%= render component("ui/button").new(tag: :a, text: t(".cancel"), href: solidus_admin.addresses_user_path(@user), scheme: :secondary) %>
|
|
@@ -13,36 +13,6 @@ class SolidusAdmin::Users::Addresses::Component < SolidusAdmin::BaseComponent
|
|
|
13
13
|
@form_id ||= "#{stimulus_id}--form-#{@user.id}"
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def tabs
|
|
17
|
-
[
|
|
18
|
-
{
|
|
19
|
-
text: t('.account'),
|
|
20
|
-
href: solidus_admin.user_path(@user),
|
|
21
|
-
current: false,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
text: t('.addresses'),
|
|
25
|
-
href: solidus_admin.addresses_user_path(@user),
|
|
26
|
-
current: true,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
text: t('.order_history'),
|
|
30
|
-
href: solidus_admin.orders_user_path(@user),
|
|
31
|
-
current: false,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
text: t('.items'),
|
|
35
|
-
href: spree.items_admin_user_path(@user),
|
|
36
|
-
current: false,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
text: t('.store_credit'),
|
|
40
|
-
href: spree.admin_user_store_credits_path(@user),
|
|
41
|
-
current: false,
|
|
42
|
-
},
|
|
43
|
-
]
|
|
44
|
-
end
|
|
45
|
-
|
|
46
16
|
def bill_address(address, type)
|
|
47
17
|
if address.present? && type == "bill"
|
|
48
18
|
address
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
en:
|
|
2
2
|
title: "Users / %{email} / Addresses"
|
|
3
|
-
account: Account
|
|
4
|
-
addresses: Addresses
|
|
5
|
-
order_history: Order History
|
|
6
|
-
items: Items
|
|
7
|
-
store_credit: Store Credit
|
|
8
|
-
last_active: Last Active
|
|
9
3
|
create_order_for_user: Create order for this user
|
|
10
4
|
update: Update
|
|
11
5
|
cancel: Cancel
|
|
12
|
-
back: Back
|
|
13
6
|
billing_address: Billing Address
|
|
14
7
|
shipping_address: Shipping Address
|
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
text: t('.clear_key'),
|
|
17
17
|
scheme: :secondary,
|
|
18
18
|
type: :submit,
|
|
19
|
-
"data-
|
|
20
|
-
"data
|
|
19
|
+
"data-turbo-confirm": t(".confirm.title"),
|
|
20
|
+
"data-confirm-details": t(".confirm.clear.details"),
|
|
21
|
+
"data-confirm-button": t(".confirm.clear.button"),
|
|
21
22
|
) %>
|
|
22
23
|
<% end %>
|
|
23
24
|
|
|
@@ -26,8 +27,9 @@
|
|
|
26
27
|
text: t('.regenerate_key'),
|
|
27
28
|
scheme: :secondary,
|
|
28
29
|
type: :submit,
|
|
29
|
-
"data-
|
|
30
|
-
"data
|
|
30
|
+
"data-turbo-confirm": t(".confirm.title"),
|
|
31
|
+
"data-confirm-details": t(".confirm.regenerate.details"),
|
|
32
|
+
"data-confirm-button": t(".confirm.regenerate.button")
|
|
31
33
|
) %>
|
|
32
34
|
<% end %>
|
|
33
35
|
</div>
|
|
@@ -6,5 +6,11 @@ en:
|
|
|
6
6
|
clear_key: Clear key
|
|
7
7
|
regenerate_key: Regenerate key
|
|
8
8
|
hidden: Hidden
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
confirm:
|
|
10
|
+
title: Are you sure?
|
|
11
|
+
clear:
|
|
12
|
+
details: Are you sure you want to clear this user's API key? It will invalidate the existing key.
|
|
13
|
+
button: Clear
|
|
14
|
+
regenerate:
|
|
15
|
+
details: Are you sure you want to regenerate this user's API key? It will invalidate the existing key.
|
|
16
|
+
button: Regenerate
|
|
@@ -3,39 +3,42 @@
|
|
|
3
3
|
<%= page_header_back(solidus_admin.users_path) %>
|
|
4
4
|
<%= page_header_title(t(".title", email: @user.email)) %>
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
<%# @todo: I am not sure how we want to handle Cancan stuff in the new admin. %>
|
|
7
|
+
<%# if can?(:admin, Spree::Order) && can?(:create, Spree::Order) %>
|
|
8
8
|
<%= page_header_actions do %>
|
|
9
9
|
<%= render component("ui/button").new(tag: :a, text: t(".create_order_for_user"), href: spree.new_admin_order_path(user_id: @user.id)) %>
|
|
10
10
|
<% end %>
|
|
11
|
-
|
|
11
|
+
<%# end %>
|
|
12
12
|
<% end %>
|
|
13
13
|
|
|
14
14
|
<%= page_header do %>
|
|
15
|
-
|
|
16
|
-
<%= render(component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], 'aria-current': tab[:current], href: tab[:href])) %>
|
|
17
|
-
<% end %>
|
|
15
|
+
<%= render component("users/edit/tabs").new(user: @user, current: :account) %>
|
|
18
16
|
<% end %>
|
|
19
17
|
|
|
20
18
|
<%= page_with_sidebar do %>
|
|
21
19
|
<%= page_with_sidebar_main do %>
|
|
22
20
|
|
|
23
21
|
<%= render component('ui/panel').new(title: Spree.user_class.model_name.human) do %>
|
|
24
|
-
<%=
|
|
22
|
+
<%= solidus_form_for @user, url: solidus_admin.user_path(@user), html: { id: form_id, autocomplete: "off" } do |f| %>
|
|
25
23
|
<div class="py-1.5">
|
|
26
|
-
<%=
|
|
24
|
+
<%= f.text_field(:email) %>
|
|
27
25
|
</div>
|
|
28
26
|
<div class="py-1.5">
|
|
29
|
-
<%=
|
|
27
|
+
<%= f.text_field(:password) %>
|
|
30
28
|
</div>
|
|
31
29
|
<div class="py-1.5">
|
|
32
|
-
<%=
|
|
30
|
+
<%= f.text_field(:password_confirmation) %>
|
|
33
31
|
</div>
|
|
32
|
+
<% if @user.respond_to?(:timezone) %>
|
|
33
|
+
<div class="py-1.5">
|
|
34
|
+
<%= f.select(:timezone, ActiveSupport::TimeZone.all.map { [_1.to_s, _1.name] }, include_blank: t("spree.none")) %>
|
|
35
|
+
</div>
|
|
36
|
+
<% end %>
|
|
34
37
|
<div class="py-1.5">
|
|
35
|
-
<%=
|
|
38
|
+
<%= f.checkbox_row(:spree_role_ids, options: role_options, row_title: "Roles", layout: :subsection) %>
|
|
36
39
|
</div>
|
|
37
40
|
<div class="py-1.5 text-center">
|
|
38
|
-
<%=
|
|
41
|
+
<%= f.submit(text: t(".update")) %>
|
|
39
42
|
<%= render component("ui/button").new(tag: :a, text: t(".cancel"), href: solidus_admin.user_path(@user), scheme: :secondary) %>
|
|
40
43
|
</div>
|
|
41
44
|
<% end %>
|
|
@@ -11,41 +11,9 @@ class SolidusAdmin::Users::Edit::Component < SolidusAdmin::BaseComponent
|
|
|
11
11
|
@form_id ||= "#{stimulus_id}--form-#{@user.id}"
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
def tabs
|
|
15
|
-
[
|
|
16
|
-
{
|
|
17
|
-
text: t('.account'),
|
|
18
|
-
href: solidus_admin.user_path(@user),
|
|
19
|
-
current: action_name == "edit",
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
text: t('.addresses'),
|
|
23
|
-
href: solidus_admin.addresses_user_path(@user),
|
|
24
|
-
current: action_name == "addresses",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
text: t('.order_history'),
|
|
28
|
-
href: solidus_admin.orders_user_path(@user),
|
|
29
|
-
current: action_name == "orders",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
text: t('.items'),
|
|
33
|
-
href: spree.items_admin_user_path(@user),
|
|
34
|
-
# @todo: update this "current" logic once folded into new admin
|
|
35
|
-
current: action_name != "edit",
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
text: t('.store_credit'),
|
|
39
|
-
href: spree.admin_user_store_credits_path(@user),
|
|
40
|
-
# @todo: update this "current" logic once folded into new admin
|
|
41
|
-
current: action_name != "edit",
|
|
42
|
-
},
|
|
43
|
-
]
|
|
44
|
-
end
|
|
45
|
-
|
|
46
14
|
def role_options
|
|
47
15
|
Spree::Role.all.map do |role|
|
|
48
|
-
{
|
|
16
|
+
{label: role.name, id: role.id}
|
|
49
17
|
end
|
|
50
18
|
end
|
|
51
19
|
end
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
en:
|
|
2
2
|
title: "Users / %{email}"
|
|
3
|
-
account: Account
|
|
4
|
-
addresses: Addresses
|
|
5
|
-
order_history: Order History
|
|
6
|
-
items: Items
|
|
7
|
-
store_credit: Store Credit
|
|
8
|
-
last_active: Last Active
|
|
9
3
|
create_order_for_user: Create order for this user
|
|
10
4
|
update: Update
|
|
11
5
|
cancel: Cancel
|
|
12
|
-
back: Back
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class SolidusAdmin::Users::Edit::Tabs::Component < SolidusAdmin::BaseComponent
|
|
4
|
+
def initialize(user:, current:)
|
|
5
|
+
@user = user
|
|
6
|
+
@current = current
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def call
|
|
10
|
+
rendered_tabs = tabs.map do |tab|
|
|
11
|
+
render component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], "aria-current": tab[:current], href: tab[:href])
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
safe_join(rendered_tabs)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def tabs
|
|
18
|
+
[
|
|
19
|
+
{
|
|
20
|
+
text: t(".account"),
|
|
21
|
+
href: solidus_admin.user_path(@user),
|
|
22
|
+
current: @current == :account
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
text: t(".addresses"),
|
|
26
|
+
href: solidus_admin.addresses_user_path(@user),
|
|
27
|
+
current: @current == :addresses
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
text: t(".order_history"),
|
|
31
|
+
href: solidus_admin.orders_user_path(@user),
|
|
32
|
+
current: @current == :orders
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
text: t(".items"),
|
|
36
|
+
href: solidus_admin.items_user_path(@user),
|
|
37
|
+
current: @current == :items
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
text: t(".store_credit"),
|
|
41
|
+
href: solidus_admin.user_store_credits_path(@user),
|
|
42
|
+
current: @current == :store_credits
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -22,30 +22,30 @@ class SolidusAdmin::Users::Index::Component < SolidusAdmin::UsersAndRoles::Compo
|
|
|
22
22
|
def page_actions
|
|
23
23
|
render component("ui/button").new(
|
|
24
24
|
tag: :a,
|
|
25
|
-
text: t(
|
|
25
|
+
text: t(".add"),
|
|
26
26
|
href: spree.new_admin_user_path,
|
|
27
|
-
icon: "add-line"
|
|
27
|
+
icon: "add-line"
|
|
28
28
|
)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def batch_actions
|
|
32
32
|
[
|
|
33
33
|
{
|
|
34
|
-
label: t(
|
|
34
|
+
label: t(".batch_actions.delete"),
|
|
35
35
|
action: solidus_admin.users_path,
|
|
36
36
|
method: :delete,
|
|
37
|
-
icon:
|
|
38
|
-
}
|
|
37
|
+
icon: "delete-bin-7-line"
|
|
38
|
+
}
|
|
39
39
|
]
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def scopes
|
|
43
43
|
[
|
|
44
|
-
{
|
|
45
|
-
{
|
|
46
|
-
{
|
|
47
|
-
{
|
|
48
|
-
{
|
|
44
|
+
{name: :all, label: t(".scopes.all"), default: true},
|
|
45
|
+
{name: :customers, label: t(".scopes.customers")},
|
|
46
|
+
{name: :admin, label: t(".scopes.admin")},
|
|
47
|
+
{name: :with_orders, label: t(".scopes.with_orders")},
|
|
48
|
+
{name: :without_orders, label: t(".scopes.without_orders")}
|
|
49
49
|
]
|
|
50
50
|
end
|
|
51
51
|
|
|
@@ -64,35 +64,35 @@ class SolidusAdmin::Users::Index::Component < SolidusAdmin::UsersAndRoles::Compo
|
|
|
64
64
|
[
|
|
65
65
|
{
|
|
66
66
|
header: :email,
|
|
67
|
-
data: :email
|
|
67
|
+
data: :email
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
header: :roles,
|
|
71
71
|
data: ->(user) do
|
|
72
|
-
roles = user.spree_roles.presence || [Spree::Role.new(name:
|
|
72
|
+
roles = user.spree_roles.presence || [Spree::Role.new(name: "customer")]
|
|
73
73
|
safe_join(roles.map {
|
|
74
74
|
color =
|
|
75
75
|
case _1.name
|
|
76
|
-
when
|
|
77
|
-
when
|
|
76
|
+
when "admin" then :blue
|
|
77
|
+
when "customer" then :green
|
|
78
78
|
else :graphite_light
|
|
79
79
|
end
|
|
80
|
-
render component(
|
|
80
|
+
render component("ui/badge").new(name: _1.name, color:)
|
|
81
81
|
})
|
|
82
|
-
end
|
|
82
|
+
end
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
header: :order_count,
|
|
86
|
-
data: ->(user) { user.order_count }
|
|
86
|
+
data: ->(user) { user.order_count }
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
header: :lifetime_value,
|
|
90
|
-
data: -> { _1.display_lifetime_value.to_html }
|
|
90
|
+
data: -> { _1.display_lifetime_value.to_html }
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
header: :last_active,
|
|
94
|
-
data: ->(user) { last_login(user) }
|
|
95
|
-
}
|
|
94
|
+
data: ->(user) { last_login(user) }
|
|
95
|
+
}
|
|
96
96
|
]
|
|
97
97
|
end
|
|
98
98
|
end
|
|
@@ -9,9 +9,7 @@
|
|
|
9
9
|
<% end %>
|
|
10
10
|
|
|
11
11
|
<%= page_header do %>
|
|
12
|
-
|
|
13
|
-
<%= render(component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], 'aria-current': tab[:current], href: tab[:href])) %>
|
|
14
|
-
<% end %>
|
|
12
|
+
<%= render component("users/edit/tabs").new(user: @user, current: :items) %>
|
|
15
13
|
<% end %>
|
|
16
14
|
|
|
17
15
|
<%= page_with_sidebar do %>
|
|
@@ -8,36 +8,6 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
8
8
|
@items = items
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def tabs
|
|
12
|
-
[
|
|
13
|
-
{
|
|
14
|
-
text: t('.account'),
|
|
15
|
-
href: solidus_admin.user_path(@user),
|
|
16
|
-
current: false,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
text: t('.addresses'),
|
|
20
|
-
href: solidus_admin.addresses_user_path(@user),
|
|
21
|
-
current: false,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
text: t('.order_history'),
|
|
25
|
-
href: solidus_admin.orders_user_path(@user),
|
|
26
|
-
current: false,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
text: t('.items'),
|
|
30
|
-
href: solidus_admin.items_user_path(@user),
|
|
31
|
-
current: true,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
text: t('.store_credit'),
|
|
35
|
-
href: spree.admin_user_store_credits_path(@user),
|
|
36
|
-
current: false,
|
|
37
|
-
},
|
|
38
|
-
]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
11
|
def model_class
|
|
42
12
|
Spree::LineItem
|
|
43
13
|
end
|
|
@@ -59,13 +29,13 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
59
29
|
quantity_column,
|
|
60
30
|
total_column,
|
|
61
31
|
state_column,
|
|
62
|
-
number_column
|
|
32
|
+
number_column
|
|
63
33
|
]
|
|
64
34
|
end
|
|
65
35
|
|
|
66
36
|
def date_column
|
|
67
37
|
{
|
|
68
|
-
col: {
|
|
38
|
+
col: {class: "w-[8%]"},
|
|
69
39
|
header: :date,
|
|
70
40
|
data: ->(item) do
|
|
71
41
|
content_tag :div, l(item.order.created_at, format: :short), class: "text-sm"
|
|
@@ -75,13 +45,13 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
75
45
|
|
|
76
46
|
def image_column
|
|
77
47
|
{
|
|
78
|
-
col: {
|
|
79
|
-
header: tag.span(
|
|
48
|
+
col: {class: "w-[8%]"},
|
|
49
|
+
header: tag.span("aria-label": Spree::Image.model_name.human, role: "text"),
|
|
80
50
|
data: ->(item) do
|
|
81
51
|
image = item.variant.gallery.images.first || item.variant.product.gallery.images.first or return
|
|
82
52
|
|
|
83
53
|
render(
|
|
84
|
-
component(
|
|
54
|
+
component("ui/thumbnail").new(
|
|
85
55
|
src: image.url(:small),
|
|
86
56
|
alt: item.product.name
|
|
87
57
|
)
|
|
@@ -92,7 +62,7 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
92
62
|
|
|
93
63
|
def description_column
|
|
94
64
|
{
|
|
95
|
-
col: {
|
|
65
|
+
col: {class: "w-[24%]"},
|
|
96
66
|
header: t(".description_column_header"),
|
|
97
67
|
data: ->(item) { item_name_with_variant_and_sku(item) }
|
|
98
68
|
}
|
|
@@ -100,7 +70,7 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
100
70
|
|
|
101
71
|
def price_column
|
|
102
72
|
{
|
|
103
|
-
col: {
|
|
73
|
+
col: {class: "w-[10%]"},
|
|
104
74
|
header: :price,
|
|
105
75
|
data: ->(item) do
|
|
106
76
|
content_tag :div, item.single_money.to_html
|
|
@@ -110,7 +80,7 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
110
80
|
|
|
111
81
|
def quantity_column
|
|
112
82
|
{
|
|
113
|
-
col: {
|
|
83
|
+
col: {class: "w-[7%]"},
|
|
114
84
|
header: :qty,
|
|
115
85
|
data: ->(item) do
|
|
116
86
|
content_tag :div, item.quantity
|
|
@@ -120,7 +90,7 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
120
90
|
|
|
121
91
|
def total_column
|
|
122
92
|
{
|
|
123
|
-
col: {
|
|
93
|
+
col: {class: "w-[10%]"},
|
|
124
94
|
header: t(".total_column_header"),
|
|
125
95
|
data: ->(item) do
|
|
126
96
|
content_tag :div, item.money.to_html
|
|
@@ -130,23 +100,23 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
130
100
|
|
|
131
101
|
def state_column
|
|
132
102
|
{
|
|
133
|
-
col: {
|
|
103
|
+
col: {class: "w-[15%]"},
|
|
134
104
|
header: :state,
|
|
135
105
|
data: ->(item) do
|
|
136
106
|
color = {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
107
|
+
"complete" => :green,
|
|
108
|
+
"returned" => :red,
|
|
109
|
+
"canceled" => :blue,
|
|
110
|
+
"cart" => :graphite_light
|
|
141
111
|
}[item.order.state] || :yellow
|
|
142
|
-
component(
|
|
112
|
+
component("ui/badge").new(name: item.order.state.humanize, color: color)
|
|
143
113
|
end
|
|
144
114
|
}
|
|
145
115
|
end
|
|
146
116
|
|
|
147
117
|
def number_column
|
|
148
118
|
{
|
|
149
|
-
col: {
|
|
119
|
+
col: {class: "w-[18%]"},
|
|
150
120
|
header: t(".number_column_header"),
|
|
151
121
|
data: ->(item) do
|
|
152
122
|
content_tag :div, item.order.number, class: "font-semibold text-sm"
|
|
@@ -160,11 +130,8 @@ class SolidusAdmin::Users::Items::Component < SolidusAdmin::BaseComponent
|
|
|
160
130
|
content = []
|
|
161
131
|
content << item.product.name
|
|
162
132
|
content << "(#{item.variant.options_text})" if item.variant.option_values.any?
|
|
163
|
-
content << "
|
|
133
|
+
content << safe_join([tag.strong("#{t("spree.sku")}:"), " ", item.variant.sku]) if item.variant.sku.present?
|
|
164
134
|
|
|
165
|
-
|
|
166
|
-
# rubocop:disable Rails/OutputSafety
|
|
167
|
-
safe_join([content_tag(:div, content.join("<br>").html_safe, class: "text-sm")])
|
|
168
|
-
# rubocop:enable Rails/OutputSafety
|
|
135
|
+
content_tag(:div, safe_join(content, tag.br), class: "text-sm")
|
|
169
136
|
end
|
|
170
137
|
end
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
en:
|
|
2
2
|
title: "Users / %{email} / Items Purchased"
|
|
3
|
-
account: Account
|
|
4
|
-
addresses: Addresses
|
|
5
|
-
order_history: Order History
|
|
6
|
-
items: Items
|
|
7
|
-
store_credit: Store Credit
|
|
8
|
-
last_active: Last Active
|
|
9
3
|
create_order_for_user: Create order for this user
|
|
10
4
|
items_purchased: Items Purchased
|
|
11
5
|
no_orders_found: No Orders found.
|
|
12
6
|
create_one: Create One
|
|
13
|
-
back: Back
|
|
14
7
|
number_column_header: "Order #"
|
|
15
8
|
description_column_header: "Description"
|
|
16
9
|
total_column_header: "Total"
|
|
@@ -9,9 +9,7 @@
|
|
|
9
9
|
<% end %>
|
|
10
10
|
|
|
11
11
|
<%= page_header do %>
|
|
12
|
-
|
|
13
|
-
<%= render(component("ui/button").new(tag: :a, scheme: :ghost, text: tab[:text], 'aria-current': tab[:current], href: tab[:href])) %>
|
|
14
|
-
<% end %>
|
|
12
|
+
<%= render component("users/edit/tabs").new(user: @user, current: :orders) %>
|
|
15
13
|
<% end %>
|
|
16
14
|
|
|
17
15
|
<%= page_with_sidebar do %>
|
|
@@ -8,36 +8,6 @@ class SolidusAdmin::Users::Orders::Component < SolidusAdmin::BaseComponent
|
|
|
8
8
|
@orders = orders
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def tabs
|
|
12
|
-
[
|
|
13
|
-
{
|
|
14
|
-
text: t('.account'),
|
|
15
|
-
href: solidus_admin.user_path(@user),
|
|
16
|
-
current: false,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
text: t('.addresses'),
|
|
20
|
-
href: solidus_admin.addresses_user_path(@user),
|
|
21
|
-
current: false,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
text: t('.order_history'),
|
|
25
|
-
href: solidus_admin.orders_user_path(@user),
|
|
26
|
-
current: true,
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
text: t('.items'),
|
|
30
|
-
href: spree.items_admin_user_path(@user),
|
|
31
|
-
current: false,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
text: t('.store_credit'),
|
|
35
|
-
href: spree.admin_user_store_credits_path(@user),
|
|
36
|
-
current: false,
|
|
37
|
-
},
|
|
38
|
-
]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
11
|
def model_class
|
|
42
12
|
Spree::Order
|
|
43
13
|
end
|
|
@@ -61,7 +31,7 @@ class SolidusAdmin::Users::Orders::Component < SolidusAdmin::BaseComponent
|
|
|
61
31
|
date_column,
|
|
62
32
|
payment_column,
|
|
63
33
|
shipment_column,
|
|
64
|
-
total_column
|
|
34
|
+
total_column
|
|
65
35
|
]
|
|
66
36
|
end
|
|
67
37
|
|
|
@@ -70,7 +40,7 @@ class SolidusAdmin::Users::Orders::Component < SolidusAdmin::BaseComponent
|
|
|
70
40
|
header: :order,
|
|
71
41
|
data: ->(order) do
|
|
72
42
|
if !row_fade(order)
|
|
73
|
-
content_tag :div, order.number, class:
|
|
43
|
+
content_tag :div, order.number, class: "font-semibold"
|
|
74
44
|
else
|
|
75
45
|
content_tag :div, order.number
|
|
76
46
|
end
|
|
@@ -83,12 +53,12 @@ class SolidusAdmin::Users::Orders::Component < SolidusAdmin::BaseComponent
|
|
|
83
53
|
header: :state,
|
|
84
54
|
data: ->(order) do
|
|
85
55
|
color = {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
56
|
+
"complete" => :green,
|
|
57
|
+
"returned" => :red,
|
|
58
|
+
"canceled" => :blue,
|
|
59
|
+
"cart" => :graphite_light
|
|
90
60
|
}[order.state] || :yellow
|
|
91
|
-
component(
|
|
61
|
+
component("ui/badge").new(name: order.state.humanize, color: color)
|
|
92
62
|
end
|
|
93
63
|
}
|
|
94
64
|
end
|
|
@@ -115,7 +85,7 @@ class SolidusAdmin::Users::Orders::Component < SolidusAdmin::BaseComponent
|
|
|
115
85
|
{
|
|
116
86
|
header: :payment,
|
|
117
87
|
data: ->(order) do
|
|
118
|
-
component(
|
|
88
|
+
component("ui/badge").new(name: order.payment_state.humanize, color: order.paid? ? :green : :yellow) if order.payment_state?
|
|
119
89
|
end
|
|
120
90
|
}
|
|
121
91
|
end
|
|
@@ -124,7 +94,7 @@ class SolidusAdmin::Users::Orders::Component < SolidusAdmin::BaseComponent
|
|
|
124
94
|
{
|
|
125
95
|
header: :shipment,
|
|
126
96
|
data: ->(order) do
|
|
127
|
-
component(
|
|
97
|
+
component("ui/badge").new(name: order.shipment_state.humanize, color: order.shipped? ? :green : :yellow) if order.shipment_state?
|
|
128
98
|
end
|
|
129
99
|
}
|
|
130
100
|
end
|