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,64 @@
|
|
1
|
+
$(document).ready ->
|
2
|
+
#handle edit click
|
3
|
+
$('a.edit-line-item').click toggleLineItemEdit
|
4
|
+
|
5
|
+
#handle cancel click
|
6
|
+
$('a.cancel-line-item').click toggleLineItemEdit
|
7
|
+
|
8
|
+
#handle save click
|
9
|
+
$('a.save-line-item').click ->
|
10
|
+
save = $ this
|
11
|
+
line_item_id = save.data('line-item-id')
|
12
|
+
quantity = parseInt(save.parents('tr').find('input.line_item_quantity').val())
|
13
|
+
|
14
|
+
toggleItemEdit()
|
15
|
+
adjustLineItem(line_item_id, quantity)
|
16
|
+
false
|
17
|
+
|
18
|
+
# handle delete click
|
19
|
+
$('a.delete-line-item').click ->
|
20
|
+
if confirm(Spree.translations.are_you_sure_delete)
|
21
|
+
del = $(this);
|
22
|
+
line_item_id = del.data('line-item-id');
|
23
|
+
|
24
|
+
toggleItemEdit()
|
25
|
+
deleteLineItem(line_item_id)
|
26
|
+
|
27
|
+
toggleLineItemEdit = ->
|
28
|
+
link = $(this);
|
29
|
+
link.parent().find('a.edit-line-item').toggle();
|
30
|
+
link.parent().find('a.cancel-line-item').toggle();
|
31
|
+
link.parent().find('a.save-line-item').toggle();
|
32
|
+
link.parent().find('a.delete-line-item').toggle();
|
33
|
+
link.parents('tr').find('td.line-item-qty-show').toggle();
|
34
|
+
link.parents('tr').find('td.line-item-qty-edit').toggle();
|
35
|
+
|
36
|
+
false
|
37
|
+
|
38
|
+
lineItemURL = (line_item_id) ->
|
39
|
+
url = Spree.routes.orders_api + "/" + order_number + "/line_items/" + line_item_id + ".json"
|
40
|
+
|
41
|
+
adjustLineItem = (line_item_id, quantity) ->
|
42
|
+
url = lineItemURL(line_item_id)
|
43
|
+
$.ajax(
|
44
|
+
type: "PUT",
|
45
|
+
url: Spree.url(url),
|
46
|
+
data:
|
47
|
+
line_item:
|
48
|
+
quantity: quantity
|
49
|
+
token: Spree.api_key
|
50
|
+
).done (msg) ->
|
51
|
+
window.Spree.advanceOrder()
|
52
|
+
|
53
|
+
deleteLineItem = (line_item_id) ->
|
54
|
+
url = lineItemURL(line_item_id)
|
55
|
+
$.ajax(
|
56
|
+
type: "DELETE"
|
57
|
+
url: Spree.url(url)
|
58
|
+
data:
|
59
|
+
token: Spree.api_key
|
60
|
+
).done (msg) ->
|
61
|
+
$('#line-item-' + line_item_id).remove()
|
62
|
+
if $('.line-items tr.line-item').length == 0
|
63
|
+
$('.line-items').remove()
|
64
|
+
window.Spree.advanceOrder()
|
@@ -0,0 +1,49 @@
|
|
1
|
+
// This file contains the code for interacting with line items in the manual cart
|
2
|
+
$(document).ready(function () {
|
3
|
+
'use strict';
|
4
|
+
|
5
|
+
// handle variant selection, show stock level.
|
6
|
+
$('#add_line_item_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(variantLineItemTemplate({variant: variant}));
|
13
|
+
$('#stock_details').show();
|
14
|
+
|
15
|
+
$('button.add_variant').click(addVariant);
|
16
|
+
});
|
17
|
+
});
|
18
|
+
|
19
|
+
addVariant = function() {
|
20
|
+
$('#stock_details').hide();
|
21
|
+
|
22
|
+
var variant_id = $('input.variant_autocomplete').val();
|
23
|
+
var quantity = $("input.quantity[data-variant-id='" + variant_id + "']").val();
|
24
|
+
|
25
|
+
adjustLineItems(order_number, variant_id, quantity);
|
26
|
+
return 1
|
27
|
+
}
|
28
|
+
|
29
|
+
adjustLineItems = function(order_number, variant_id, quantity){
|
30
|
+
var url = Spree.routes.orders_api + "/" + order_number + '/line_items';
|
31
|
+
|
32
|
+
$.ajax({
|
33
|
+
type: "POST",
|
34
|
+
url: Spree.url(url),
|
35
|
+
data: {
|
36
|
+
line_item: {
|
37
|
+
variant_id: variant_id,
|
38
|
+
quantity: quantity
|
39
|
+
},
|
40
|
+
token: Spree.api_key
|
41
|
+
}
|
42
|
+
}).done(function( msg ) {
|
43
|
+
window.Spree.advanceOrder();
|
44
|
+
window.location.reload();
|
45
|
+
}).fail(function(msg) {
|
46
|
+
alert(msg.responseJSON.message)
|
47
|
+
});
|
48
|
+
|
49
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// On page load
|
2
|
+
var replace_ids = function (s) {
|
3
|
+
var new_id = new Date().getTime();
|
4
|
+
return s.replace(/NEW_RECORD/g, new_id);
|
5
|
+
};
|
6
|
+
|
7
|
+
$(function () {
|
8
|
+
'use strict';
|
9
|
+
|
10
|
+
$('a[id*=nested]').on('click', function () {
|
11
|
+
var template = $(this).prop('href').replace(/.*#/, '');
|
12
|
+
var html = replace_ids(eval(template));
|
13
|
+
$('#ul-' + $(this).prop('id')).append(html);
|
14
|
+
update_remove_links();
|
15
|
+
});
|
16
|
+
update_remove_links();
|
17
|
+
});
|
18
|
+
|
19
|
+
var update_remove_links = function () {
|
20
|
+
'use strict';
|
21
|
+
|
22
|
+
$('.remove').on('click', function () {
|
23
|
+
$(this).prevAll(':first').val(1);
|
24
|
+
$(this).parent().hide();
|
25
|
+
return false;
|
26
|
+
});
|
27
|
+
};
|
@@ -0,0 +1,43 @@
|
|
1
|
+
$(document).ready(function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
function formatOptionType(option_type) {
|
5
|
+
return Select2.util.escapeMarkup(option_type.presentation + ' (' + option_type.name + ')');
|
6
|
+
}
|
7
|
+
|
8
|
+
if ($('#product_option_type_ids').length > 0) {
|
9
|
+
$('#product_option_type_ids').select2({
|
10
|
+
placeholder: Spree.translations.option_type_placeholder,
|
11
|
+
multiple: true,
|
12
|
+
initSelection: function (element, callback) {
|
13
|
+
var url = Spree.url(Spree.routes.option_type_search, {
|
14
|
+
ids: element.val(),
|
15
|
+
token: Spree.api_key
|
16
|
+
});
|
17
|
+
return $.getJSON(url, null, function (data) {
|
18
|
+
return callback(data);
|
19
|
+
});
|
20
|
+
},
|
21
|
+
ajax: {
|
22
|
+
url: Spree.routes.option_type_search,
|
23
|
+
quietMillis: 200,
|
24
|
+
datatype: 'json',
|
25
|
+
data: function (term) {
|
26
|
+
return {
|
27
|
+
q: {
|
28
|
+
name_cont: term
|
29
|
+
},
|
30
|
+
token: Spree.api_key
|
31
|
+
};
|
32
|
+
},
|
33
|
+
results: function (data) {
|
34
|
+
return {
|
35
|
+
results: data
|
36
|
+
};
|
37
|
+
}
|
38
|
+
},
|
39
|
+
formatResult: formatOptionType,
|
40
|
+
formatSelection: formatOptionType
|
41
|
+
});
|
42
|
+
}
|
43
|
+
});
|
@@ -0,0 +1,45 @@
|
|
1
|
+
$.fn.optionValueAutocomplete = function (options) {
|
2
|
+
/* globals Spree */
|
3
|
+
'use strict';
|
4
|
+
|
5
|
+
// Default options
|
6
|
+
options = options || {};
|
7
|
+
var multiple = typeof(options.multiple) !== 'undefined' ? options.multiple : true;
|
8
|
+
var productSelect = options.productSelect;
|
9
|
+
|
10
|
+
this.select2({
|
11
|
+
minimumInputLength: 3,
|
12
|
+
multiple: multiple,
|
13
|
+
initSelection: function (element, callback) {
|
14
|
+
$.get(Spree.routes.option_value_search, {
|
15
|
+
ids: element.val().split(','),
|
16
|
+
token: Spree.api_key
|
17
|
+
}, function (data) {
|
18
|
+
callback(multiple ? data : data[0]);
|
19
|
+
});
|
20
|
+
},
|
21
|
+
ajax: {
|
22
|
+
url: Spree.routes.option_value_search,
|
23
|
+
datatype: 'json',
|
24
|
+
data: function (term) {
|
25
|
+
var productId = typeof(productSelect) !== 'undefined' ? $(productSelect).select2('val') : null;
|
26
|
+
return {
|
27
|
+
q: {
|
28
|
+
name_cont: term,
|
29
|
+
variants_product_id_eq: productId
|
30
|
+
},
|
31
|
+
token: Spree.api_key
|
32
|
+
};
|
33
|
+
},
|
34
|
+
results: function (data) {
|
35
|
+
return { results: data };
|
36
|
+
}
|
37
|
+
},
|
38
|
+
formatResult: function (optionValue) {
|
39
|
+
return optionValue.name;
|
40
|
+
},
|
41
|
+
formatSelection: function (optionValue) {
|
42
|
+
return optionValue.name;
|
43
|
+
}
|
44
|
+
});
|
45
|
+
};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
$(document).ready(function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
$.each($('td.qty input'), function (i, input) {
|
5
|
+
|
6
|
+
$(input).on('change', function () {
|
7
|
+
|
8
|
+
var id = '#' + $(this).prop('id').replace('_quantity', '_id');
|
9
|
+
|
10
|
+
$.post('/admin/orders/' + $('input#order_number').val() + '/line_items/' + $(id).val(), {
|
11
|
+
_method: 'put',
|
12
|
+
'line_item[quantity]': $(this).val(),
|
13
|
+
token: Spree.api_key
|
14
|
+
},
|
15
|
+
|
16
|
+
function (resp) {
|
17
|
+
$('#order-form-wrapper').html(resp.responseText);
|
18
|
+
});
|
19
|
+
});
|
20
|
+
});
|
21
|
+
});
|
@@ -0,0 +1,145 @@
|
|
1
|
+
jQuery ($) ->
|
2
|
+
# Payment model
|
3
|
+
order_id = $('#payments').data('order-id')
|
4
|
+
class Payment
|
5
|
+
constructor: (id) ->
|
6
|
+
@url = Spree.url("#{Spree.routes.payments_api(order_id)}/#{id}.json" + '?token=' + Spree.api_key)
|
7
|
+
@json = $.getJSON @url.toString(), (data) =>
|
8
|
+
@data = data
|
9
|
+
|
10
|
+
if_editable: (callback) ->
|
11
|
+
@json.done (data) ->
|
12
|
+
callback() if data.state in ['checkout', 'pending']
|
13
|
+
|
14
|
+
update: (attributes, success) ->
|
15
|
+
jqXHR = $.ajax
|
16
|
+
type: 'PUT'
|
17
|
+
url: @url.toString()
|
18
|
+
data: { payment: attributes }
|
19
|
+
jqXHR.done (data) =>
|
20
|
+
@data = data
|
21
|
+
jqXHR.fail ->
|
22
|
+
response = $.parseJSON(jqXHR.responseText)
|
23
|
+
show_flash('error', response.error)
|
24
|
+
|
25
|
+
amount: -> @data.amount
|
26
|
+
display_amount: -> @data.display_amount
|
27
|
+
|
28
|
+
# Payment base view
|
29
|
+
class PaymentView
|
30
|
+
constructor: (@$el, @payment) ->
|
31
|
+
@render()
|
32
|
+
|
33
|
+
render: ->
|
34
|
+
@add_action_button()
|
35
|
+
|
36
|
+
show: ->
|
37
|
+
@remove_buttons()
|
38
|
+
new ShowPaymentView(@$el, @payment)
|
39
|
+
|
40
|
+
edit: ->
|
41
|
+
@remove_buttons()
|
42
|
+
new EditPaymentView(@$el, @payment)
|
43
|
+
|
44
|
+
add_action_button: ->
|
45
|
+
@$actions().prepend @$new_button(@action)
|
46
|
+
|
47
|
+
remove_buttons: ->
|
48
|
+
@$buttons().remove()
|
49
|
+
|
50
|
+
$new_button: (action) ->
|
51
|
+
$("<a><span class='icon icon-#{action}'></span></a>")
|
52
|
+
.attr
|
53
|
+
class: "payment-action-#{action} btn btn-default btn-sm icon-link no-text with-tip"
|
54
|
+
title: Spree.translations[action]
|
55
|
+
.data
|
56
|
+
action: action
|
57
|
+
.one
|
58
|
+
click: (event) ->
|
59
|
+
event.preventDefault()
|
60
|
+
mousedown: ->
|
61
|
+
$(@).data('clicked', true)
|
62
|
+
mouseup: =>
|
63
|
+
@[action]()
|
64
|
+
|
65
|
+
$buttons: ->
|
66
|
+
@$actions().find(".payment-action-#{@action}, .payment-action-cancel")
|
67
|
+
|
68
|
+
$actions: ->
|
69
|
+
@$el.find('.actions')
|
70
|
+
|
71
|
+
$amount: ->
|
72
|
+
@$el.find('td.amount')
|
73
|
+
|
74
|
+
# Payment show view
|
75
|
+
class ShowPaymentView extends PaymentView
|
76
|
+
action: 'edit'
|
77
|
+
|
78
|
+
render: ->
|
79
|
+
super
|
80
|
+
@set_actions_display()
|
81
|
+
@show_actions()
|
82
|
+
@show_amount()
|
83
|
+
|
84
|
+
set_actions_display: ->
|
85
|
+
width = @$actions().width()
|
86
|
+
@$actions().width(width).css('text-align', 'left')
|
87
|
+
|
88
|
+
show_actions: ->
|
89
|
+
@$actions().find('a').show()
|
90
|
+
|
91
|
+
show_amount: ->
|
92
|
+
amount = $('<span />')
|
93
|
+
.html(@payment.display_amount())
|
94
|
+
.one('click', => @edit().$input().focus())
|
95
|
+
@$amount().html(amount)
|
96
|
+
|
97
|
+
# Payment edit view
|
98
|
+
class EditPaymentView extends PaymentView
|
99
|
+
action: 'save'
|
100
|
+
|
101
|
+
render: ->
|
102
|
+
super
|
103
|
+
@hide_actions()
|
104
|
+
@edit_amount()
|
105
|
+
@add_cancel_button()
|
106
|
+
|
107
|
+
add_cancel_button: ->
|
108
|
+
@$actions().append @$new_button('cancel')
|
109
|
+
|
110
|
+
hide_actions: ->
|
111
|
+
@$actions().find('a').not(@$buttons()).hide()
|
112
|
+
|
113
|
+
edit_amount: ->
|
114
|
+
amount = @$amount()
|
115
|
+
amount.html(@$new_input(amount.find('span').width()))
|
116
|
+
|
117
|
+
save: (event) ->
|
118
|
+
@payment.update(amount: @$input().val())
|
119
|
+
.done(=> @show())
|
120
|
+
|
121
|
+
cancel: @::show
|
122
|
+
|
123
|
+
$new_input: (width) ->
|
124
|
+
amount = @constructor.normalize_amount(@payment.display_amount())
|
125
|
+
$('<input />')
|
126
|
+
.prop(id: 'amount', value: amount)
|
127
|
+
.width(width)
|
128
|
+
.one
|
129
|
+
blur: =>
|
130
|
+
clicked = (@$buttons().filter -> $(@).data('clicked')).length
|
131
|
+
@save() unless clicked
|
132
|
+
.css('text-align': 'right')
|
133
|
+
|
134
|
+
$input: ->
|
135
|
+
@$amount().find('input')
|
136
|
+
|
137
|
+
@normalize_amount: (amount) ->
|
138
|
+
separator = Spree.translations.currency_separator
|
139
|
+
amount.replace(///[^\d#{separator}]///g, '')
|
140
|
+
|
141
|
+
# Attach ShowPaymentView to each editable payment in the table
|
142
|
+
$('.admin tr[data-hook=payments_row]').each ->
|
143
|
+
$el = $(@)
|
144
|
+
payment = new Payment($el.prop('id').match(/\d+$/))
|
145
|
+
payment.if_editable -> new ShowPaymentView($el, payment)
|
@@ -0,0 +1,50 @@
|
|
1
|
+
//= require jquery.payment
|
2
|
+
$(document).ready(function() {
|
3
|
+
if ($("#new_payment").is("*")) {
|
4
|
+
$(".cardNumber").payment('formatCardNumber');
|
5
|
+
$(".cardExpiry").payment('formatCardExpiry');
|
6
|
+
$(".cardCode").payment('formatCardCVC');
|
7
|
+
|
8
|
+
$(".cardNumber").change(function() {
|
9
|
+
$(".ccType").val($.payment.cardType(this.value))
|
10
|
+
})
|
11
|
+
|
12
|
+
$('.payment_methods_radios').click(
|
13
|
+
function() {
|
14
|
+
$('.payment-methods').hide();
|
15
|
+
$('.payment-methods :input').prop('disabled', true);
|
16
|
+
if (this.checked) {
|
17
|
+
$('#payment_method_' + this.value + ' :input').prop('disabled', false);
|
18
|
+
$('#payment_method_' + this.value).show();
|
19
|
+
}
|
20
|
+
}
|
21
|
+
);
|
22
|
+
|
23
|
+
$('.payment_methods_radios').each(
|
24
|
+
function() {
|
25
|
+
if (this.checked) {
|
26
|
+
$('#payment_method_' + this.value + ' :input').prop('disabled', false);
|
27
|
+
$('#payment_method_' + this.value).show();
|
28
|
+
} else {
|
29
|
+
$('#payment_method_' + this.value).hide();
|
30
|
+
$('#payment_method_' + this.value + ' :input').prop('disabled', true);
|
31
|
+
}
|
32
|
+
|
33
|
+
if ($("#card_new" + this.value).is("*")) {
|
34
|
+
$("#card_new" + this.value).radioControlsVisibilityOfElement('#card_form' + this.value);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
);
|
38
|
+
|
39
|
+
$('.cvvLink').click(function(event){
|
40
|
+
window_name = 'cvv_info';
|
41
|
+
window_options = 'left=20,top=20,width=500,height=500,toolbar=0,resizable=0,scrollbars=1';
|
42
|
+
window.open($(this).prop('href'), window_name, window_options);
|
43
|
+
event.preventDefault();
|
44
|
+
});
|
45
|
+
|
46
|
+
$('select.jump_menu').change(function(){
|
47
|
+
window.location = this.options[this.selectedIndex].value;
|
48
|
+
});
|
49
|
+
}
|
50
|
+
});
|
@@ -0,0 +1,49 @@
|
|
1
|
+
$.fn.productAutocomplete = function (options) {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
// Default options
|
5
|
+
options = options || {};
|
6
|
+
var multiple = typeof(options.multiple) !== 'undefined' ? options.multiple : true;
|
7
|
+
|
8
|
+
function formatProduct(product) {
|
9
|
+
return Select2.util.escapeMarkup(product.name);
|
10
|
+
}
|
11
|
+
|
12
|
+
this.select2({
|
13
|
+
minimumInputLength: 3,
|
14
|
+
multiple: multiple,
|
15
|
+
initSelection: function (element, callback) {
|
16
|
+
$.get(Spree.routes.product_search, {
|
17
|
+
ids: element.val().split(','),
|
18
|
+
token: Spree.api_key
|
19
|
+
}, function (data) {
|
20
|
+
callback(multiple ? data.products : data.products[0]);
|
21
|
+
});
|
22
|
+
},
|
23
|
+
ajax: {
|
24
|
+
url: Spree.routes.product_search,
|
25
|
+
datatype: 'json',
|
26
|
+
data: function (term, page) {
|
27
|
+
return {
|
28
|
+
q: {
|
29
|
+
name_or_master_sku_cont: term,
|
30
|
+
},
|
31
|
+
m: 'OR',
|
32
|
+
token: Spree.api_key
|
33
|
+
};
|
34
|
+
},
|
35
|
+
results: function (data, page) {
|
36
|
+
var products = data.products ? data.products : [];
|
37
|
+
return {
|
38
|
+
results: products
|
39
|
+
};
|
40
|
+
}
|
41
|
+
},
|
42
|
+
formatResult: formatProduct,
|
43
|
+
formatSelection: formatProduct
|
44
|
+
});
|
45
|
+
};
|
46
|
+
|
47
|
+
$(document).ready(function () {
|
48
|
+
$('.product_picker').productAutocomplete();
|
49
|
+
});
|
@@ -0,0 +1,170 @@
|
|
1
|
+
var initProductActions = function () {
|
2
|
+
/* globals Handlebars */
|
3
|
+
'use strict';
|
4
|
+
|
5
|
+
// Add classes on promotion items for design
|
6
|
+
$(document).on('mouseover mouseout', 'a.delete', function (event) {
|
7
|
+
if (event.type === 'mouseover') {
|
8
|
+
$(this).parent().addClass('action-remove');
|
9
|
+
} else {
|
10
|
+
$(this).parent().removeClass('action-remove');
|
11
|
+
}
|
12
|
+
});
|
13
|
+
|
14
|
+
$('#promotion-filters').find('.variant_autocomplete').variantAutocomplete();
|
15
|
+
|
16
|
+
$('.calculator-fields').each(function () {
|
17
|
+
var $fields_container = $(this);
|
18
|
+
var $type_select = $fields_container.find('.type-select');
|
19
|
+
var $settings = $fields_container.find('.settings');
|
20
|
+
var $warning = $fields_container.find('.js-warning');
|
21
|
+
var originalType = $type_select.val();
|
22
|
+
|
23
|
+
$warning.hide();
|
24
|
+
$type_select.change(function () {
|
25
|
+
if ($(this).val() === originalType) {
|
26
|
+
$warning.hide();
|
27
|
+
$settings.show();
|
28
|
+
$settings.find('input').removeProp('disabled');
|
29
|
+
} else {
|
30
|
+
$warning.show();
|
31
|
+
$settings.hide();
|
32
|
+
$settings.find('input').prop('disabled', 'disabled');
|
33
|
+
}
|
34
|
+
});
|
35
|
+
});
|
36
|
+
|
37
|
+
//
|
38
|
+
// Option Value Promo Rule
|
39
|
+
//
|
40
|
+
if ($('#promo-rule-option-value-template').length) {
|
41
|
+
var optionValueSelectNameTemplate = Handlebars.compile($('#promo-rule-option-value-option-values-select-name-template').html());
|
42
|
+
var optionValueTemplate = Handlebars.compile($('#promo-rule-option-value-template').html());
|
43
|
+
|
44
|
+
var addOptionValue = function(product, values) {
|
45
|
+
$('.js-promo-rule-option-values').append(optionValueTemplate({
|
46
|
+
productSelect: {value: product},
|
47
|
+
optionValuesSelect: {value: values}
|
48
|
+
}));
|
49
|
+
var optionValue = $('.js-promo-rule-option-values .promo-rule-option-value').last();
|
50
|
+
optionValue.find('.js-promo-rule-option-value-product-select').productAutocomplete({multiple: false});
|
51
|
+
optionValue.find('.js-promo-rule-option-value-option-values-select').optionValueAutocomplete({
|
52
|
+
productSelect: '.js-promo-rule-option-value-product-select'
|
53
|
+
});
|
54
|
+
if (product === null) {
|
55
|
+
optionValue.find('.js-promo-rule-option-value-option-values-select').prop('disabled', true);
|
56
|
+
}
|
57
|
+
};
|
58
|
+
|
59
|
+
var originalOptionValues = $('.js-original-promo-rule-option-values').data('original-option-values');
|
60
|
+
if (!$('.js-original-promo-rule-option-values').data('loaded')) {
|
61
|
+
if ($.isEmptyObject(originalOptionValues)) {
|
62
|
+
addOptionValue(null, null);
|
63
|
+
} else {
|
64
|
+
$.each(originalOptionValues, addOptionValue);
|
65
|
+
}
|
66
|
+
}
|
67
|
+
$('.js-original-promo-rule-option-values').data('loaded', true);
|
68
|
+
|
69
|
+
$(document).on('click', '.js-add-promo-rule-option-value', function (event) {
|
70
|
+
event.preventDefault();
|
71
|
+
addOptionValue(null, null);
|
72
|
+
});
|
73
|
+
|
74
|
+
$(document).on('click', '.js-remove-promo-rule-option-value', function () {
|
75
|
+
$(this).parents('.promo-rule-option-value').remove();
|
76
|
+
});
|
77
|
+
|
78
|
+
$(document).on('change', '.js-promo-rule-option-value-product-select', function () {
|
79
|
+
var optionValueSelect = $(this).parents('.promo-rule-option-value').find('.js-promo-rule-option-value-option-values-select');
|
80
|
+
optionValueSelect.attr('name', optionValueSelectNameTemplate({productId: $(this).val()}).trim());
|
81
|
+
optionValueSelect.prop('disabled', $(this).val() === '').select2('val', '');
|
82
|
+
});
|
83
|
+
}
|
84
|
+
|
85
|
+
//
|
86
|
+
// Tiered Calculator
|
87
|
+
//
|
88
|
+
if ($('#tier-fields-template').length && $('#tier-input-name').length) {
|
89
|
+
var tierFieldsTemplate = Handlebars.compile($('#tier-fields-template').html());
|
90
|
+
var tierInputNameTemplate = Handlebars.compile($('#tier-input-name').html());
|
91
|
+
|
92
|
+
var originalTiers = $('.js-original-tiers').data('original-tiers');
|
93
|
+
$.each(originalTiers, function(base, value) {
|
94
|
+
var fieldName = tierInputNameTemplate({base: base}).trim();
|
95
|
+
$('.js-tiers').append(tierFieldsTemplate({
|
96
|
+
baseField: {value: base},
|
97
|
+
valueField: {name: fieldName, value: value}
|
98
|
+
}));
|
99
|
+
});
|
100
|
+
|
101
|
+
$(document).on('click', '.js-add-tier', function(event) {
|
102
|
+
event.preventDefault();
|
103
|
+
$('.js-tiers').append(tierFieldsTemplate({valueField: {name: null}}));
|
104
|
+
});
|
105
|
+
|
106
|
+
$(document).on('click', '.js-remove-tier', function(event) {
|
107
|
+
$(this).parents('.tier').remove();
|
108
|
+
});
|
109
|
+
|
110
|
+
$(document).on('change', '.js-base-input', function(event) {
|
111
|
+
var valueInput = $(this).parents('.tier').find('.js-value-input');
|
112
|
+
valueInput.attr('name', tierInputNameTemplate({base: $(this).val()}).trim());
|
113
|
+
});
|
114
|
+
}
|
115
|
+
|
116
|
+
//
|
117
|
+
// CreateLineItems Promotion Action
|
118
|
+
//
|
119
|
+
(function () {
|
120
|
+
var hideOrShowItemTables = function () {
|
121
|
+
$('.promotion_action table').each(function () {
|
122
|
+
if ($(this).find('td').length === 0) {
|
123
|
+
$(this).hide();
|
124
|
+
} else {
|
125
|
+
$(this).show();
|
126
|
+
}
|
127
|
+
});
|
128
|
+
};
|
129
|
+
hideOrShowItemTables();
|
130
|
+
|
131
|
+
// Remove line item
|
132
|
+
var setupRemoveLineItems = function () {
|
133
|
+
$('.remove_promotion_line_item').on('click', function () {
|
134
|
+
var line_items_el = $($('.line_items_string')[0]);
|
135
|
+
var finder = new RegExp($(this).data('variant-id') + "x\\d+");
|
136
|
+
line_items_el.val(line_items_el.val().replace(finder, ''));
|
137
|
+
$(this).parents('tr').remove();
|
138
|
+
hideOrShowItemTables();
|
139
|
+
});
|
140
|
+
};
|
141
|
+
|
142
|
+
setupRemoveLineItems();
|
143
|
+
// Add line item to list
|
144
|
+
$('.promotion_action.create_line_items button.add').unbind('click').click(function () {
|
145
|
+
var $container = $(this).parents('.promotion_action');
|
146
|
+
var product_name = $container.find('input[name="add_product_name"]').val();
|
147
|
+
var variant_id = $container.find('input[name="add_variant_id"]').val();
|
148
|
+
var quantity = $container.find('input[name="add_quantity"]').val();
|
149
|
+
if (variant_id) {
|
150
|
+
// Add to the table
|
151
|
+
var newRow = '<tr><td>' + product_name + '</td><td>' + quantity + '</td><td><img src="/assets/admin/icons/cross.png"/></td></tr>';
|
152
|
+
$container.find('table').append(newRow);
|
153
|
+
// Add to serialized string in hidden text field
|
154
|
+
var $hiddenField = $container.find('.line_items_string');
|
155
|
+
$hiddenField.val($hiddenField.val() + ',' + variant_id + 'x' + quantity);
|
156
|
+
setupRemoveLineItems();
|
157
|
+
hideOrShowItemTables();
|
158
|
+
}
|
159
|
+
return false;
|
160
|
+
});
|
161
|
+
|
162
|
+
})();
|
163
|
+
|
164
|
+
};
|
165
|
+
|
166
|
+
$(document).ready(function () {
|
167
|
+
|
168
|
+
initProductActions();
|
169
|
+
|
170
|
+
});
|