spree_backend 3.1.14 → 3.2.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/images/admin/logo.png +0 -0
- data/app/assets/javascripts/spree/backend/admin.js +2 -25
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +2 -1
- data/app/assets/javascripts/spree/backend/line_items.js.coffee +2 -2
- data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +5 -2
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +2 -2
- data/app/assets/javascripts/spree/backend/option_value_picker.js +2 -2
- data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +10 -8
- data/app/assets/javascripts/spree/backend/product_picker.js +3 -2
- data/app/assets/javascripts/spree/backend/{shipments.js.erb → shipments.js} +1 -1
- data/app/assets/javascripts/spree/backend/states.js +9 -7
- data/app/assets/javascripts/spree/backend/stock_location.js +3 -0
- data/app/assets/javascripts/spree/backend/tag_picker.js +52 -0
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +2 -2
- data/app/assets/javascripts/spree/backend/taxon_permalink_preview.js +12 -0
- data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +2 -2
- data/app/assets/javascripts/spree/backend/taxons.js.coffee +1 -1
- data/app/assets/javascripts/spree/backend/user_picker.js +4 -3
- data/app/assets/javascripts/spree/backend.js +8 -7
- data/app/assets/stylesheets/spree/backend/components/_main.scss +5 -1
- data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +7 -0
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +1 -1
- data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +0 -1
- data/app/controllers/spree/admin/base_controller.rb +0 -11
- data/app/controllers/spree/admin/option_types_controller.rb +2 -14
- data/app/controllers/spree/admin/option_values_controller.rb +1 -1
- data/app/controllers/spree/admin/orders_controller.rb +7 -7
- data/app/controllers/spree/admin/payment_methods_controller.rb +4 -0
- data/app/controllers/spree/admin/product_properties_controller.rb +1 -1
- data/app/controllers/spree/admin/products_controller.rb +1 -1
- data/app/controllers/spree/admin/promotion_actions_controller.rb +5 -5
- data/app/controllers/spree/admin/promotion_rules_controller.rb +6 -6
- data/app/controllers/spree/admin/promotions_controller.rb +2 -2
- data/app/controllers/spree/admin/properties_controller.rb +1 -1
- data/app/controllers/spree/admin/prototypes_controller.rb +2 -2
- data/app/controllers/spree/admin/refunds_controller.rb +1 -1
- data/app/controllers/spree/admin/reimbursement_types_controller.rb +26 -0
- data/app/controllers/spree/admin/reimbursements_controller.rb +1 -1
- data/app/controllers/spree/admin/reports_controller.rb +1 -1
- data/app/controllers/spree/admin/resource_controller.rb +8 -8
- data/app/controllers/spree/admin/return_authorizations_controller.rb +3 -3
- data/app/controllers/spree/admin/return_index_controller.rb +1 -1
- data/app/controllers/spree/admin/shipping_methods_controller.rb +2 -2
- data/app/controllers/spree/admin/states_controller.rb +1 -1
- data/app/controllers/spree/admin/stock_items_controller.rb +2 -2
- data/app/controllers/spree/admin/stock_movements_controller.rb +1 -5
- data/app/controllers/spree/admin/store_credits_controller.rb +1 -1
- data/app/controllers/spree/admin/taxons_controller.rb +1 -10
- data/app/controllers/spree/admin/users_controller.rb +5 -41
- data/app/controllers/spree/admin/variants_controller.rb +3 -1
- data/app/helpers/spree/admin/base_helper.rb +1 -6
- data/app/helpers/spree/admin/navigation_helper.rb +9 -31
- data/app/helpers/spree/admin/promotion_rules_helper.rb +12 -0
- data/app/views/kaminari/_first_page.html.erb +1 -1
- data/app/views/kaminari/_last_page.html.erb +1 -1
- data/app/views/kaminari/_next_page.html.erb +1 -1
- data/app/views/kaminari/_page.html.erb +1 -1
- data/app/views/kaminari/_paginator.html.erb +2 -4
- data/app/views/kaminari/_prev_page.html.erb +1 -1
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +1 -1
- data/app/views/spree/admin/adjustments/_form.html.erb +4 -4
- data/app/views/spree/admin/countries/_form.html.erb +2 -2
- data/app/views/spree/admin/countries/edit.html.erb +3 -3
- data/app/views/spree/admin/countries/index.html.erb +3 -3
- data/app/views/spree/admin/countries/new.html.erb +3 -3
- data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
- data/app/views/spree/admin/images/_form.html.erb +2 -2
- data/app/views/spree/admin/option_types/_form.html.erb +2 -2
- data/app/views/spree/admin/option_types/edit.html.erb +5 -5
- data/app/views/spree/admin/option_types/new.html.erb +3 -3
- data/app/views/spree/admin/orders/_adjustments.html.erb +6 -4
- data/app/views/spree/admin/orders/_form.html.erb +1 -1
- data/app/views/spree/admin/orders/_line_items.html.erb +8 -6
- data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +1 -1
- data/app/views/spree/admin/orders/_shipment.html.erb +9 -7
- data/app/views/spree/admin/orders/cart.html.erb +0 -4
- data/app/views/spree/admin/orders/edit.html.erb +0 -4
- data/app/views/spree/admin/orders/index.html.erb +20 -20
- data/app/views/spree/admin/payment_methods/_form.html.erb +5 -5
- data/app/views/spree/admin/payment_methods/index.html.erb +3 -3
- data/app/views/spree/admin/payments/_form.html.erb +6 -6
- data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +6 -6
- data/app/views/spree/admin/products/_form.html.erb +14 -8
- data/app/views/spree/admin/products/_properties_form.erb +1 -1
- data/app/views/spree/admin/products/index.html.erb +6 -6
- data/app/views/spree/admin/products/new.html.erb +16 -16
- data/app/views/spree/admin/promotion_categories/_form.html.erb +3 -3
- data/app/views/spree/admin/promotion_categories/edit.html.erb +3 -3
- data/app/views/spree/admin/promotion_categories/index.html.erb +3 -3
- data/app/views/spree/admin/promotion_categories/new.html.erb +3 -3
- data/app/views/spree/admin/promotions/_actions.html.erb +4 -4
- data/app/views/spree/admin/promotions/_form.html.erb +10 -10
- data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -1
- data/app/views/spree/admin/promotions/_rules.html.erb +4 -4
- data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +1 -1
- data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +2 -2
- data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +1 -1
- data/app/views/spree/admin/promotions/edit.html.erb +6 -6
- data/app/views/spree/admin/promotions/index.html.erb +5 -5
- data/app/views/spree/admin/promotions/new.html.erb +3 -3
- data/app/views/spree/admin/promotions/rules/_country.html.erb +6 -0
- data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_product.html.erb +2 -2
- data/app/views/spree/admin/promotions/rules/_taxon.html.erb +2 -2
- data/app/views/spree/admin/properties/_form.html.erb +2 -2
- data/app/views/spree/admin/properties/edit.html.erb +3 -3
- data/app/views/spree/admin/properties/index.html.erb +6 -6
- data/app/views/spree/admin/prototypes/_prototypes.html.erb +1 -1
- data/app/views/spree/admin/prototypes/available.js.erb +1 -1
- data/app/views/spree/admin/prototypes/edit.html.erb +3 -3
- data/app/views/spree/admin/prototypes/index.html.erb +3 -3
- data/app/views/spree/admin/prototypes/new.html.erb +3 -3
- data/app/views/spree/admin/prototypes/show.html.erb +1 -1
- data/app/views/spree/admin/refunds/edit.html.erb +2 -0
- data/app/views/spree/admin/refunds/new.html.erb +2 -0
- data/app/views/spree/admin/reimbursement_types/_form.html.erb +32 -0
- data/app/views/spree/admin/reimbursement_types/edit.html.erb +11 -0
- data/app/views/spree/admin/reimbursement_types/index.html.erb +9 -0
- data/app/views/spree/admin/reimbursement_types/new.html.erb +11 -0
- data/app/views/spree/admin/reimbursements/edit.html.erb +1 -1
- data/app/views/spree/admin/reports/sales_total.html.erb +1 -1
- data/app/views/spree/admin/return_authorizations/_form.html.erb +4 -4
- data/app/views/spree/admin/return_index/customer_returns.html.erb +1 -2
- data/app/views/spree/admin/return_index/return_authorizations.html.erb +4 -4
- data/app/views/spree/admin/roles/edit.html.erb +1 -1
- data/app/views/spree/admin/roles/new.html.erb +1 -1
- data/app/views/spree/admin/shared/_calculator_fields.html.erb +2 -2
- data/app/views/spree/admin/shared/_destroy.js.erb +1 -1
- data/app/views/spree/admin/shared/_edit_resource_links.html.erb +2 -2
- data/app/views/spree/admin/shared/_head.html.erb +2 -1
- data/app/views/spree/admin/shared/_header.html.erb +4 -11
- data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
- data/app/views/spree/admin/shared/_main_menu.html.erb +6 -0
- data/app/views/spree/admin/shared/_new_resource_links.html.erb +2 -2
- data/app/views/spree/admin/shared/_order_summary.html.erb +3 -3
- data/app/views/spree/admin/shared/_refunds.html.erb +1 -1
- data/app/views/spree/admin/shared/_report_order_criteria.html.erb +3 -3
- data/app/views/spree/admin/shared/_translations.html.erb +38 -38
- data/app/views/spree/admin/shared/{_update_order_state.js → _update_order_state.js.erb} +3 -3
- data/app/views/spree/admin/shared/named_types/_index.html.erb +2 -2
- data/app/views/spree/admin/shipping_categories/edit.html.erb +3 -3
- data/app/views/spree/admin/shipping_categories/index.html.erb +3 -3
- data/app/views/spree/admin/shipping_categories/new.html.erb +3 -3
- data/app/views/spree/admin/shipping_methods/_form.html.erb +14 -14
- data/app/views/spree/admin/shipping_methods/edit.html.erb +3 -3
- data/app/views/spree/admin/shipping_methods/index.html.erb +3 -3
- data/app/views/spree/admin/shipping_methods/new.html.erb +3 -3
- data/app/views/spree/admin/states/_form.html.erb +2 -2
- data/app/views/spree/admin/states/_state_list.html.erb +2 -2
- data/app/views/spree/admin/states/edit.html.erb +3 -3
- data/app/views/spree/admin/states/index.html.erb +3 -3
- data/app/views/spree/admin/states/new.html.erb +3 -3
- data/app/views/spree/admin/stock_locations/_form.html.erb +0 -8
- data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/edit.html.erb +3 -3
- data/app/views/spree/admin/stock_locations/index.html.erb +4 -4
- data/app/views/spree/admin/stock_locations/new.html.erb +3 -3
- data/app/views/spree/admin/stock_transfers/index.html.erb +3 -3
- data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
- data/app/views/spree/admin/stock_transfers/show.html.erb +3 -3
- data/app/views/spree/admin/tax_categories/_form.html.erb +7 -7
- data/app/views/spree/admin/tax_categories/edit.html.erb +3 -3
- data/app/views/spree/admin/tax_categories/new.html.erb +3 -3
- data/app/views/spree/admin/tax_rates/_form.html.erb +5 -5
- data/app/views/spree/admin/tax_rates/edit.html.erb +3 -3
- data/app/views/spree/admin/tax_rates/new.html.erb +3 -3
- data/app/views/spree/admin/taxonomies/_form.html.erb +2 -2
- data/app/views/spree/admin/taxonomies/_js_head.html.erb +0 -5
- data/app/views/spree/admin/taxonomies/new.html.erb +1 -1
- data/app/views/spree/admin/taxons/_form.html.erb +7 -7
- data/app/views/spree/admin/taxons/_taxon_table.html.erb +1 -1
- data/app/views/spree/admin/taxons/edit.html.erb +0 -15
- data/app/views/spree/admin/taxons/index.html.erb +1 -1
- data/app/views/spree/admin/trackers/_form.html.erb +1 -1
- data/app/views/spree/admin/trackers/edit.html.erb +3 -3
- data/app/views/spree/admin/trackers/index.html.erb +3 -3
- data/app/views/spree/admin/trackers/new.html.erb +3 -3
- data/app/views/spree/admin/users/_addresses_form.html.erb +2 -2
- data/app/views/spree/admin/users/_form.html.erb +3 -3
- data/app/views/spree/admin/users/index.html.erb +7 -7
- data/app/views/spree/admin/users/items.html.erb +2 -2
- data/app/views/spree/admin/users/new.html.erb +3 -3
- data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +24 -7
- data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +1 -0
- data/app/views/spree/admin/variants/_form.html.erb +7 -7
- data/app/views/spree/admin/variants/new.html.erb +3 -3
- data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
- data/app/views/spree/admin/zones/_form.html.erb +6 -6
- data/app/views/spree/admin/zones/_state_members.html.erb +1 -1
- data/app/views/spree/admin/zones/edit.html.erb +3 -3
- data/app/views/spree/admin/zones/index.html.erb +5 -5
- data/app/views/spree/admin/zones/new.html.erb +3 -3
- data/config/routes.rb +4 -12
- data/lib/spree/backend/engine.rb +2 -6
- data/spec/controllers/spree/admin/base_controller_spec.rb +46 -0
- data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +185 -0
- data/spec/controllers/spree/admin/general_settings_controller_spec.rb +41 -0
- data/spec/controllers/spree/admin/missing_products_controller_spec.rb +18 -0
- data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +197 -0
- data/spec/controllers/spree/admin/orders_controller_spec.rb +296 -0
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +49 -0
- data/spec/controllers/spree/admin/payments_controller_spec.rb +97 -0
- data/spec/controllers/spree/admin/products_controller_spec.rb +99 -0
- data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +21 -0
- data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +21 -0
- data/spec/controllers/spree/admin/promotions_controller_spec.rb +44 -0
- data/spec/controllers/spree/admin/refunds_controller_spec.rb +32 -0
- data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +74 -0
- data/spec/controllers/spree/admin/reports_controller_spec.rb +42 -0
- data/spec/controllers/spree/admin/resource_controller_spec.rb +252 -0
- data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +225 -0
- data/spec/controllers/spree/admin/return_index_controller_spec.rb +37 -0
- data/spec/controllers/spree/admin/return_items_controller_spec.rb +27 -0
- data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +14 -0
- data/spec/controllers/spree/admin/stock_items_controller_spec.rb +19 -0
- data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +41 -0
- data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +41 -0
- data/spec/controllers/spree/admin/tax_categories_controller_spec.rb +34 -0
- data/spec/controllers/spree/admin/users_controller_spec.rb +161 -0
- data/spec/controllers/spree/admin/variants_controller_spec.rb +32 -0
- data/spec/features/admin/configuration/analytics_tracker_spec.rb +47 -0
- data/spec/features/admin/configuration/countries_spec.rb +24 -0
- data/spec/features/admin/configuration/general_settings_spec.rb +44 -0
- data/spec/features/admin/configuration/payment_methods_spec.rb +63 -0
- data/spec/features/admin/configuration/roles_spec.rb +47 -0
- data/spec/features/admin/configuration/shipping_methods_spec.rb +62 -0
- data/spec/features/admin/configuration/states_spec.rb +68 -0
- data/spec/features/admin/configuration/stock_locations_spec.rb +48 -0
- data/spec/features/admin/configuration/store_credit_categories_spec.rb +50 -0
- data/spec/features/admin/configuration/tax_categories_spec.rb +56 -0
- data/spec/features/admin/configuration/tax_rates_spec.rb +18 -0
- data/spec/features/admin/configuration/zones_spec.rb +39 -0
- data/spec/features/admin/homepage_spec.rb +89 -0
- data/spec/features/admin/locale_spec.rb +31 -0
- data/spec/features/admin/orders/adjustments_promotions_spec.rb +53 -0
- data/spec/features/admin/orders/adjustments_spec.rb +129 -0
- data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +47 -0
- data/spec/features/admin/orders/customer_details_spec.rb +154 -0
- data/spec/features/admin/orders/line_items_spec.rb +51 -0
- data/spec/features/admin/orders/listing_spec.rb +224 -0
- data/spec/features/admin/orders/log_entries_spec.rb +55 -0
- data/spec/features/admin/orders/new_order_spec.rb +186 -0
- data/spec/features/admin/orders/order_details_spec.rb +662 -0
- data/spec/features/admin/orders/payments_spec.rb +231 -0
- data/spec/features/admin/orders/risk_analysis_spec.rb +48 -0
- data/spec/features/admin/orders/shipments_spec.rb +64 -0
- data/spec/features/admin/orders/state_changes_spec.rb +21 -0
- data/spec/features/admin/products/edit/images_spec.rb +86 -0
- data/spec/features/admin/products/edit/products_spec.rb +64 -0
- data/spec/features/admin/products/edit/taxons_spec.rb +41 -0
- data/spec/features/admin/products/edit/variants_spec.rb +56 -0
- data/spec/features/admin/products/option_types_spec.rb +114 -0
- data/spec/features/admin/products/products_spec.rb +445 -0
- data/spec/features/admin/products/properties_spec.rb +147 -0
- data/spec/features/admin/products/prototypes_spec.rb +112 -0
- data/spec/features/admin/products/stock_management_spec.rb +124 -0
- data/spec/features/admin/products/taxonomies_spec.rb +52 -0
- data/spec/features/admin/products/variant_spec.rb +50 -0
- data/spec/features/admin/promotions/adjustments_spec.rb +259 -0
- data/spec/features/admin/promotions/option_value_rule_spec.rb +70 -0
- data/spec/features/admin/promotions/tiered_calculator_spec.rb +70 -0
- data/spec/features/admin/refund_reasons/refund_reasons_spec.rb +57 -0
- data/spec/features/admin/reimbursement_type/edit_reimbursement_type_spec.rb +36 -0
- data/spec/features/admin/reimbursement_type/new_reimbursement_type_spec.rb +62 -0
- data/spec/features/admin/reports_spec.rb +61 -0
- data/spec/features/admin/return_authorization_reasons/return_authorization_reasons_spec.rb +63 -0
- data/spec/features/admin/returns/customer_returns_spec.rb +80 -0
- data/spec/features/admin/returns/return_authorizations_spec.rb +152 -0
- data/spec/features/admin/stock_transfer_spec.rb +75 -0
- data/spec/features/admin/store_credits_spec.rb +93 -0
- data/spec/features/admin/taxons_spec.rb +47 -0
- data/spec/features/admin/users_spec.rb +286 -0
- data/spec/helpers/admin/base_helper_spec.rb +30 -0
- data/spec/helpers/admin/navigation_helper_spec.rb +111 -0
- data/spec/helpers/admin/promotion_rules_helper_spec.rb +12 -0
- data/spec/helpers/admin/stock_movements_helper_spec.rb +30 -0
- data/spec/models/spree/resource_spec.rb +48 -0
- data/spec/routing/admin_path_spec.rb +22 -0
- data/spec/spec_helper.rb +144 -0
- data/spec/support/appear_before_matcher.rb +8 -0
- data/spec/support/ror_ringer.jpeg +0 -0
- data/spec/test_views/spree/admin/submodule/posts/edit.html.erb +1 -0
- data/spec/test_views/spree/admin/submodule/posts/new.html.erb +1 -0
- data/spec/test_views/spree/admin/widgets/edit.html.erb +1 -0
- data/spec/test_views/spree/admin/widgets/new.html.erb +1 -0
- data/spree_backend.gemspec +4 -3
- data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +130 -154
- metadata +114 -34
- data/app/assets/images/admin/payment_banner.png +0 -0
- data/app/assets/images/admin/progress.gif +0 -0
- data/app/assets/javascripts/spree/backend/nested-attribute.js +0 -27
- data/app/assets/javascripts/spree/backend/orders/edit_form.js +0 -21
- data/app/assets/stylesheets/spree/backend/components/_variables.scss +0 -12
- data/app/assets/stylesheets/spree/backend/plugins/_js_tree.scss +0 -0
- data/app/assets/stylesheets/spree/backend/shared/_typography.scss +0 -5
- data/app/controllers/spree/admin/root_controller.rb +0 -18
- data/app/controllers/spree/admin/search_controller.rb +0 -41
- data/app/helpers/spree/admin/inventory_settings_helper.rb +0 -9
- data/app/helpers/spree/admin/products_helper.rb +0 -29
- data/app/helpers/spree/admin/tables_helper.rb +0 -15
- data/app/helpers/spree/promotion_rules_helper.rb +0 -13
- data/app/views/spree/admin/inventory_units/adjust.html.erb +0 -29
- data/app/views/spree/admin/orders/_line_item.html.erb +0 -21
- data/app/views/spree/admin/refund_reasons/destroy.js.erb +0 -1
- data/app/views/spree/admin/return_authorization_reasons/destroy.js.erb +0 -1
- data/app/views/spree/admin/search/products.rabl +0 -9
- data/app/views/spree/admin/search/users.rabl +0 -30
- data/app/views/spree/admin/stock_movements/edit.html.erb +0 -17
@@ -7,22 +7,22 @@ class Spree::Admin::PromotionActionsController < Spree::Admin::BaseController
|
|
7
7
|
@promotion_action = params[:action_type].constantize.new(params[:promotion_action])
|
8
8
|
@promotion_action.promotion = @promotion
|
9
9
|
if @promotion_action.save
|
10
|
-
flash[:success] = Spree.t(:successfully_created, :
|
10
|
+
flash[:success] = Spree.t(:successfully_created, resource: Spree.t(:promotion_action))
|
11
11
|
end
|
12
12
|
respond_to do |format|
|
13
13
|
format.html { redirect_to spree.edit_admin_promotion_path(@promotion)}
|
14
|
-
format.js { render :
|
14
|
+
format.js { render layout: false }
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
def destroy
|
19
19
|
@promotion_action = @promotion.promotion_actions.find(params[:id])
|
20
20
|
if @promotion_action.destroy
|
21
|
-
flash[:success] = Spree.t(:successfully_removed, :
|
21
|
+
flash[:success] = Spree.t(:successfully_removed, resource: Spree.t(:promotion_action))
|
22
22
|
end
|
23
23
|
respond_to do |format|
|
24
24
|
format.html { redirect_to spree.edit_admin_promotion_path(@promotion)}
|
25
|
-
format.js { render :
|
25
|
+
format.js { render layout: false }
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -38,7 +38,7 @@ class Spree::Admin::PromotionActionsController < Spree::Admin::BaseController
|
|
38
38
|
flash[:error] = Spree.t(:invalid_promotion_action)
|
39
39
|
respond_to do |format|
|
40
40
|
format.html { redirect_to spree.edit_admin_promotion_path(@promotion)}
|
41
|
-
format.js { render :
|
41
|
+
format.js { render layout: false }
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
|
2
|
-
helper 'spree/promotion_rules'
|
2
|
+
helper 'spree/admin/promotion_rules'
|
3
3
|
|
4
4
|
before_action :load_promotion, only: [:create, :destroy]
|
5
5
|
before_action :validate_promotion_rule_type, only: :create
|
@@ -12,22 +12,22 @@ class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
|
|
12
12
|
@promotion_rule = promotion_rule_type.constantize.new(params[:promotion_rule])
|
13
13
|
@promotion_rule.promotion = @promotion
|
14
14
|
if @promotion_rule.save
|
15
|
-
flash[:success] = Spree.t(:successfully_created, :
|
15
|
+
flash[:success] = Spree.t(:successfully_created, resource: Spree.t(:promotion_rule))
|
16
16
|
end
|
17
17
|
respond_to do |format|
|
18
18
|
format.html { redirect_to spree.edit_admin_promotion_path(@promotion)}
|
19
|
-
format.js { render :
|
19
|
+
format.js { render layout: false }
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
def destroy
|
24
24
|
@promotion_rule = @promotion.promotion_rules.find(params[:id])
|
25
25
|
if @promotion_rule.destroy
|
26
|
-
flash[:success] = Spree.t(:successfully_removed, :
|
26
|
+
flash[:success] = Spree.t(:successfully_removed, resource: Spree.t(:promotion_rule))
|
27
27
|
end
|
28
28
|
respond_to do |format|
|
29
29
|
format.html { redirect_to spree.edit_admin_promotion_path(@promotion)}
|
30
|
-
format.js { render :
|
30
|
+
format.js { render layout: false }
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -43,7 +43,7 @@ class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
|
|
43
43
|
flash[:error] = Spree.t(:invalid_promotion_rule)
|
44
44
|
respond_to do |format|
|
45
45
|
format.html { redirect_to spree.edit_admin_promotion_path(@promotion)}
|
46
|
-
format.js { render :
|
46
|
+
format.js { render layout: false }
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
class PromotionsController < ResourceController
|
4
4
|
before_action :load_data
|
5
5
|
|
6
|
-
helper 'spree/promotion_rules'
|
6
|
+
helper 'spree/admin/promotion_rules'
|
7
7
|
|
8
8
|
protected
|
9
9
|
def location_after_save
|
@@ -25,7 +25,7 @@ module Spree
|
|
25
25
|
@collection = @search.result(distinct: true).
|
26
26
|
includes(promotion_includes).
|
27
27
|
page(params[:page]).
|
28
|
-
per(params[:per_page] || Spree::Config[:
|
28
|
+
per(params[:per_page] || Spree::Config[:admin_promotions_per_page])
|
29
29
|
end
|
30
30
|
|
31
31
|
def promotion_includes
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
class PrototypesController < ResourceController
|
4
4
|
def show
|
5
5
|
if request.xhr?
|
6
|
-
render :
|
6
|
+
render layout: false
|
7
7
|
else
|
8
8
|
redirect_to admin_prototypes_path
|
9
9
|
end
|
@@ -12,7 +12,7 @@ module Spree
|
|
12
12
|
def available
|
13
13
|
@prototypes = Prototype.order('name asc')
|
14
14
|
respond_with(@prototypes) do |format|
|
15
|
-
format.html { render :
|
15
|
+
format.html { render layout: !request.xhr? }
|
16
16
|
format.js
|
17
17
|
end
|
18
18
|
end
|
@@ -1,6 +1,32 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ReimbursementTypesController < ResourceController
|
4
|
+
def update
|
5
|
+
invoke_callbacks(:update, :before)
|
6
|
+
if @object.update_attributes(permitted_resource_params_for_update)
|
7
|
+
invoke_callbacks(:update, :after)
|
8
|
+
respond_with(@object) do |format|
|
9
|
+
format.html do
|
10
|
+
flash[:success] = flash_message_for(@object, :successfully_updated)
|
11
|
+
redirect_to location_after_save
|
12
|
+
end
|
13
|
+
format.js { render layout: false }
|
14
|
+
end
|
15
|
+
else
|
16
|
+
invoke_callbacks(:update, :fails)
|
17
|
+
respond_with(@object) do |format|
|
18
|
+
format.html { render action: :edit }
|
19
|
+
format.js { render layout: false }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def permitted_resource_params_for_update
|
27
|
+
params_hash = @object.type.underscore.remove('spree/').tr('/', '_')
|
28
|
+
params.require(params_hash.to_s).permit(:name, :active, :mutable)
|
29
|
+
end
|
4
30
|
end
|
5
31
|
end
|
6
32
|
end
|
@@ -5,7 +5,7 @@ module Spree
|
|
5
5
|
|
6
6
|
before_action :load_simulated_refunds, only: :edit
|
7
7
|
|
8
|
-
rescue_from Spree::Core::GatewayError, with: :spree_core_gateway_error
|
8
|
+
rescue_from Spree::Core::GatewayError, with: :spree_core_gateway_error
|
9
9
|
|
10
10
|
def perform
|
11
11
|
@reimbursement.perform!
|
@@ -45,7 +45,7 @@ module Spree
|
|
45
45
|
|
46
46
|
@totals = {}
|
47
47
|
@orders.each do |order|
|
48
|
-
@totals[order.currency] = { :
|
48
|
+
@totals[order.currency] = { item_total: ::Money.new(0, order.currency), adjustment_total: ::Money.new(0, order.currency), sales_total: ::Money.new(0, order.currency) } unless @totals[order.currency]
|
49
49
|
@totals[order.currency][:item_total] += order.display_item_total.money
|
50
50
|
@totals[order.currency][:adjustment_total] += order.display_adjustment_total.money
|
51
51
|
@totals[order.currency][:sales_total] += order.display_total.money
|
@@ -3,25 +3,25 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
|
|
3
3
|
|
4
4
|
helper_method :new_object_url, :edit_object_url, :object_url, :collection_url
|
5
5
|
before_action :load_resource, except: :update_positions
|
6
|
-
rescue_from ActiveRecord::RecordNotFound, :
|
6
|
+
rescue_from ActiveRecord::RecordNotFound, with: :resource_not_found
|
7
7
|
|
8
8
|
respond_to :html
|
9
9
|
|
10
10
|
def new
|
11
11
|
invoke_callbacks(:new_action, :before)
|
12
12
|
respond_with(@object) do |format|
|
13
|
-
format.html { render :
|
13
|
+
format.html { render layout: !request.xhr? }
|
14
14
|
if request.xhr?
|
15
|
-
format.js { render :
|
15
|
+
format.js { render layout: false }
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def edit
|
21
21
|
respond_with(@object) do |format|
|
22
|
-
format.html { render :
|
22
|
+
format.html { render layout: !request.xhr? }
|
23
23
|
if request.xhr?
|
24
|
-
format.js { render :
|
24
|
+
format.js { render layout: false }
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -54,7 +54,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
|
|
54
54
|
flash[:success] = flash_message_for(@object, :successfully_created)
|
55
55
|
respond_with(@object) do |format|
|
56
56
|
format.html { redirect_to location_after_save }
|
57
|
-
format.js { render :
|
57
|
+
format.js { render layout: false }
|
58
58
|
end
|
59
59
|
else
|
60
60
|
invoke_callbacks(:create, :fails)
|
@@ -66,14 +66,14 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def update_positions
|
69
|
-
|
69
|
+
ApplicationRecord.transaction do
|
70
70
|
params[:positions].each do |id, index|
|
71
71
|
model_class.find(id).set_list_position(index)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
75
|
respond_to do |format|
|
76
|
-
format.js { render
|
76
|
+
format.js { render plain: 'Ok' }
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class ReturnAuthorizationsController < ResourceController
|
4
|
-
belongs_to 'spree/order', :
|
4
|
+
belongs_to 'spree/order', find_by: :number
|
5
5
|
|
6
6
|
before_action :load_form_data, only: [:new, :edit]
|
7
7
|
create.fails :load_form_data
|
@@ -10,7 +10,7 @@ module Spree
|
|
10
10
|
def fire
|
11
11
|
@return_authorization.send("#{params[:e]}!")
|
12
12
|
flash[:success] = Spree.t(:return_authorization_updated)
|
13
|
-
|
13
|
+
redirect_back fallback_location: spree.admin_return_authorization_url(@return_authorization)
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
@@ -40,7 +40,7 @@ module Spree
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def load_return_authorization_reasons
|
43
|
-
@reasons = Spree::ReturnAuthorizationReason.active
|
43
|
+
@reasons = Spree::ReturnAuthorizationReason.active.to_a
|
44
44
|
# Only allow an inactive reason if it's already associated to the RMA
|
45
45
|
if @return_authorization.reason && !@return_authorization.reason.active?
|
46
46
|
@reasons << @return_authorization.reason
|
@@ -20,7 +20,7 @@ module Spree
|
|
20
20
|
@collection = resource.all
|
21
21
|
# @search needs to be defined as this is passed to search_form_for
|
22
22
|
@search = @collection.ransack(params[:q])
|
23
|
-
per_page = params[:per_page] || Spree::Config[:
|
23
|
+
per_page = params[:per_page] || Spree::Config[:admin_customer_returns_per_page]
|
24
24
|
@collection = @search.result.order(created_at: :desc).page(params[:page]).per(per_page)
|
25
25
|
end
|
26
26
|
end
|
@@ -20,14 +20,14 @@ module Spree
|
|
20
20
|
|
21
21
|
def set_shipping_category
|
22
22
|
return true if params["shipping_method"][:shipping_categories] == ""
|
23
|
-
@shipping_method.shipping_categories = Spree::ShippingCategory.where(:
|
23
|
+
@shipping_method.shipping_categories = Spree::ShippingCategory.where(id: params["shipping_method"][:shipping_categories])
|
24
24
|
@shipping_method.save
|
25
25
|
params[:shipping_method].delete(:shipping_categories)
|
26
26
|
end
|
27
27
|
|
28
28
|
def set_zones
|
29
29
|
return true if params["shipping_method"][:zones] == ""
|
30
|
-
@shipping_method.zones = Spree::Zone.where(:
|
30
|
+
@shipping_method.zones = Spree::Zone.where(id: params["shipping_method"][:zones])
|
31
31
|
@shipping_method.save
|
32
32
|
params[:shipping_method].delete(:zones)
|
33
33
|
end
|
@@ -22,14 +22,14 @@ module Spree
|
|
22
22
|
flash[:error] = Spree.t(:could_not_create_stock_movement)
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
redirect_back fallback_location: spree.stock_admin_product_url(variant.product)
|
26
26
|
end
|
27
27
|
|
28
28
|
def destroy
|
29
29
|
stock_item.destroy
|
30
30
|
|
31
31
|
respond_with(@stock_item) do |format|
|
32
|
-
format.html {
|
32
|
+
format.html { redirect_back fallback_location: spree.stock_admin_product_url(stock_item.product) }
|
33
33
|
format.js
|
34
34
|
end
|
35
35
|
end
|
@@ -6,7 +6,7 @@ module Spree
|
|
6
6
|
|
7
7
|
def index
|
8
8
|
@stock_movements = stock_location.stock_movements.recent.
|
9
|
-
includes(:
|
9
|
+
includes(stock_item: { variant: :product }).
|
10
10
|
page(params[:page])
|
11
11
|
end
|
12
12
|
|
@@ -21,10 +21,6 @@ module Spree
|
|
21
21
|
redirect_to admin_stock_location_stock_movements_path(stock_location)
|
22
22
|
end
|
23
23
|
|
24
|
-
def edit
|
25
|
-
@stock_movement = StockMovement.find(params[:id])
|
26
|
-
end
|
27
|
-
|
28
24
|
private
|
29
25
|
|
30
26
|
def stock_location
|
@@ -54,7 +54,7 @@ module Spree
|
|
54
54
|
format.js { render_js_for_destroy }
|
55
55
|
end
|
56
56
|
else
|
57
|
-
render
|
57
|
+
render plain: Spree.t('store_credit.errors.unable_to_delete'), status: :unprocessable_entity
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -4,18 +4,9 @@ module Spree
|
|
4
4
|
|
5
5
|
before_action :load_taxonomy, only: [:create, :edit, :update]
|
6
6
|
before_action :load_taxon, only: [:edit, :update]
|
7
|
-
respond_to :html, :
|
7
|
+
respond_to :html, :js
|
8
8
|
|
9
9
|
def index
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
def search
|
14
|
-
if params[:ids]
|
15
|
-
@taxons = Spree::Taxon.where(id: params[:ids].split(','))
|
16
|
-
else
|
17
|
-
@taxons = Spree::Taxon.limit(20).ransack(name_cont: params[:q]).result
|
18
|
-
end
|
19
10
|
end
|
20
11
|
|
21
12
|
def create
|
@@ -1,20 +1,10 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class UsersController < ResourceController
|
4
|
-
rescue_from Spree::Core::DestroyWithOrdersError, :
|
4
|
+
rescue_from Spree::Core::DestroyWithOrdersError, with: :user_destroy_with_orders_error
|
5
5
|
|
6
6
|
after_action :sign_in_if_change_own_password, only: :update
|
7
7
|
|
8
|
-
# http://spreecommerce.com/blog/2010/11/02/json-hijacking-vulnerability/
|
9
|
-
before_action :check_json_authenticity, only: :index
|
10
|
-
|
11
|
-
def index
|
12
|
-
respond_with(@collection) do |format|
|
13
|
-
format.html
|
14
|
-
format.json { render :json => json_data }
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
8
|
def show
|
19
9
|
redirect_to edit_admin_user_path(@user)
|
20
10
|
end
|
@@ -55,7 +45,7 @@ module Spree
|
|
55
45
|
def orders
|
56
46
|
params[:q] ||= {}
|
57
47
|
@search = Spree::Order.reverse_chronological.ransack(params[:q].merge(user_id_eq: @user.id))
|
58
|
-
@orders = @search.result.page(params[:page])
|
48
|
+
@orders = @search.result.page(params[:page])
|
59
49
|
end
|
60
50
|
|
61
51
|
def items
|
@@ -64,7 +54,7 @@ module Spree
|
|
64
54
|
line_items: {
|
65
55
|
variant: [:product, { option_values: :option_type }]
|
66
56
|
}).ransack(params[:q].merge(user_id_eq: @user.id))
|
67
|
-
@orders = @search.result.page(params[:page])
|
57
|
+
@orders = @search.result.page(params[:page])
|
68
58
|
end
|
69
59
|
|
70
60
|
def generate_api_key
|
@@ -90,19 +80,8 @@ module Spree
|
|
90
80
|
def collection
|
91
81
|
return @collection if @collection.present?
|
92
82
|
@collection = super
|
93
|
-
|
94
|
-
|
95
|
-
.where("spree_users.email #{LIKE} :search
|
96
|
-
OR (spree_addresses.firstname #{LIKE} :search AND spree_addresses.id = spree_users.bill_address_id)
|
97
|
-
OR (spree_addresses.lastname #{LIKE} :search AND spree_addresses.id = spree_users.bill_address_id)
|
98
|
-
OR (spree_addresses.firstname #{LIKE} :search AND spree_addresses.id = spree_users.ship_address_id)
|
99
|
-
OR (spree_addresses.lastname #{LIKE} :search AND spree_addresses.id = spree_users.ship_address_id)",
|
100
|
-
{ :search => "#{params[:q].strip}%" })
|
101
|
-
.limit(params[:limit] || 100)
|
102
|
-
else
|
103
|
-
@search = @collection.ransack(params[:q])
|
104
|
-
@collection = @search.result.page(params[:page]).per(Spree::Config[:admin_products_per_page])
|
105
|
-
end
|
83
|
+
@search = @collection.ransack(params[:q])
|
84
|
+
@collection = @search.result.page(params[:page]).per(Spree::Config[:admin_users_per_page])
|
106
85
|
end
|
107
86
|
|
108
87
|
private
|
@@ -120,21 +99,6 @@ module Spree
|
|
120
99
|
render status: :forbidden, text: Spree.t(:error_user_destroy_with_orders)
|
121
100
|
end
|
122
101
|
|
123
|
-
# Allow different formats of json data to suit different ajax calls
|
124
|
-
def json_data
|
125
|
-
json_format = params[:json_format] || 'default'
|
126
|
-
case json_format
|
127
|
-
when 'basic'
|
128
|
-
collection.map { |u| { 'id' => u.id, 'name' => u.email } }.to_json
|
129
|
-
else
|
130
|
-
address_fields = [:firstname, :lastname, :address1, :address2, :city, :zipcode, :phone, :state_name, :state_id, :country_id]
|
131
|
-
includes = { only: address_fields, include: { state: { only: :name }, country: { only: :name } } }
|
132
|
-
|
133
|
-
collection.to_json(only: [:id, :email], include:
|
134
|
-
{ bill_address: includes, ship_address: includes })
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
102
|
def sign_in_if_change_own_password
|
139
103
|
if try_spree_current_user == @user && @user.password.present?
|
140
104
|
sign_in(@user, event: :authentication, bypass: true)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
module Admin
|
3
3
|
class VariantsController < ResourceController
|
4
|
-
belongs_to 'spree/product', :
|
4
|
+
belongs_to 'spree/product', find_by: :slug
|
5
5
|
new_action.before :new_before
|
6
6
|
before_action :load_data, only: [:new, :create, :edit, :update]
|
7
7
|
|
@@ -28,6 +28,7 @@ module Spree
|
|
28
28
|
@object.attributes = master.attributes.except(
|
29
29
|
'id', 'created_at', 'deleted_at', 'sku', 'is_master'
|
30
30
|
)
|
31
|
+
|
31
32
|
# Shallow Clone of the default price to populate the price field.
|
32
33
|
@object.default_price = master.default_price.clone if master.default_price.present?
|
33
34
|
end
|
@@ -38,6 +39,7 @@ module Spree
|
|
38
39
|
|
39
40
|
def collection
|
40
41
|
@deleted = (params.key?(:deleted) && params[:deleted] == "on") ? "checked" : ""
|
42
|
+
|
41
43
|
@collection ||=
|
42
44
|
if @deleted.blank?
|
43
45
|
super.includes(:default_price, option_values: :option_type)
|
@@ -145,13 +145,8 @@ module Spree
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def order_time(time)
|
148
|
-
[I18n.l(time.to_date), time.strftime("%l:%M %p")].join('')
|
148
|
+
[I18n.l(time.to_date), time.strftime("%l:%M %p").strip].join(' ')
|
149
149
|
end
|
150
|
-
|
151
|
-
private
|
152
|
-
def attribute_name_for(field_name)
|
153
|
-
field_name.gsub(' ', '_').downcase
|
154
|
-
end
|
155
150
|
end
|
156
151
|
end
|
157
152
|
end
|
@@ -69,17 +69,6 @@ module Spree
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
# sidebar are used on order edit, product edit, user overview etc.
|
73
|
-
# this link is shown so a user can collapse the sidebar
|
74
|
-
def collapse_sidebar_link
|
75
|
-
content_tag :div, class: "collapse-sidebar" do
|
76
|
-
link_to "javascript:;", class: "js-collapse-sidebar" do
|
77
|
-
content_tag(:span, nil, class: "icon icon-chevron-right") +
|
78
|
-
content_tag(:span, "Collapse sidebar", class: "text")
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
72
|
# the per_page_dropdown is used on index pages like orders, products, promotions etc.
|
84
73
|
# this method generates the select_tag
|
85
74
|
def per_page_dropdown
|
@@ -90,19 +79,21 @@ module Spree
|
|
90
79
|
per_page_options << (amount + 1) * Spree::Config.admin_products_per_page
|
91
80
|
end
|
92
81
|
else
|
93
|
-
per_page_default =
|
94
|
-
per_page_options = %w{
|
82
|
+
per_page_default = Spree::Config.admin_orders_per_page
|
83
|
+
per_page_options = %w{15 30 45 60}
|
95
84
|
end
|
96
85
|
|
86
|
+
selected_option = params[:per_page].try(:to_i) || per_page_default
|
87
|
+
|
97
88
|
select_tag(:per_page,
|
98
|
-
|
99
|
-
|
89
|
+
options_for_select(per_page_options, selected_option),
|
90
|
+
class: "form-control pull-right js-per-page-select per-page-selected-#{selected_option}")
|
100
91
|
end
|
101
92
|
|
102
93
|
# helper method to create proper url to apply per page filtering
|
103
94
|
# fixes https://github.com/spree/spree/issues/6888
|
104
95
|
def per_page_dropdown_params(args = nil)
|
105
|
-
args
|
96
|
+
args = params.permit!.to_h.clone
|
106
97
|
args.delete(:page)
|
107
98
|
args.delete(:per_page)
|
108
99
|
args
|
@@ -132,12 +123,6 @@ module Spree
|
|
132
123
|
button_link_to '', clone_object_url(resource), options
|
133
124
|
end
|
134
125
|
|
135
|
-
def link_to_new(resource)
|
136
|
-
options[:data] = { action: 'new' }
|
137
|
-
options[:class] = "btn btn-success btn-sm"
|
138
|
-
link_to_with_icon('plus', Spree.t(:new), edit_object_url(resource))
|
139
|
-
end
|
140
|
-
|
141
126
|
def link_to_edit(resource, options={})
|
142
127
|
url = options[:url] || edit_object_url(resource)
|
143
128
|
options[:data] = { action: 'edit' }
|
@@ -176,12 +161,13 @@ module Spree
|
|
176
161
|
icon_name ? content_tag(:i, '', class: icon_name) : ''
|
177
162
|
end
|
178
163
|
|
164
|
+
#Override: Add disable_with option to prevent multiple request on consecutive clicks
|
179
165
|
def button(text, icon_name = nil, button_type = 'submit', options={})
|
180
166
|
if icon_name
|
181
167
|
icon = content_tag(:span, '', class: "icon icon-#{icon_name}")
|
182
168
|
text.insert(0, icon + ' ')
|
183
169
|
end
|
184
|
-
button_tag(text.html_safe, options.merge(type: button_type, class: "btn btn-primary #{options[:class]}"))
|
170
|
+
button_tag(text.html_safe, options.merge(type: button_type, class: "btn btn-primary #{options[:class]}", data: { disable_with: "#{ Spree.t(:saving) }..." }))
|
185
171
|
end
|
186
172
|
|
187
173
|
def button_link_to(text, url, html_options = {})
|
@@ -210,14 +196,6 @@ module Spree
|
|
210
196
|
end
|
211
197
|
end
|
212
198
|
|
213
|
-
def configurations_menu_item(link_text, url, description = '')
|
214
|
-
%(<tr>
|
215
|
-
<td>#{link_to(link_text, url)}</td>
|
216
|
-
<td>#{description}</td>
|
217
|
-
</tr>
|
218
|
-
).html_safe
|
219
|
-
end
|
220
|
-
|
221
199
|
def configurations_sidebar_menu_item(link_text, url, options = {})
|
222
200
|
is_selected = url.ends_with?(controller.controller_name) ||
|
223
201
|
url.ends_with?("#{controller.controller_name}/edit") ||
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
module PromotionRulesHelper
|
4
|
+
def options_for_promotion_rule_types(promotion)
|
5
|
+
existing = promotion.rules.map { |rule| rule.class.name }
|
6
|
+
rule_names = Rails.application.config.spree.promotions.rules.map(&:name).reject{ |r| existing.include? r }
|
7
|
+
options = rule_names.map { |name| [ Spree.t("promotion_rule_types.#{name.demodulize.underscore}.name"), name] }
|
8
|
+
options_for_select(options)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -10,6 +10,6 @@
|
|
10
10
|
<% if current_page.last? %>
|
11
11
|
<a href="javascript:;">»</a>
|
12
12
|
<% else %>
|
13
|
-
<%= link_to_unless current_page.last?, "»".html_safe, url, :
|
13
|
+
<%= link_to_unless current_page.last?, "»".html_safe, url, rel: 'next', remote: remote %>
|
14
14
|
<% end %>
|
15
15
|
</li>
|
@@ -8,5 +8,5 @@
|
|
8
8
|
remote: data-remote
|
9
9
|
-%>
|
10
10
|
<li class="<%= 'active' if page.current? %>">
|
11
|
-
<%= link_to page, url, {:
|
11
|
+
<%= link_to page, url, {remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil} %>
|
12
12
|
</li>
|