goca-spree-backend 3.1.14.rails.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 +7 -0
- data/Gemfile +6 -0
- data/Rakefile +15 -0
- data/app/assets/images/admin/payment_banner.png +0 -0
- data/app/assets/images/admin/progress.gif +0 -0
- data/app/assets/images/credit_cards/credit_card.gif +0 -0
- data/app/assets/javascripts/spree/backend/address_states.js +33 -0
- data/app/assets/javascripts/spree/backend/adjustments.js.coffee +17 -0
- data/app/assets/javascripts/spree/backend/admin.js +402 -0
- data/app/assets/javascripts/spree/backend/calculator.js +16 -0
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +89 -0
- data/app/assets/javascripts/spree/backend/gateway.js +13 -0
- data/app/assets/javascripts/spree/backend/general_settings.js.coffee +13 -0
- data/app/assets/javascripts/spree/backend/handlebar_extensions.js +7 -0
- data/app/assets/javascripts/spree/backend/line_items.js.coffee +64 -0
- data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +49 -0
- data/app/assets/javascripts/spree/backend/nested-attribute.js +27 -0
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +43 -0
- data/app/assets/javascripts/spree/backend/option_value_picker.js +45 -0
- data/app/assets/javascripts/spree/backend/orders/edit.js +5 -0
- data/app/assets/javascripts/spree/backend/orders/edit_form.js +21 -0
- data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +145 -0
- data/app/assets/javascripts/spree/backend/payments/new.js +50 -0
- data/app/assets/javascripts/spree/backend/product_picker.js +49 -0
- data/app/assets/javascripts/spree/backend/progress.js.coffee +6 -0
- data/app/assets/javascripts/spree/backend/promotions.js +170 -0
- data/app/assets/javascripts/spree/backend/returns/expedited_exchanges_warning.coffee +4 -0
- data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +35 -0
- data/app/assets/javascripts/spree/backend/shipments.js.erb +334 -0
- data/app/assets/javascripts/spree/backend/spree-select2.js +7 -0
- data/app/assets/javascripts/spree/backend/states.js +11 -0
- data/app/assets/javascripts/spree/backend/stock_management.js.coffee +9 -0
- data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +19 -0
- data/app/assets/javascripts/spree/backend/stock_transfer.js.coffee +198 -0
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +52 -0
- data/app/assets/javascripts/spree/backend/taxon_tree_menu.js.coffee +22 -0
- data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +149 -0
- data/app/assets/javascripts/spree/backend/taxons.js.coffee +87 -0
- data/app/assets/javascripts/spree/backend/user_picker.js +40 -0
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +38 -0
- data/app/assets/javascripts/spree/backend/variant_management.js.coffee +10 -0
- data/app/assets/javascripts/spree/backend/zone.js.coffee +43 -0
- data/app/assets/javascripts/spree/backend.js +79 -0
- data/app/assets/javascripts/spree/frontend/backend.js +1 -0
- data/app/assets/stylesheets/spree/backend/components/_buttons.scss +37 -0
- data/app/assets/stylesheets/spree/backend/components/_filters.scss +26 -0
- data/app/assets/stylesheets/spree/backend/components/_icons.scss +257 -0
- data/app/assets/stylesheets/spree/backend/components/_labels.scss +53 -0
- data/app/assets/stylesheets/spree/backend/components/_main.scss +11 -0
- data/app/assets/stylesheets/spree/backend/components/_navigation.scss +14 -0
- data/app/assets/stylesheets/spree/backend/components/_page_header.scss +32 -0
- data/app/assets/stylesheets/spree/backend/components/_panels.scss +3 -0
- data/app/assets/stylesheets/spree/backend/components/_progress.scss +22 -0
- data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +122 -0
- data/app/assets/stylesheets/spree/backend/components/_spinner.scss +95 -0
- data/app/assets/stylesheets/spree/backend/components/_tables.scss +56 -0
- data/app/assets/stylesheets/spree/backend/components/_taxon_products_view.scss +70 -0
- data/app/assets/stylesheets/spree/backend/components/_variables.scss +12 -0
- data/app/assets/stylesheets/spree/backend/components/_wells.scss +3 -0
- data/app/assets/stylesheets/spree/backend/global/_variables.scss +37 -0
- data/app/assets/stylesheets/spree/backend/plugins/_jquery_ui.scss +109 -0
- data/app/assets/stylesheets/spree/backend/plugins/_js_tree.scss +0 -0
- data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +127 -0
- data/app/assets/stylesheets/spree/backend/sections/_account.scss +16 -0
- data/app/assets/stylesheets/spree/backend/shared/_base.scss +25 -0
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +59 -0
- data/app/assets/stylesheets/spree/backend/shared/_typography.scss +5 -0
- data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +28 -0
- data/app/assets/stylesheets/spree/backend.css +11 -0
- data/app/assets/stylesheets/spree/frontend/backend.css +1 -0
- data/app/controllers/spree/admin/adjustments_controller.rb +38 -0
- data/app/controllers/spree/admin/base_controller.rb +67 -0
- data/app/controllers/spree/admin/countries_controller.rb +11 -0
- data/app/controllers/spree/admin/customer_returns_controller.rb +68 -0
- data/app/controllers/spree/admin/general_settings_controller.rb +40 -0
- data/app/controllers/spree/admin/images_controller.rb +50 -0
- data/app/controllers/spree/admin/log_entries_controller.rb +19 -0
- data/app/controllers/spree/admin/option_types_controller.rb +48 -0
- data/app/controllers/spree/admin/option_values_controller.rb +11 -0
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +74 -0
- data/app/controllers/spree/admin/orders_controller.rb +147 -0
- data/app/controllers/spree/admin/payment_methods_controller.rb +72 -0
- data/app/controllers/spree/admin/payments_controller.rb +103 -0
- data/app/controllers/spree/admin/product_properties_controller.rb +18 -0
- data/app/controllers/spree/admin/products_controller.rb +156 -0
- data/app/controllers/spree/admin/promotion_actions_controller.rb +45 -0
- data/app/controllers/spree/admin/promotion_categories_controller.rb +6 -0
- data/app/controllers/spree/admin/promotion_rules_controller.rb +50 -0
- data/app/controllers/spree/admin/promotions_controller.rb +36 -0
- data/app/controllers/spree/admin/properties_controller.rb +23 -0
- data/app/controllers/spree/admin/prototypes_controller.rb +27 -0
- data/app/controllers/spree/admin/refund_reasons_controller.rb +6 -0
- data/app/controllers/spree/admin/refunds_controller.rb +38 -0
- data/app/controllers/spree/admin/reimbursement_types_controller.rb +6 -0
- data/app/controllers/spree/admin/reimbursements_controller.rb +45 -0
- data/app/controllers/spree/admin/reports_controller.rb +65 -0
- data/app/controllers/spree/admin/resource_controller.rb +260 -0
- data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +6 -0
- data/app/controllers/spree/admin/return_authorizations_controller.rb +51 -0
- data/app/controllers/spree/admin/return_index_controller.rb +28 -0
- data/app/controllers/spree/admin/return_items_controller.rb +9 -0
- data/app/controllers/spree/admin/roles_controller.rb +6 -0
- data/app/controllers/spree/admin/root_controller.rb +18 -0
- data/app/controllers/spree/admin/search_controller.rb +41 -0
- data/app/controllers/spree/admin/shipping_categories_controller.rb +6 -0
- data/app/controllers/spree/admin/shipping_methods_controller.rb +46 -0
- data/app/controllers/spree/admin/state_changes_controller.rb +18 -0
- data/app/controllers/spree/admin/states_controller.rb +29 -0
- data/app/controllers/spree/admin/stock_items_controller.rb +51 -0
- data/app/controllers/spree/admin/stock_locations_controller.rb +16 -0
- data/app/controllers/spree/admin/stock_movements_controller.rb +39 -0
- data/app/controllers/spree/admin/stock_transfers_controller.rb +51 -0
- data/app/controllers/spree/admin/store_credit_categories_controller.rb +6 -0
- data/app/controllers/spree/admin/store_credits_controller.rb +94 -0
- data/app/controllers/spree/admin/tax_categories_controller.rb +6 -0
- data/app/controllers/spree/admin/tax_rates_controller.rb +15 -0
- data/app/controllers/spree/admin/taxonomies_controller.rb +15 -0
- data/app/controllers/spree/admin/taxons_controller.rb +126 -0
- data/app/controllers/spree/admin/trackers_controller.rb +6 -0
- data/app/controllers/spree/admin/users_controller.rb +145 -0
- data/app/controllers/spree/admin/variants_controller.rb +57 -0
- data/app/controllers/spree/admin/variants_including_master_controller.rb +16 -0
- data/app/controllers/spree/admin/zones_controller.rb +26 -0
- data/app/helpers/spree/admin/adjustments_helper.rb +37 -0
- data/app/helpers/spree/admin/base_helper.rb +157 -0
- data/app/helpers/spree/admin/customer_returns_helper.rb +9 -0
- data/app/helpers/spree/admin/general_settings_helper.rb +13 -0
- data/app/helpers/spree/admin/images_helper.rb +18 -0
- data/app/helpers/spree/admin/inventory_settings_helper.rb +9 -0
- data/app/helpers/spree/admin/navigation_helper.rb +248 -0
- data/app/helpers/spree/admin/orders_helper.rb +69 -0
- data/app/helpers/spree/admin/payments_helper.rb +11 -0
- data/app/helpers/spree/admin/products_helper.rb +29 -0
- data/app/helpers/spree/admin/reimbursement_type_helper.rb +9 -0
- data/app/helpers/spree/admin/reimbursements_helper.rb +14 -0
- data/app/helpers/spree/admin/stock_locations_helper.rb +15 -0
- data/app/helpers/spree/admin/stock_movements_helper.rb +24 -0
- data/app/helpers/spree/admin/tables_helper.rb +15 -0
- data/app/helpers/spree/admin/taxons_helper.rb +9 -0
- data/app/helpers/spree/promotion_rules_helper.rb +13 -0
- data/app/models/spree/admin/resource.rb +35 -0
- data/app/models/spree/backend_configuration.rb +21 -0
- data/app/views/kaminari/_first_page.html.erb +11 -0
- data/app/views/kaminari/_gap.html.erb +8 -0
- data/app/views/kaminari/_last_page.html.erb +11 -0
- data/app/views/kaminari/_next_page.html.erb +15 -0
- data/app/views/kaminari/_page.html.erb +12 -0
- data/app/views/kaminari/_paginator.html.erb +23 -0
- data/app/views/kaminari/_prev_page.html.erb +15 -0
- data/app/views/spree/admin/adjustments/_adjustment.html.erb +17 -0
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +31 -0
- data/app/views/spree/admin/adjustments/_form.html.erb +12 -0
- data/app/views/spree/admin/adjustments/edit.html.erb +19 -0
- data/app/views/spree/admin/adjustments/index.html.erb +34 -0
- data/app/views/spree/admin/adjustments/new.html.erb +19 -0
- data/app/views/spree/admin/countries/_form.html.erb +20 -0
- data/app/views/spree/admin/countries/edit.html.erb +14 -0
- data/app/views/spree/admin/countries/index.html.erb +31 -0
- data/app/views/spree/admin/countries/new.html.erb +13 -0
- data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +36 -0
- data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +50 -0
- data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +45 -0
- data/app/views/spree/admin/customer_returns/edit.html.erb +61 -0
- data/app/views/spree/admin/customer_returns/index.html.erb +56 -0
- data/app/views/spree/admin/customer_returns/new.html.erb +47 -0
- data/app/views/spree/admin/general_settings/edit.html.erb +143 -0
- data/app/views/spree/admin/images/_form.html.erb +18 -0
- data/app/views/spree/admin/images/edit.html.erb +30 -0
- data/app/views/spree/admin/images/index.html.erb +55 -0
- data/app/views/spree/admin/images/new.html.erb +19 -0
- data/app/views/spree/admin/inventory_units/adjust.html.erb +29 -0
- data/app/views/spree/admin/log_entries/index.html.erb +33 -0
- data/app/views/spree/admin/option_types/_form.html.erb +17 -0
- data/app/views/spree/admin/option_types/_option_value_fields.html.erb +9 -0
- data/app/views/spree/admin/option_types/edit.html.erb +49 -0
- data/app/views/spree/admin/option_types/index.html.erb +44 -0
- data/app/views/spree/admin/option_types/new.html.erb +13 -0
- data/app/views/spree/admin/orders/_add_line_item.html.erb +17 -0
- data/app/views/spree/admin/orders/_add_product.html.erb +18 -0
- data/app/views/spree/admin/orders/_adjustments.html.erb +33 -0
- data/app/views/spree/admin/orders/_form.html.erb +56 -0
- data/app/views/spree/admin/orders/_line_item.html.erb +21 -0
- data/app/views/spree/admin/orders/_line_items.html.erb +46 -0
- data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +39 -0
- data/app/views/spree/admin/orders/_order_actions.html.erb +12 -0
- data/app/views/spree/admin/orders/_risk_analysis.html.erb +47 -0
- data/app/views/spree/admin/orders/_shipment.html.erb +108 -0
- data/app/views/spree/admin/orders/_shipment_manifest.html.erb +42 -0
- data/app/views/spree/admin/orders/cart.html.erb +31 -0
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +106 -0
- data/app/views/spree/admin/orders/customer_details/edit.html.erb +29 -0
- data/app/views/spree/admin/orders/edit.html.erb +35 -0
- data/app/views/spree/admin/orders/index.html.erb +226 -0
- data/app/views/spree/admin/payment_methods/_form.html.erb +56 -0
- data/app/views/spree/admin/payment_methods/edit.html.erb +13 -0
- data/app/views/spree/admin/payment_methods/index.html.erb +46 -0
- data/app/views/spree/admin/payment_methods/new.html.erb +13 -0
- data/app/views/spree/admin/payments/_capture_events.html.erb +19 -0
- data/app/views/spree/admin/payments/_form.html.erb +33 -0
- data/app/views/spree/admin/payments/_list.html.erb +38 -0
- data/app/views/spree/admin/payments/credit.html.erb +18 -0
- data/app/views/spree/admin/payments/index.html.erb +38 -0
- data/app/views/spree/admin/payments/new.html.erb +25 -0
- data/app/views/spree/admin/payments/show.html.erb +28 -0
- data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +56 -0
- data/app/views/spree/admin/payments/source_forms/_storecredit.html.erb +9 -0
- data/app/views/spree/admin/payments/source_views/_check.html.erb +0 -0
- data/app/views/spree/admin/payments/source_views/_gateway.html.erb +21 -0
- data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +29 -0
- data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +19 -0
- data/app/views/spree/admin/product_properties/index.html.erb +43 -0
- data/app/views/spree/admin/products/_add_stock_form.html.erb +42 -0
- data/app/views/spree/admin/products/_autocomplete.js.erb +25 -0
- data/app/views/spree/admin/products/_form.html.erb +224 -0
- data/app/views/spree/admin/products/_properties_form.erb +10 -0
- data/app/views/spree/admin/products/edit.html.erb +15 -0
- data/app/views/spree/admin/products/index.html.erb +91 -0
- data/app/views/spree/admin/products/new.html.erb +89 -0
- data/app/views/spree/admin/products/stock.html.erb +78 -0
- data/app/views/spree/admin/promotion_actions/create.js.erb +12 -0
- data/app/views/spree/admin/promotion_actions/destroy.js.erb +1 -0
- data/app/views/spree/admin/promotion_categories/_form.html.erb +11 -0
- data/app/views/spree/admin/promotion_categories/edit.html.erb +11 -0
- data/app/views/spree/admin/promotion_categories/index.html.erb +34 -0
- data/app/views/spree/admin/promotion_categories/new.html.erb +11 -0
- data/app/views/spree/admin/promotion_rules/create.js.erb +10 -0
- data/app/views/spree/admin/promotion_rules/destroy.js.erb +3 -0
- data/app/views/spree/admin/promotions/_actions.html.erb +35 -0
- data/app/views/spree/admin/promotions/_form.html.erb +60 -0
- data/app/views/spree/admin/promotions/_promotion_action.html.erb +12 -0
- data/app/views/spree/admin/promotions/_promotion_rule.html.erb +11 -0
- data/app/views/spree/admin/promotions/_rules.html.erb +46 -0
- data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +30 -0
- data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +28 -0
- data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +25 -0
- data/app/views/spree/admin/promotions/calculators/_default_fields.html.erb +10 -0
- data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +42 -0
- data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +42 -0
- data/app/views/spree/admin/promotions/edit.html.erb +30 -0
- data/app/views/spree/admin/promotions/index.html.erb +82 -0
- data/app/views/spree/admin/promotions/new.html.erb +11 -0
- data/app/views/spree/admin/promotions/rules/_item_total.html.erb +12 -0
- data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +9 -0
- data/app/views/spree/admin/promotions/rules/_option_value.html.erb +42 -0
- data/app/views/spree/admin/promotions/rules/_product.html.erb +10 -0
- data/app/views/spree/admin/promotions/rules/_taxon.html.erb +10 -0
- data/app/views/spree/admin/promotions/rules/_user.html.erb +6 -0
- data/app/views/spree/admin/properties/_form.html.erb +16 -0
- data/app/views/spree/admin/properties/edit.html.erb +13 -0
- data/app/views/spree/admin/properties/index.html.erb +68 -0
- data/app/views/spree/admin/properties/new.html.erb +15 -0
- data/app/views/spree/admin/prototypes/_form.html.erb +28 -0
- data/app/views/spree/admin/prototypes/_prototypes.html.erb +21 -0
- data/app/views/spree/admin/prototypes/available.js.erb +2 -0
- data/app/views/spree/admin/prototypes/edit.html.erb +13 -0
- data/app/views/spree/admin/prototypes/index.html.erb +34 -0
- data/app/views/spree/admin/prototypes/new.html.erb +13 -0
- data/app/views/spree/admin/prototypes/select.js.erb +4 -0
- data/app/views/spree/admin/prototypes/show.html.erb +39 -0
- data/app/views/spree/admin/refund_reasons/destroy.js.erb +1 -0
- data/app/views/spree/admin/refund_reasons/edit.html.erb +3 -0
- data/app/views/spree/admin/refund_reasons/index.html.erb +6 -0
- data/app/views/spree/admin/refund_reasons/new.html.erb +4 -0
- data/app/views/spree/admin/refunds/edit.html.erb +27 -0
- data/app/views/spree/admin/refunds/new.html.erb +35 -0
- data/app/views/spree/admin/reimbursement_types/index.html.erb +30 -0
- data/app/views/spree/admin/reimbursements/edit.html.erb +102 -0
- data/app/views/spree/admin/reimbursements/index.html.erb +28 -0
- data/app/views/spree/admin/reimbursements/show.html.erb +90 -0
- data/app/views/spree/admin/reports/index.html.erb +20 -0
- data/app/views/spree/admin/reports/sales_total.html.erb +29 -0
- data/app/views/spree/admin/return_authorization_reasons/destroy.js.erb +1 -0
- data/app/views/spree/admin/return_authorization_reasons/edit.html.erb +3 -0
- data/app/views/spree/admin/return_authorization_reasons/index.html.erb +6 -0
- data/app/views/spree/admin/return_authorization_reasons/new.html.erb +4 -0
- data/app/views/spree/admin/return_authorizations/_form.html.erb +91 -0
- data/app/views/spree/admin/return_authorizations/edit.html.erb +26 -0
- data/app/views/spree/admin/return_authorizations/index.html.erb +53 -0
- data/app/views/spree/admin/return_authorizations/new.html.erb +18 -0
- data/app/views/spree/admin/return_index/customer_returns.html.erb +64 -0
- data/app/views/spree/admin/return_index/return_authorizations.html.erb +76 -0
- data/app/views/spree/admin/roles/_form.html.erb +9 -0
- data/app/views/spree/admin/roles/edit.html.erb +13 -0
- data/app/views/spree/admin/roles/index.html.erb +34 -0
- data/app/views/spree/admin/roles/new.html.erb +13 -0
- data/app/views/spree/admin/search/products.rabl +9 -0
- data/app/views/spree/admin/search/users.rabl +30 -0
- data/app/views/spree/admin/shared/_address.html.erb +38 -0
- data/app/views/spree/admin/shared/_address_form.html.erb +78 -0
- data/app/views/spree/admin/shared/_calculator_fields.html.erb +27 -0
- data/app/views/spree/admin/shared/_content_header.html.erb +26 -0
- data/app/views/spree/admin/shared/_destroy.js.erb +9 -0
- data/app/views/spree/admin/shared/_edit_resource_links.html.erb +5 -0
- data/app/views/spree/admin/shared/_error_messages.html.erb +12 -0
- data/app/views/spree/admin/shared/_head.html.erb +26 -0
- data/app/views/spree/admin/shared/_header.html.erb +32 -0
- data/app/views/spree/admin/shared/_index_table_options.html.erb +19 -0
- data/app/views/spree/admin/shared/_main_menu.html.erb +41 -0
- data/app/views/spree/admin/shared/_new_resource_links.html.erb +5 -0
- data/app/views/spree/admin/shared/_order_summary.html.erb +121 -0
- data/app/views/spree/admin/shared/_order_tabs.html.erb +60 -0
- data/app/views/spree/admin/shared/_product_tabs.html.erb +24 -0
- data/app/views/spree/admin/shared/_refunds.html.erb +32 -0
- data/app/views/spree/admin/shared/_report_order_criteria.html.erb +17 -0
- data/app/views/spree/admin/shared/_sidebar.html.erb +5 -0
- data/app/views/spree/admin/shared/_table_filter.html.erb +24 -0
- data/app/views/spree/admin/shared/_translations.html.erb +48 -0
- data/app/views/spree/admin/shared/_update_order_state.js +7 -0
- data/app/views/spree/admin/shared/named_types/_edit.html.erb +13 -0
- data/app/views/spree/admin/shared/named_types/_form.html.erb +13 -0
- data/app/views/spree/admin/shared/named_types/_index.html.erb +42 -0
- data/app/views/spree/admin/shared/named_types/_new.html.erb +13 -0
- data/app/views/spree/admin/shared/sub_menu/_configuration.html.erb +23 -0
- data/app/views/spree/admin/shared/sub_menu/_product.html.erb +8 -0
- data/app/views/spree/admin/shared/sub_menu/_promotion.html.erb +4 -0
- data/app/views/spree/admin/shared/sub_menu/_returns.html.erb +4 -0
- data/app/views/spree/admin/shipping_categories/_form.html.erb +9 -0
- data/app/views/spree/admin/shipping_categories/edit.html.erb +11 -0
- data/app/views/spree/admin/shipping_categories/index.html.erb +34 -0
- data/app/views/spree/admin/shipping_categories/new.html.erb +13 -0
- data/app/views/spree/admin/shipping_methods/_form.html.erb +119 -0
- data/app/views/spree/admin/shipping_methods/edit.html.erb +17 -0
- data/app/views/spree/admin/shipping_methods/index.html.erb +40 -0
- data/app/views/spree/admin/shipping_methods/new.html.erb +20 -0
- data/app/views/spree/admin/state_changes/index.html.erb +42 -0
- data/app/views/spree/admin/states/_form.html.erb +15 -0
- data/app/views/spree/admin/states/_state_list.html.erb +26 -0
- data/app/views/spree/admin/states/edit.html.erb +13 -0
- data/app/views/spree/admin/states/index.html.erb +18 -0
- data/app/views/spree/admin/states/new.html.erb +13 -0
- data/app/views/spree/admin/states/new.js.erb +2 -0
- data/app/views/spree/admin/stock_items/destroy.js.erb +1 -0
- data/app/views/spree/admin/stock_locations/_form.html.erb +95 -0
- data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +39 -0
- data/app/views/spree/admin/stock_locations/edit.html.erb +13 -0
- data/app/views/spree/admin/stock_locations/index.html.erb +41 -0
- data/app/views/spree/admin/stock_locations/new.html.erb +13 -0
- data/app/views/spree/admin/stock_movements/_form.html.erb +12 -0
- data/app/views/spree/admin/stock_movements/edit.html.erb +17 -0
- data/app/views/spree/admin/stock_movements/index.html.erb +43 -0
- data/app/views/spree/admin/stock_movements/new.html.erb +14 -0
- data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +22 -0
- data/app/views/spree/admin/stock_transfers/index.html.erb +82 -0
- data/app/views/spree/admin/stock_transfers/new.html.erb +107 -0
- data/app/views/spree/admin/stock_transfers/show.html.erb +44 -0
- data/app/views/spree/admin/store_credit_categories/_form.html.erb +9 -0
- data/app/views/spree/admin/store_credit_categories/edit.html.erb +13 -0
- data/app/views/spree/admin/store_credit_categories/index.html.erb +34 -0
- data/app/views/spree/admin/store_credit_categories/new.html.erb +13 -0
- data/app/views/spree/admin/store_credits/_form.html.erb +18 -0
- data/app/views/spree/admin/store_credits/edit.html.erb +14 -0
- data/app/views/spree/admin/store_credits/index.html.erb +46 -0
- data/app/views/spree/admin/store_credits/new.html.erb +14 -0
- data/app/views/spree/admin/tax_categories/_form.html.erb +24 -0
- data/app/views/spree/admin/tax_categories/edit.html.erb +13 -0
- data/app/views/spree/admin/tax_categories/index.html.erb +42 -0
- data/app/views/spree/admin/tax_categories/new.html.erb +13 -0
- data/app/views/spree/admin/tax_categories/show.html.erb +1 -0
- data/app/views/spree/admin/tax_rates/_form.html.erb +54 -0
- data/app/views/spree/admin/tax_rates/edit.html.erb +11 -0
- data/app/views/spree/admin/tax_rates/index.html.erb +46 -0
- data/app/views/spree/admin/tax_rates/new.html.erb +14 -0
- data/app/views/spree/admin/taxonomies/_form.html.erb +7 -0
- data/app/views/spree/admin/taxonomies/_js_head.html.erb +13 -0
- data/app/views/spree/admin/taxonomies/_list.html.erb +23 -0
- data/app/views/spree/admin/taxonomies/edit.erb +37 -0
- data/app/views/spree/admin/taxonomies/index.html.erb +18 -0
- data/app/views/spree/admin/taxonomies/new.html.erb +12 -0
- data/app/views/spree/admin/taxons/_form.html.erb +46 -0
- data/app/views/spree/admin/taxons/_taxon_table.html.erb +23 -0
- data/app/views/spree/admin/taxons/edit.html.erb +32 -0
- data/app/views/spree/admin/taxons/index.html.erb +13 -0
- data/app/views/spree/admin/trackers/_form.html.erb +29 -0
- data/app/views/spree/admin/trackers/edit.html.erb +13 -0
- data/app/views/spree/admin/trackers/index.html.erb +42 -0
- data/app/views/spree/admin/trackers/new.html.erb +13 -0
- data/app/views/spree/admin/users/_addresses_form.html.erb +35 -0
- data/app/views/spree/admin/users/_form.html.erb +36 -0
- data/app/views/spree/admin/users/_lifetime_stats.html.erb +30 -0
- data/app/views/spree/admin/users/_sidebar.html.erb +23 -0
- data/app/views/spree/admin/users/_user_page_actions.html.erb +3 -0
- data/app/views/spree/admin/users/addresses.html.erb +26 -0
- data/app/views/spree/admin/users/edit.html.erb +72 -0
- data/app/views/spree/admin/users/index.html.erb +67 -0
- data/app/views/spree/admin/users/items.html.erb +64 -0
- data/app/views/spree/admin/users/new.html.erb +18 -0
- data/app/views/spree/admin/users/orders.html.erb +52 -0
- data/app/views/spree/admin/variants/_autocomplete.js.erb +21 -0
- data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +46 -0
- data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +48 -0
- data/app/views/spree/admin/variants/_form.html.erb +49 -0
- data/app/views/spree/admin/variants/_split.js.erb +33 -0
- data/app/views/spree/admin/variants/edit.html.erb +13 -0
- data/app/views/spree/admin/variants/index.html.erb +65 -0
- data/app/views/spree/admin/variants/new.html.erb +11 -0
- data/app/views/spree/admin/variants/new.js.erb +3 -0
- data/app/views/spree/admin/variants/update.js.erb +1 -0
- data/app/views/spree/admin/zones/_country_members.html.erb +16 -0
- data/app/views/spree/admin/zones/_form.html.erb +49 -0
- data/app/views/spree/admin/zones/_state_members.html.erb +16 -0
- data/app/views/spree/admin/zones/edit.html.erb +12 -0
- data/app/views/spree/admin/zones/index.html.erb +44 -0
- data/app/views/spree/admin/zones/new.html.erb +11 -0
- data/app/views/spree/layouts/admin.html.erb +81 -0
- data/config/initializers/assets.rb +1 -0
- data/config/initializers/form_builder.rb +15 -0
- data/config/routes.rb +185 -0
- data/lib/spree/backend/action_callbacks.rb +26 -0
- data/lib/spree/backend/callbacks.rb +48 -0
- data/lib/spree/backend/engine.rb +34 -0
- data/lib/spree/backend.rb +13 -0
- data/lib/spree_backend.rb +3 -0
- data/script/rails +9 -0
- data/spree_backend.gemspec +28 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/vendor/assets/javascripts/handlebars.js +2746 -0
- data/vendor/assets/javascripts/jquery.cookie.js +117 -0
- data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +4564 -0
- data/vendor/assets/javascripts/modernizr.js +4 -0
- data/vendor/assets/javascripts/underscore-min.js +6 -0
- data/vendor/assets/javascripts/underscore-min.map +1 -0
- data/vendor/assets/javascripts/velocity.js +3831 -0
- data/vendor/assets/stylesheets/animate.css +3158 -0
- data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +357 -0
- data/vendor/assets/stylesheets/jquery.jstree/themes/spree/style.scss +216 -0
- data/vendor/assets/stylesheets/jquery.jstree/themes/spree/throbber.gif +0 -0
- metadata +565 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
var formFields = $("[data-hook='admin_customer_return_form_fields'], \
|
3
|
+
[data-hook='admin_return_authorization_form_fields']");
|
4
|
+
|
5
|
+
if(formFields.length > 0) {
|
6
|
+
function checkAddItemBox() {
|
7
|
+
$(this).closest('tr').find('input.add-item').attr('checked', 'checked');
|
8
|
+
updateSuggestedAmount();
|
9
|
+
}
|
10
|
+
|
11
|
+
function updateSuggestedAmount() {
|
12
|
+
var totalPretaxRefund = 0;
|
13
|
+
var checkedItems = formFields.find('input.add-item:checked');
|
14
|
+
$.each(checkedItems, function(i, checkbox) {
|
15
|
+
totalPretaxRefund += parseFloat($(checkbox).parents('tr').find('.refund-amount-input').val());
|
16
|
+
});
|
17
|
+
|
18
|
+
var displayTotal = isNaN(totalPretaxRefund) ? '' : totalPretaxRefund.toFixed(2);
|
19
|
+
formFields.find('span#total_pre_tax_refund').html(displayTotal);
|
20
|
+
}
|
21
|
+
|
22
|
+
updateSuggestedAmount();
|
23
|
+
|
24
|
+
formFields.find('input#select-all').on('change', function(ev) {
|
25
|
+
var checkBoxes = $(ev.currentTarget).parents('table:first').find('input.add-item');
|
26
|
+
checkBoxes.prop('checked', this.checked);
|
27
|
+
updateSuggestedAmount();
|
28
|
+
});
|
29
|
+
|
30
|
+
formFields.find('input.add-item').on('change', updateSuggestedAmount);
|
31
|
+
formFields.find('.refund-amount-input').on('keyup', updateSuggestedAmount);
|
32
|
+
|
33
|
+
formFields.find('input, select').not('.add-item').on('change', checkAddItemBox);
|
34
|
+
}
|
35
|
+
});
|
@@ -0,0 +1,334 @@
|
|
1
|
+
// Shipments AJAX API
|
2
|
+
$(document).ready(function () {
|
3
|
+
'use strict';
|
4
|
+
|
5
|
+
// handle variant selection, show stock level.
|
6
|
+
$('#add_variant_id').change(function(){
|
7
|
+
var variant_id = $(this).val();
|
8
|
+
|
9
|
+
var variant = _.find(window.variants, function(variant){
|
10
|
+
return variant.id == variant_id
|
11
|
+
})
|
12
|
+
$('#stock_details').html(variantStockTemplate({variant: variant}));
|
13
|
+
$('#stock_details').show();
|
14
|
+
|
15
|
+
$('button.add_variant').click(addVariantFromStockLocation);
|
16
|
+
});
|
17
|
+
|
18
|
+
//handle edit click
|
19
|
+
$('a.edit-item').click(toggleItemEdit);
|
20
|
+
|
21
|
+
//handle cancel click
|
22
|
+
$('a.cancel-item').click(toggleItemEdit);
|
23
|
+
|
24
|
+
//handle split click
|
25
|
+
$('a.split-item').click(startItemSplit);
|
26
|
+
|
27
|
+
//handle save click
|
28
|
+
$('a.save-item').click(function(){
|
29
|
+
var save = $(this);
|
30
|
+
var shipment_number = save.data('shipment-number');
|
31
|
+
var variant_id = save.data('variant-id');
|
32
|
+
|
33
|
+
var quantity = parseInt(save.parents('tr').find('input.line_item_quantity').val());
|
34
|
+
|
35
|
+
toggleItemEdit();
|
36
|
+
adjustShipmentItems(shipment_number, variant_id, quantity);
|
37
|
+
return false;
|
38
|
+
});
|
39
|
+
|
40
|
+
//handle delete click
|
41
|
+
$('a.delete-item').click(function(event){
|
42
|
+
if (confirm(Spree.translations.are_you_sure_delete)) {
|
43
|
+
var del = $(this);
|
44
|
+
var shipment_number = del.data('shipment-number');
|
45
|
+
var variant_id = del.data('variant-id');
|
46
|
+
|
47
|
+
toggleItemEdit();
|
48
|
+
adjustShipmentItems(shipment_number, variant_id, 0);
|
49
|
+
}
|
50
|
+
return false;
|
51
|
+
});
|
52
|
+
|
53
|
+
// handle ship click
|
54
|
+
$('[data-hook=admin_shipment_form] a.ship').on('click', function () {
|
55
|
+
var link = $(this);
|
56
|
+
var shipment_number = link.data('shipment-number');
|
57
|
+
var url = Spree.url(Spree.routes.shipments_api + '/' + shipment_number + '/ship.json');
|
58
|
+
$.ajax({
|
59
|
+
type: 'PUT',
|
60
|
+
url: url,
|
61
|
+
data: {
|
62
|
+
token: Spree.api_key
|
63
|
+
}
|
64
|
+
}).done(function () {
|
65
|
+
window.location.reload();
|
66
|
+
}).error(function (msg) {
|
67
|
+
console.log(msg);
|
68
|
+
});
|
69
|
+
});
|
70
|
+
|
71
|
+
// handle shipping method edit click
|
72
|
+
$('a.edit-method').click(toggleMethodEdit);
|
73
|
+
$('a.cancel-method').click(toggleMethodEdit);
|
74
|
+
|
75
|
+
// handle shipping method save
|
76
|
+
$('[data-hook=admin_shipment_form] a.save-method').on('click', function (event) {
|
77
|
+
event.preventDefault();
|
78
|
+
|
79
|
+
var link = $(this);
|
80
|
+
var shipment_number = link.data('shipment-number');
|
81
|
+
var selected_shipping_rate_id = link.parents('tbody').find("select#selected_shipping_rate_id[data-shipment-number='" + shipment_number + "']").val();
|
82
|
+
var unlock = link.parents('tbody').find("input[name='open_adjustment'][data-shipment-number='" + shipment_number + "']:checked").val();
|
83
|
+
var url = Spree.url(Spree.routes.shipments_api + '/' + shipment_number + '.json');
|
84
|
+
|
85
|
+
$.ajax({
|
86
|
+
type: 'PUT',
|
87
|
+
url: url,
|
88
|
+
data: {
|
89
|
+
shipment: {
|
90
|
+
selected_shipping_rate_id: selected_shipping_rate_id,
|
91
|
+
unlock: unlock
|
92
|
+
},
|
93
|
+
token: Spree.api_key
|
94
|
+
}
|
95
|
+
}).done(function () {
|
96
|
+
window.location.reload();
|
97
|
+
}).error(function (msg) {
|
98
|
+
console.log(msg);
|
99
|
+
});
|
100
|
+
});
|
101
|
+
|
102
|
+
var toggleTrackingEdit = function(event) {
|
103
|
+
event.preventDefault();
|
104
|
+
|
105
|
+
var link = $(this);
|
106
|
+
link.parents('tbody').find('tr.edit-tracking').toggle();
|
107
|
+
link.parents('tbody').find('tr.show-tracking').toggle();
|
108
|
+
}
|
109
|
+
|
110
|
+
// handle tracking edit click
|
111
|
+
$('a.edit-tracking').click(toggleTrackingEdit);
|
112
|
+
$('a.cancel-tracking').click(toggleTrackingEdit);
|
113
|
+
|
114
|
+
// handle tracking save
|
115
|
+
$('[data-hook=admin_shipment_form] a.save-tracking').on('click', function (event) {
|
116
|
+
event.preventDefault();
|
117
|
+
|
118
|
+
var link = $(this);
|
119
|
+
var shipment_number = link.data('shipment-number');
|
120
|
+
var tracking = link.parents('tbody').find('input#tracking').val();
|
121
|
+
var url = Spree.url(Spree.routes.shipments_api + '/' + shipment_number + '.json');
|
122
|
+
|
123
|
+
$.ajax({
|
124
|
+
type: 'PUT',
|
125
|
+
url: url,
|
126
|
+
data: {
|
127
|
+
shipment: {
|
128
|
+
tracking: tracking
|
129
|
+
},
|
130
|
+
token: Spree.api_key
|
131
|
+
}
|
132
|
+
}).done(function (data) {
|
133
|
+
link.parents('tbody').find('tr.edit-tracking').toggle();
|
134
|
+
|
135
|
+
var show = link.parents('tbody').find('tr.show-tracking');
|
136
|
+
show.toggle();
|
137
|
+
show.find('.tracking-value').html($("<strong>").html("<%= Spree.t(:tracking) %>: ")).append(data.tracking);
|
138
|
+
});
|
139
|
+
});
|
140
|
+
});
|
141
|
+
|
142
|
+
adjustShipmentItems = function(shipment_number, variant_id, quantity){
|
143
|
+
var shipment = _.findWhere(shipments, {number: shipment_number + ''});
|
144
|
+
var inventory_units = _.where(shipment.inventory_units, {variant_id: variant_id});
|
145
|
+
|
146
|
+
var url = Spree.routes.shipments_api + "/" + shipment_number;
|
147
|
+
|
148
|
+
var new_quantity = 0;
|
149
|
+
if(inventory_units.length<quantity){
|
150
|
+
url += "/add"
|
151
|
+
new_quantity = (quantity - inventory_units.length);
|
152
|
+
}else if(inventory_units.length>quantity){
|
153
|
+
url += "/remove"
|
154
|
+
new_quantity = (inventory_units.length - quantity);
|
155
|
+
}
|
156
|
+
url += '.json';
|
157
|
+
|
158
|
+
if(new_quantity!=0){
|
159
|
+
$.ajax({
|
160
|
+
type: "PUT",
|
161
|
+
url: Spree.url(url),
|
162
|
+
data: {
|
163
|
+
variant_id: variant_id,
|
164
|
+
quantity: new_quantity,
|
165
|
+
token: Spree.api_key
|
166
|
+
}
|
167
|
+
}).done(function( msg ) {
|
168
|
+
window.location.reload();
|
169
|
+
}).fail(function(msg) {
|
170
|
+
alert(msg.responseJSON.message)
|
171
|
+
});
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
toggleMethodEdit = function(){
|
176
|
+
var link = $(this);
|
177
|
+
link.parents('tbody').find('tr.edit-method').toggle();
|
178
|
+
link.parents('tbody').find('tr.show-method').toggle();
|
179
|
+
|
180
|
+
return false;
|
181
|
+
}
|
182
|
+
|
183
|
+
toggleItemEdit = function(){
|
184
|
+
var link = $(this);
|
185
|
+
link.parent().find('a.edit-item').toggle();
|
186
|
+
link.parent().find('a.cancel-item').toggle();
|
187
|
+
link.parent().find('a.split-item').toggle();
|
188
|
+
link.parent().find('a.save-item').toggle();
|
189
|
+
link.parent().find('a.delete-item').toggle();
|
190
|
+
link.parents('tr').find('td.item-qty-show').toggle();
|
191
|
+
link.parents('tr').find('td.item-qty-edit').toggle();
|
192
|
+
|
193
|
+
return false;
|
194
|
+
}
|
195
|
+
|
196
|
+
startItemSplit = function(event){
|
197
|
+
event.preventDefault();
|
198
|
+
var link = $(this);
|
199
|
+
link.parent().find('a.edit-item').toggle();
|
200
|
+
link.parent().find('a.split-item').toggle();
|
201
|
+
link.parent().find('a.delete-item').toggle();
|
202
|
+
var variant_id = link.data('variant-id');
|
203
|
+
|
204
|
+
var variant = {};
|
205
|
+
$.ajax({
|
206
|
+
type: "GET",
|
207
|
+
async: false,
|
208
|
+
url: Spree.url(Spree.routes.variants_api),
|
209
|
+
data: {
|
210
|
+
q: {
|
211
|
+
"id_eq": variant_id
|
212
|
+
},
|
213
|
+
token: Spree.api_key
|
214
|
+
}
|
215
|
+
}).success(function( data ) {
|
216
|
+
variant = data['variants'][0];
|
217
|
+
}).error(function( msg ) {
|
218
|
+
console.log(msg);
|
219
|
+
});
|
220
|
+
|
221
|
+
var max_quantity = link.closest('tr').data('item-quantity');
|
222
|
+
var split_item_template = Handlebars.compile($('#variant_split_template').text());
|
223
|
+
link.closest('tr').after(split_item_template({ variant: variant, shipments: shipments, max_quantity: max_quantity }));
|
224
|
+
$('a.cancel-split').click(cancelItemSplit);
|
225
|
+
$('a.save-split').click(completeItemSplit);
|
226
|
+
|
227
|
+
$('#item_stock_location').select2({ width: 'resolve', placeholder: Spree.translations.item_stock_placeholder });
|
228
|
+
}
|
229
|
+
|
230
|
+
completeItemSplit = function(event) {
|
231
|
+
event.preventDefault();
|
232
|
+
|
233
|
+
if($('#item_stock_location').val() === ""){
|
234
|
+
alert('Please select the split destination.');
|
235
|
+
return false;
|
236
|
+
}
|
237
|
+
|
238
|
+
var link = $(this);
|
239
|
+
var stock_item_row = link.closest('tr');
|
240
|
+
var variant_id = stock_item_row.data('variant-id');
|
241
|
+
var quantity = stock_item_row.find('#item_quantity').val();
|
242
|
+
|
243
|
+
var stock_location_id = stock_item_row.find('#item_stock_location').val();
|
244
|
+
var original_shipment_number = link.closest('tbody').data('shipment-number');
|
245
|
+
|
246
|
+
var selected_shipment = stock_item_row.find($('#item_stock_location').select2('data').element);
|
247
|
+
var target_shipment_number = selected_shipment.data('shipment-number');
|
248
|
+
var new_shipment = selected_shipment.data('new-shipment');
|
249
|
+
|
250
|
+
if (stock_location_id != 'new_shipment') {
|
251
|
+
if (new_shipment != undefined) {
|
252
|
+
// TRANSFER TO A NEW LOCATION
|
253
|
+
$.ajax({
|
254
|
+
type: "POST",
|
255
|
+
async: false,
|
256
|
+
url: Spree.url(Spree.routes.shipments_api + "/transfer_to_location"),
|
257
|
+
data: {
|
258
|
+
original_shipment_number: original_shipment_number,
|
259
|
+
variant_id: variant_id,
|
260
|
+
quantity: quantity,
|
261
|
+
stock_location_id: stock_location_id,
|
262
|
+
token: Spree.api_key
|
263
|
+
}
|
264
|
+
}).error(function(msg) {
|
265
|
+
alert(msg.responseJSON['message']);
|
266
|
+
}).done(function(msg) {
|
267
|
+
window.Spree.advanceOrder();
|
268
|
+
});
|
269
|
+
} else {
|
270
|
+
// TRANSFER TO AN EXISTING SHIPMENT
|
271
|
+
$.ajax({
|
272
|
+
type: "POST",
|
273
|
+
async: false,
|
274
|
+
url: Spree.url(Spree.routes.shipments_api + "/transfer_to_shipment"),
|
275
|
+
data: {
|
276
|
+
original_shipment_number: original_shipment_number,
|
277
|
+
target_shipment_number: target_shipment_number,
|
278
|
+
variant_id: variant_id,
|
279
|
+
quantity: quantity,
|
280
|
+
token: Spree.api_key
|
281
|
+
}
|
282
|
+
}).error(function(msg) {
|
283
|
+
alert(msg.responseJSON['message']);
|
284
|
+
}).done(function(msg) {
|
285
|
+
window.Spree.advanceOrder();
|
286
|
+
});
|
287
|
+
}
|
288
|
+
}
|
289
|
+
}
|
290
|
+
|
291
|
+
cancelItemSplit = function(event) {
|
292
|
+
event.preventDefault();
|
293
|
+
var link = $(this);
|
294
|
+
var prev_row = link.closest('tr').prev();
|
295
|
+
link.closest('tr').remove();
|
296
|
+
prev_row.find('a.edit-item').toggle();
|
297
|
+
prev_row.find('a.split-item').toggle();
|
298
|
+
prev_row.find('a.delete-item').toggle();
|
299
|
+
}
|
300
|
+
|
301
|
+
addVariantFromStockLocation = function(event) {
|
302
|
+
event.preventDefault();
|
303
|
+
|
304
|
+
$('#stock_details').hide();
|
305
|
+
|
306
|
+
var variant_id = $('input.variant_autocomplete').val();
|
307
|
+
var stock_location_id = $(this).data('stock-location-id');
|
308
|
+
var quantity = $("input.quantity[data-stock-location-id='" + stock_location_id + "']").val();
|
309
|
+
|
310
|
+
var shipment = _.find(shipments, function(shipment){
|
311
|
+
return shipment.stock_location_id == stock_location_id && (shipment.state == 'ready' || shipment.state == 'pending');
|
312
|
+
});
|
313
|
+
|
314
|
+
if(shipment==undefined){
|
315
|
+
$.ajax({
|
316
|
+
type: "POST",
|
317
|
+
url: Spree.url(Spree.routes.shipments_api + "?shipment[order_id]=" + order_number),
|
318
|
+
data: {
|
319
|
+
variant_id: variant_id,
|
320
|
+
quantity: quantity,
|
321
|
+
stock_location_id: stock_location_id,
|
322
|
+
token: Spree.api_key
|
323
|
+
}
|
324
|
+
}).done(function( msg ) {
|
325
|
+
window.location.reload();
|
326
|
+
}).error(function( msg ) {
|
327
|
+
console.log(msg);
|
328
|
+
});
|
329
|
+
}else{
|
330
|
+
//add to existing shipment
|
331
|
+
adjustShipmentItems(shipment.number, variant_id, quantity);
|
332
|
+
}
|
333
|
+
return 1
|
334
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
$(document).ready(function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
$('#country').on('change', function () {
|
5
|
+
var new_state_link_href = $('#new_state_link').prop('href');
|
6
|
+
var selected_country_id = $('#country option:selected').prop('value');
|
7
|
+
var new_link = new_state_link_href.replace(/countries\/(\d+)/,
|
8
|
+
'countries/' + selected_country_id);
|
9
|
+
$('#new_state_link').attr('href', new_link);
|
10
|
+
});
|
11
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
jQuery ->
|
2
|
+
el = $('#stock_movement_stock_item_id')
|
3
|
+
el.select2
|
4
|
+
placeholder: "Find a stock item" # translate
|
5
|
+
ajax:
|
6
|
+
url: Spree.url(Spree.routes.stock_items_api(el.data('stock-location-id')))
|
7
|
+
data: (term, page) ->
|
8
|
+
q:
|
9
|
+
variant_product_name_cont: term
|
10
|
+
per_page: 50
|
11
|
+
page: page
|
12
|
+
token: Spree.api_key
|
13
|
+
results: (data, page) ->
|
14
|
+
more = (page * 50) < data.count
|
15
|
+
return { results: data.stock_items, more: more }
|
16
|
+
formatResult: (stock_item) ->
|
17
|
+
variantTemplate({ variant: stock_item.variant })
|
18
|
+
formatSelection: (stock_item, container, excapeMarkup) ->
|
19
|
+
Select2.util.escapeMarkup("#{stock_item.variant.name} (#{stock_item.variant.options_text})")
|
@@ -0,0 +1,198 @@
|
|
1
|
+
$ ->
|
2
|
+
# Base Model for transfer line items
|
3
|
+
class TransferVariant
|
4
|
+
constructor: (@variant) ->
|
5
|
+
@id = @variant.id
|
6
|
+
@name = "#{@variant.name} - #{@variant.sku}"
|
7
|
+
@quantity = 0
|
8
|
+
|
9
|
+
add: (quantity) ->
|
10
|
+
@quantity += quantity
|
11
|
+
|
12
|
+
# Model for stock items which validate quantity with count on hand
|
13
|
+
class TransferStockItem extends TransferVariant
|
14
|
+
constructor: (@stock_item) ->
|
15
|
+
super(@stock_item.variant)
|
16
|
+
@count_on_hand = @stock_item.count_on_hand
|
17
|
+
@name = "#{@variant.name} - #{@variant.sku} (#{@count_on_hand})"
|
18
|
+
|
19
|
+
add: (quantity) ->
|
20
|
+
@quantity += quantity
|
21
|
+
@quantity = @count_on_hand if @quantity > @count_on_hand
|
22
|
+
|
23
|
+
# Manages source and destination selections
|
24
|
+
class TransferLocations
|
25
|
+
constructor: ->
|
26
|
+
@source = $('#transfer_source_location_id')
|
27
|
+
@destination = $('#transfer_destination_location_id')
|
28
|
+
|
29
|
+
@source.change => @populate_destination()
|
30
|
+
|
31
|
+
$('#transfer_receive_stock').change (event) => @receive_stock_change(event)
|
32
|
+
|
33
|
+
$.getJSON Spree.url(Spree.routes.stock_locations_api) + '?token=' + Spree.api_key, (data) =>
|
34
|
+
@locations = (location for location in data.stock_locations)
|
35
|
+
@force_receive_stock() if @locations.length < 2
|
36
|
+
|
37
|
+
@populate_source()
|
38
|
+
@populate_destination()
|
39
|
+
|
40
|
+
force_receive_stock: ->
|
41
|
+
$('#receive_stock_field').hide()
|
42
|
+
$('#transfer_receive_stock').prop('checked', true)
|
43
|
+
@toggle_source_location true
|
44
|
+
|
45
|
+
is_source_location_hidden: ->
|
46
|
+
$('#transfer_source_location_id_field').css('visibility') == 'hidden'
|
47
|
+
|
48
|
+
toggle_source_location: (hide=false) ->
|
49
|
+
@source.trigger('change')
|
50
|
+
if @is_source_location_hidden() and not hide
|
51
|
+
$('#transfer_source_location_id_field').css('visibility', 'visible')
|
52
|
+
$('#transfer_source_location_id_field').show()
|
53
|
+
else
|
54
|
+
$('#transfer_source_location_id_field').css('visibility', 'hidden')
|
55
|
+
$('#transfer_source_location_id_field').hide()
|
56
|
+
|
57
|
+
receive_stock_change: (event) ->
|
58
|
+
@toggle_source_location event.target.checked
|
59
|
+
@populate_destination(!event.target.checked)
|
60
|
+
|
61
|
+
populate_source: ->
|
62
|
+
@populate_select @source
|
63
|
+
@source.trigger('change')
|
64
|
+
|
65
|
+
populate_destination: (except_source=true) ->
|
66
|
+
if @is_source_location_hidden()
|
67
|
+
@populate_select @destination
|
68
|
+
else
|
69
|
+
@populate_select @destination, parseInt(@source.val())
|
70
|
+
|
71
|
+
populate_select: (select, except=0) ->
|
72
|
+
select.children('option').remove()
|
73
|
+
for location in @locations when location.id isnt except
|
74
|
+
select.append $('<option></option>').text(location.name).attr('value', location.id)
|
75
|
+
select.select2()
|
76
|
+
|
77
|
+
# Populates variants drop down
|
78
|
+
class TransferVariants
|
79
|
+
constructor: ->
|
80
|
+
$('#transfer_source_location_id').change => @refresh_variants()
|
81
|
+
|
82
|
+
receiving_stock: ->
|
83
|
+
$( "#transfer_receive_stock:checked" ).length > 0
|
84
|
+
|
85
|
+
refresh_variants: ->
|
86
|
+
if @receiving_stock()
|
87
|
+
@_search_transfer_variants()
|
88
|
+
else
|
89
|
+
@_search_transfer_stock_items()
|
90
|
+
|
91
|
+
_search_transfer_variants: ->
|
92
|
+
@build_select(Spree.url(Spree.routes.variants_api), 'product_name_or_sku_cont')
|
93
|
+
|
94
|
+
_search_transfer_stock_items: ->
|
95
|
+
stock_location_id = $('#transfer_source_location_id').val()
|
96
|
+
@build_select(Spree.url(Spree.routes.stock_locations_api + "/#{stock_location_id}/stock_items"),
|
97
|
+
'variant_product_name_or_variant_sku_cont')
|
98
|
+
|
99
|
+
format_variant_result: (result) ->
|
100
|
+
"#{result.name} - #{result.sku}"
|
101
|
+
|
102
|
+
build_select: (url, query) ->
|
103
|
+
$('#transfer_variant').select2
|
104
|
+
minimumInputLength: 3
|
105
|
+
ajax:
|
106
|
+
url: url
|
107
|
+
datatype: "json"
|
108
|
+
data: (term, page) ->
|
109
|
+
query_object = {}
|
110
|
+
query_object[query] = term
|
111
|
+
q: query_object
|
112
|
+
token: Spree.api_key
|
113
|
+
|
114
|
+
results: (data, page) ->
|
115
|
+
result = data["variants"] || data["stock_items"]
|
116
|
+
# Format stock items as variants
|
117
|
+
if data["stock_items"]?
|
118
|
+
result = _(result).map (variant) ->
|
119
|
+
variant.variant
|
120
|
+
window.variants = result
|
121
|
+
results: result
|
122
|
+
|
123
|
+
formatResult: @format_variant_result
|
124
|
+
formatSelection: (variant) ->
|
125
|
+
if !!variant.options_text
|
126
|
+
variant.name + " (#{variant.options_text})" + " - #{variant.sku}"
|
127
|
+
else
|
128
|
+
variant.name + " - #{variant.sku}"
|
129
|
+
|
130
|
+
|
131
|
+
# Add/Remove variant line items
|
132
|
+
class TransferAddVariants
|
133
|
+
constructor: ->
|
134
|
+
@variants = []
|
135
|
+
@template = Handlebars.compile $('#transfer_variant_template').html()
|
136
|
+
|
137
|
+
$('#transfer_source_location_id').change (event) => @clear_variants()
|
138
|
+
|
139
|
+
$('button.transfer_add_variant').click (event) =>
|
140
|
+
event.preventDefault()
|
141
|
+
if $('#transfer_variant').select2('data')?
|
142
|
+
@add_variant()
|
143
|
+
else
|
144
|
+
alert('Please select a variant first')
|
145
|
+
|
146
|
+
$('#transfer-variants-table').on 'click', '.transfer_remove_variant', (event) =>
|
147
|
+
event.preventDefault()
|
148
|
+
@remove_variant $(event.target)
|
149
|
+
|
150
|
+
$('button.transfer_transfer').click =>
|
151
|
+
unless @variants.length > 0
|
152
|
+
alert('no variants to transfer')
|
153
|
+
false
|
154
|
+
|
155
|
+
add_variant: ->
|
156
|
+
variant = $('#transfer_variant').select2('data')
|
157
|
+
quantity = parseInt $('#transfer_variant_quantity').val()
|
158
|
+
|
159
|
+
variant = @find_or_add(variant)
|
160
|
+
variant.add(quantity)
|
161
|
+
@render()
|
162
|
+
|
163
|
+
find_or_add: (variant) ->
|
164
|
+
if existing = _.find(@variants, (v) -> v.id == variant.id)
|
165
|
+
return existing
|
166
|
+
else
|
167
|
+
variant = new TransferVariant($.extend({}, variant))
|
168
|
+
@variants.push variant
|
169
|
+
return variant
|
170
|
+
|
171
|
+
remove_variant: (target) ->
|
172
|
+
variant_id = parseInt(target.data('variantId'))
|
173
|
+
@variants = (v for v in @variants when v.id isnt variant_id)
|
174
|
+
@render()
|
175
|
+
|
176
|
+
clear_variants: ->
|
177
|
+
@variants = []
|
178
|
+
@render()
|
179
|
+
|
180
|
+
contains: (id) ->
|
181
|
+
_.contains(_.pluck(@variants, 'id'), id)
|
182
|
+
|
183
|
+
render: ->
|
184
|
+
if @variants.length is 0
|
185
|
+
$('#transfer-variants-table').hide()
|
186
|
+
$('.no-objects-found').show()
|
187
|
+
else
|
188
|
+
$('#transfer-variants-table').show()
|
189
|
+
$('.no-objects-found').hide()
|
190
|
+
|
191
|
+
rendered = @template { variants: @variants }
|
192
|
+
$('#transfer_variants_tbody').html(rendered)
|
193
|
+
|
194
|
+
# Main
|
195
|
+
if $('#transfer_source_location_id').length > 0
|
196
|
+
transfer_locations = new TransferLocations
|
197
|
+
transfer_variants = new TransferVariants
|
198
|
+
transfer_add_variants = new TransferAddVariants
|
@@ -0,0 +1,52 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var set_taxon_select = function(selector){
|
4
|
+
function formatTaxon(taxon) {
|
5
|
+
return Select2.util.escapeMarkup(taxon.pretty_name);
|
6
|
+
}
|
7
|
+
|
8
|
+
if ($(selector).length > 0) {
|
9
|
+
$(selector).select2({
|
10
|
+
placeholder: Spree.translations.taxon_placeholder,
|
11
|
+
multiple: true,
|
12
|
+
initSelection: function (element, callback) {
|
13
|
+
var url = Spree.url(Spree.routes.taxons_search, {
|
14
|
+
ids: element.val(),
|
15
|
+
without_children: true,
|
16
|
+
token: Spree.api_key
|
17
|
+
});
|
18
|
+
return $.getJSON(url, null, function (data) {
|
19
|
+
return callback(data['taxons']);
|
20
|
+
});
|
21
|
+
},
|
22
|
+
ajax: {
|
23
|
+
url: Spree.routes.taxons_search,
|
24
|
+
datatype: 'json',
|
25
|
+
data: function (term, page) {
|
26
|
+
return {
|
27
|
+
per_page: 50,
|
28
|
+
page: page,
|
29
|
+
without_children: true,
|
30
|
+
q: {
|
31
|
+
name_cont: term
|
32
|
+
},
|
33
|
+
token: Spree.api_key
|
34
|
+
};
|
35
|
+
},
|
36
|
+
results: function (data, page) {
|
37
|
+
var more = page < data.pages;
|
38
|
+
return {
|
39
|
+
results: data['taxons'],
|
40
|
+
more: more
|
41
|
+
};
|
42
|
+
}
|
43
|
+
},
|
44
|
+
formatResult: formatTaxon,
|
45
|
+
formatSelection: formatTaxon
|
46
|
+
});
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
$(document).ready(function () {
|
51
|
+
set_taxon_select('#product_taxon_ids')
|
52
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
root = exports ? this
|
2
|
+
|
3
|
+
root.taxon_tree_menu = (obj, context) ->
|
4
|
+
|
5
|
+
base_url = Spree.url(Spree.routes.taxonomy_taxons_path)
|
6
|
+
admin_base_url = Spree.url(Spree.routes.admin_taxonomy_taxons_path)
|
7
|
+
edit_url = admin_base_url.clone()
|
8
|
+
edit_url.setPath(edit_url.path() + '/' + obj.attr("id") + "/edit");
|
9
|
+
|
10
|
+
create:
|
11
|
+
label: "<span class='icon icon-plus'></span> " + Spree.translations.add,
|
12
|
+
action: (obj) -> context.create(obj)
|
13
|
+
rename:
|
14
|
+
label: "<span class='icon icon-pencil'></span> " + Spree.translations.rename,
|
15
|
+
action: (obj) -> context.rename(obj)
|
16
|
+
remove:
|
17
|
+
label: "<span class='icon icon-trash'></span> " + Spree.translations.remove,
|
18
|
+
action: (obj) -> context.remove(obj)
|
19
|
+
edit:
|
20
|
+
separator_before: true,
|
21
|
+
label: "<span class='icon icon-cog'></span> " + Spree.translations.edit,
|
22
|
+
action: (obj) -> window.location = edit_url.toString()
|