spree_backend 3.2.9 → 3.3.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/javascripts/spree/backend/admin.js +16 -15
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +25 -26
- data/app/assets/javascripts/spree/backend/general_settings.js.coffee +10 -12
- data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +4 -6
- data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +7 -1
- data/app/assets/javascripts/spree/backend/stock_transfer.js.coffee +4 -1
- data/app/assets/javascripts/spree/backend/user_picker.js +3 -1
- data/app/assets/javascripts/spree/backend.js +3 -3
- data/app/controllers/spree/admin/countries_controller.rb +1 -0
- data/app/controllers/spree/admin/log_entries_controller.rb +2 -2
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +5 -6
- data/app/controllers/spree/admin/orders_controller.rb +4 -4
- data/app/controllers/spree/admin/payments_controller.rb +21 -10
- data/app/controllers/spree/admin/products_controller.rb +5 -0
- data/app/controllers/spree/admin/promotion_rules_controller.rb +11 -7
- data/app/controllers/spree/admin/stock_transfers_controller.rb +1 -1
- data/app/controllers/spree/admin/taxons_controller.rb +31 -23
- data/app/helpers/spree/admin/base_helper.rb +1 -1
- data/app/helpers/spree/admin/navigation_helper.rb +10 -4
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -2
- data/app/views/spree/admin/general_settings/edit.html.erb +8 -8
- data/app/views/spree/admin/images/_form.html.erb +2 -2
- data/app/views/spree/admin/images/edit.html.erb +2 -2
- data/app/views/spree/admin/images/new.html.erb +1 -1
- data/app/views/spree/admin/option_types/_form.html.erb +2 -2
- data/app/views/spree/admin/option_types/index.html.erb +4 -4
- data/app/views/spree/admin/orders/_line_items.html.erb +40 -38
- data/app/views/spree/admin/orders/_shipment.html.erb +77 -76
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +5 -5
- data/app/views/spree/admin/orders/index.html.erb +16 -16
- data/app/views/spree/admin/payment_methods/_form.html.erb +2 -2
- data/app/views/spree/admin/payments/_list.html.erb +1 -1
- data/app/views/spree/admin/products/_add_stock_form.html.erb +3 -3
- data/app/views/spree/admin/products/_form.html.erb +16 -16
- data/app/views/spree/admin/products/index.html.erb +4 -4
- data/app/views/spree/admin/products/new.html.erb +8 -8
- data/app/views/spree/admin/promotion_categories/index.html.erb +3 -3
- data/app/views/spree/admin/promotions/_form.html.erb +3 -3
- data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -1
- data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +2 -2
- 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 +2 -4
- data/app/views/spree/admin/promotions/edit.html.erb +3 -3
- data/app/views/spree/admin/promotions/index.html.erb +6 -6
- data/app/views/spree/admin/promotions/rules/_item_total.html.erb +2 -2
- data/app/views/spree/admin/promotions/rules/_option_value.html.erb +4 -4
- data/app/views/spree/admin/properties/_form.html.erb +2 -2
- data/app/views/spree/admin/properties/index.html.erb +6 -6
- data/app/views/spree/admin/prototypes/index.html.erb +4 -4
- data/app/views/spree/admin/reimbursement_types/_form.html.erb +4 -4
- data/app/views/spree/admin/reimbursements/edit.html.erb +1 -1
- data/app/views/spree/admin/return_authorizations/_form.html.erb +13 -1
- data/app/views/spree/admin/return_index/customer_returns.html.erb +2 -2
- data/app/views/spree/admin/return_index/return_authorizations.html.erb +5 -5
- data/app/views/spree/admin/shared/_content_header.html.erb +2 -2
- data/app/views/spree/admin/shared/_header.html.erb +2 -2
- data/app/views/spree/admin/shared/_index_table_options.html.erb +2 -2
- data/app/views/spree/admin/shared/_order_summary.html.erb +1 -1
- data/app/views/spree/admin/shared/_table_filter.html.erb +1 -1
- data/app/views/spree/admin/shared/_translations.html.erb +0 -1
- data/app/views/spree/admin/shared/_update_order_state.js.erb +1 -1
- data/app/views/spree/admin/shipping_methods/_form.html.erb +10 -10
- data/app/views/spree/admin/state_changes/index.html.erb +3 -3
- data/app/views/spree/admin/states/_form.html.erb +2 -2
- data/app/views/spree/admin/stock_locations/_form.html.erb +2 -2
- data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +4 -4
- data/app/views/spree/admin/stock_transfers/index.html.erb +3 -3
- data/app/views/spree/admin/stock_transfers/new.html.erb +2 -2
- data/app/views/spree/admin/store_credits/index.html.erb +1 -1
- data/app/views/spree/admin/tax_rates/_form.html.erb +2 -2
- data/app/views/spree/admin/taxonomies/_list.html.erb +2 -2
- data/app/views/spree/admin/taxonomies/{edit.erb → edit.html.erb} +0 -0
- data/app/views/spree/admin/taxonomies/index.html.erb +2 -2
- data/app/views/spree/admin/taxons/_form.html.erb +5 -5
- data/app/views/spree/admin/taxons/edit.html.erb +3 -0
- data/app/views/spree/admin/trackers/_form.html.erb +2 -2
- data/app/views/spree/admin/users/_addresses_form.html.erb +2 -2
- data/app/views/spree/admin/users/_form.html.erb +2 -2
- data/app/views/spree/admin/users/_user_page_actions.html.erb +1 -1
- data/app/views/spree/admin/users/index.html.erb +5 -5
- data/app/views/spree/admin/users/items.html.erb +1 -1
- data/app/views/spree/admin/users/orders.html.erb +1 -1
- data/app/views/spree/admin/variants/_form.html.erb +2 -2
- data/app/views/spree/admin/zones/_form.html.erb +2 -2
- data/app/views/spree/layouts/admin.html.erb +3 -3
- data/config/initializers/assets.rb +1 -1
- data/lib/spree/backend/engine.rb +0 -1
- 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 +199 -0
- data/spec/controllers/spree/admin/orders_controller_spec.rb +296 -0
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +64 -0
- data/spec/controllers/spree/admin/payments_controller_spec.rb +97 -0
- data/spec/controllers/spree/admin/products_controller_spec.rb +137 -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 +124 -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 +660 -0
- data/spec/features/admin/orders/payments_spec.rb +244 -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 +56 -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 +258 -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 +91 -0
- data/spec/features/admin/store_credits_spec.rb +93 -0
- data/spec/features/admin/taxons_spec.rb +53 -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 -4
- data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +130 -154
- metadata +106 -29
- 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/stylesheets/jquery-ui.datepicker.css.erb +0 -357
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43eb9d10aad328c6c7d69260f137280e3739c869
|
4
|
+
data.tar.gz: 2c4ddb4edbaebfc4972b3bd264db35ed0867858e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2665aa69f0f9225880a43233890c36b530429a9e692b4ce7080698db87856a68d9eb95dce77fb535825145207aa8f81376bc55dfd57d3ce28775fa5e2fcd814
|
7
|
+
data.tar.gz: c7458d63d7a180a1a5295b104545c33bcc4cad2fb438088453ecd9c8191b27ce382011e5dff9765c9d57ad6b0d461559ce329d83de17fb3a651f23d215a565c9
|
@@ -28,24 +28,25 @@ jQuery(function($) {
|
|
28
28
|
|
29
29
|
// Sidebar nav toggle functionality
|
30
30
|
var sidebar_toggle = $('#sidebar-toggle');
|
31
|
-
|
32
|
-
sidebar_toggle.on('click', function(){
|
31
|
+
sidebar_toggle.on('click', function() {
|
33
32
|
var wrapper = $('#wrapper');
|
34
33
|
var main = $('#main-part');
|
34
|
+
var sidebar = $('#main-sidebar');
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
.addClass('col-sm-12 col-md-12 sidebar-collapsed');
|
36
|
+
// these should match `spree/backend/app/helpers/spree/admin/navigation_helper.rb#main_part_classes`
|
37
|
+
var mainWrapperCollapsedClasses = 'col-xs-12 sidebar-collapsed';
|
38
|
+
var mainWrapperExpandedClasses = 'col-xs-9 col-xs-offset-3 col-md-10 col-md-offset-2';
|
39
|
+
|
40
|
+
wrapper.toggleClass('sidebar-minimized');
|
41
|
+
sidebar.toggleClass('hidden-xs');
|
42
|
+
main
|
43
|
+
.toggleClass(mainWrapperCollapsedClasses)
|
44
|
+
.toggleClass(mainWrapperExpandedClasses);
|
45
|
+
|
46
|
+
if (wrapper.hasClass('sidebar-minimized')) {
|
48
47
|
$.cookie('sidebar-minimized', 'true', { path: '/admin' });
|
48
|
+
} else {
|
49
|
+
$.cookie('sidebar-minimized', 'false', { path: '/admin' });
|
49
50
|
}
|
50
51
|
});
|
51
52
|
|
@@ -336,7 +337,7 @@ $(document).ready(function(){
|
|
336
337
|
reg = /spree_(\w+_?)+_(\d+)/;
|
337
338
|
parts = reg.exec($(obj).prop('id'));
|
338
339
|
if (parts) {
|
339
|
-
positions['positions['+parts[2]+']'] = position;
|
340
|
+
positions['positions['+parts[2]+']'] = position+1;
|
340
341
|
}
|
341
342
|
});
|
342
343
|
$.ajax({
|
@@ -1,4 +1,14 @@
|
|
1
1
|
//= require_self
|
2
|
+
|
3
|
+
var clear_address_fields = function() {
|
4
|
+
var fields = ['firstname', 'lastname', 'company', 'address1', 'address2',
|
5
|
+
'city', 'zipcode', 'state_id', 'country_id', 'phone'];
|
6
|
+
$.each(fields, function(i, field) {
|
7
|
+
$('#order_bill_address_attributes_' + field).val('');
|
8
|
+
$('#order_ship_address_attributes_' + field).val('');
|
9
|
+
});
|
10
|
+
};
|
11
|
+
|
2
12
|
$(document).ready(function() {
|
3
13
|
if ($('#customer_autocomplete_template').length > 0) {
|
4
14
|
window.customerTemplate = Handlebars.compile($('#customer_autocomplete_template').text());
|
@@ -12,8 +22,8 @@ $(document).ready(function() {
|
|
12
22
|
})
|
13
23
|
}
|
14
24
|
|
15
|
-
if ($(
|
16
|
-
$(
|
25
|
+
if ($('#customer_search').length > 0) {
|
26
|
+
$('#customer_search').select2({
|
17
27
|
placeholder: Spree.translations.choose_a_customer,
|
18
28
|
ajax: {
|
19
29
|
url: Spree.routes.users_api,
|
@@ -21,14 +31,7 @@ $(document).ready(function() {
|
|
21
31
|
cache: true,
|
22
32
|
data: function(term, page) {
|
23
33
|
return {
|
24
|
-
q:
|
25
|
-
'm': 'or',
|
26
|
-
'email_start': term,
|
27
|
-
'ship_address_firstname_start': term,
|
28
|
-
'ship_address_lastname_start': term,
|
29
|
-
'bill_address_firstname_start': term,
|
30
|
-
'bill_address_lastname_start': term
|
31
|
-
},
|
34
|
+
q: term,
|
32
35
|
token: Spree.api_key
|
33
36
|
}
|
34
37
|
},
|
@@ -40,10 +43,10 @@ $(document).ready(function() {
|
|
40
43
|
formatResult: formatCustomerResult,
|
41
44
|
formatSelection: function (customer) {
|
42
45
|
$('#order_email').val(customer.email);
|
43
|
-
$('#
|
44
|
-
$('#guest_checkout_true').prop(
|
45
|
-
$('#guest_checkout_false').prop(
|
46
|
-
$('#guest_checkout_false').prop(
|
46
|
+
$('#order_user_id').val(customer.id);
|
47
|
+
$('#guest_checkout_true').prop('checked', false);
|
48
|
+
$('#guest_checkout_false').prop('checked', true);
|
49
|
+
$('#guest_checkout_false').prop('disabled', false);
|
47
50
|
|
48
51
|
var billAddress = customer.bill_address;
|
49
52
|
if(billAddress) {
|
@@ -55,11 +58,13 @@ $(document).ready(function() {
|
|
55
58
|
$('#order_bill_address_attributes_zipcode').val(billAddress.zipcode);
|
56
59
|
$('#order_bill_address_attributes_phone').val(billAddress.phone);
|
57
60
|
|
58
|
-
$('#order_bill_address_attributes_country_id').select2(
|
61
|
+
$('#order_bill_address_attributes_country_id').select2('val', billAddress.country_id).promise().done(function () {
|
59
62
|
update_state('b', function () {
|
60
|
-
$('#order_bill_address_attributes_state_id').select2(
|
63
|
+
$('#order_bill_address_attributes_state_id').select2('val', billAddress.state_id);
|
61
64
|
});
|
62
65
|
});
|
66
|
+
} else {
|
67
|
+
clear_address_fields();
|
63
68
|
}
|
64
69
|
return Select2.util.escapeMarkup(customer.email);
|
65
70
|
}
|
@@ -83,15 +88,9 @@ $(document).ready(function() {
|
|
83
88
|
order_use_billing();
|
84
89
|
|
85
90
|
$('#guest_checkout_true').change(function() {
|
86
|
-
$('#customer_search').val(
|
87
|
-
$('#
|
88
|
-
$('#
|
89
|
-
|
90
|
-
var fields = ["firstname", "lastname", "company", "address1", "address2",
|
91
|
-
"city", "zipcode", "state_id", "country_id", "phone"]
|
92
|
-
$.each(fields, function(i, field) {
|
93
|
-
$('#order_bill_address_attributes' + field).val("");
|
94
|
-
$('#order_ship_address_attributes' + field).val("");
|
95
|
-
})
|
91
|
+
$('#customer_search').val('');
|
92
|
+
$('#order_user_id').val('');
|
93
|
+
$('#order_email').val('');
|
94
|
+
clear_address_fields();
|
96
95
|
});
|
97
96
|
});
|
@@ -1,15 +1,13 @@
|
|
1
1
|
$(@).ready( ->
|
2
2
|
$('[data-hook=general_settings_clear_cache] #clear_cache').click ->
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
else
|
14
|
-
show_flash 'error', "There was a problem while flushing cache."
|
3
|
+
$.ajax
|
4
|
+
type: 'POST'
|
5
|
+
url: Spree.routes.clear_cache
|
6
|
+
success: ->
|
7
|
+
show_flash 'success', "Cache was flushed."
|
8
|
+
error: (msg) ->
|
9
|
+
if msg.responseJSON["error"]
|
10
|
+
show_flash 'error', msg.responseJSON["error"]
|
11
|
+
else
|
12
|
+
show_flash 'error', "There was a problem while flushing cache."
|
15
13
|
)
|
@@ -2,10 +2,11 @@ jQuery ($) ->
|
|
2
2
|
# Payment model
|
3
3
|
order_id = $('#payments').data('order-id')
|
4
4
|
class Payment
|
5
|
-
constructor: (
|
6
|
-
@url = Spree.url("#{Spree.routes.payments_api(order_id)}/#{
|
5
|
+
constructor: (number) ->
|
6
|
+
@url = Spree.url("#{Spree.routes.payments_api(order_id)}/#{number}.json" + '?token=' + Spree.api_key)
|
7
7
|
@json = $.getJSON @url.toString(), (data) =>
|
8
8
|
@data = data
|
9
|
+
@updating = false
|
9
10
|
|
10
11
|
if_editable: (callback) ->
|
11
12
|
@json.done (data) ->
|
@@ -128,9 +129,6 @@ jQuery ($) ->
|
|
128
129
|
$('<input />')
|
129
130
|
.prop(id: 'amount', value: amount)
|
130
131
|
.width(width)
|
131
|
-
.one
|
132
|
-
blur: =>
|
133
|
-
@save()
|
134
132
|
.css('text-align': 'right')
|
135
133
|
|
136
134
|
$input: ->
|
@@ -143,5 +141,5 @@ jQuery ($) ->
|
|
143
141
|
# Attach ShowPaymentView to each editable payment in the table
|
144
142
|
$('.admin tr[data-hook=payments_row]').each ->
|
145
143
|
$el = $(@)
|
146
|
-
payment = new Payment($el.
|
144
|
+
payment = new Payment($el.attr('data-number'))
|
147
145
|
payment.if_editable -> new ShowPaymentView($el, payment)
|
@@ -12,7 +12,12 @@ $(document).ready(function() {
|
|
12
12
|
var totalPretaxRefund = 0;
|
13
13
|
var checkedItems = formFields.find('input.add-item:checked');
|
14
14
|
$.each(checkedItems, function(i, checkbox) {
|
15
|
-
|
15
|
+
var returnItemRow = $(checkbox).parents('tr'), returnQuantity, amount, purchasedQuantity;
|
16
|
+
returnQuantity = parseInt(returnItemRow.find('.refund-quantity-input').val(), 10);
|
17
|
+
purchasedQuantity = parseInt(returnItemRow.find('.purchased-quantity').text(), 10);
|
18
|
+
amount = (returnQuantity / purchasedQuantity) * parseFloat(returnItemRow.find('.charged-amount').data('chargedAmount'));
|
19
|
+
returnItemRow.find('.refund-amount-input').val(amount.toFixed(2));
|
20
|
+
totalPretaxRefund += amount;
|
16
21
|
});
|
17
22
|
|
18
23
|
var displayTotal = isNaN(totalPretaxRefund) ? '' : totalPretaxRefund.toFixed(2);
|
@@ -29,6 +34,7 @@ $(document).ready(function() {
|
|
29
34
|
|
30
35
|
formFields.find('input.add-item').on('change', updateSuggestedAmount);
|
31
36
|
formFields.find('.refund-amount-input').on('keyup', updateSuggestedAmount);
|
37
|
+
formFields.find('.refund-quantity-input').on('keyup', updateSuggestedAmount);
|
32
38
|
|
33
39
|
formFields.find('input, select').not('.add-item').on('change', checkAddItemBox);
|
34
40
|
}
|
@@ -97,7 +97,10 @@ $ ->
|
|
97
97
|
'variant_product_name_or_variant_sku_cont')
|
98
98
|
|
99
99
|
format_variant_result: (result) ->
|
100
|
-
|
100
|
+
if !!result.options_text
|
101
|
+
"#{result.name} - #{result.sku} (#{result.options_text})"
|
102
|
+
else
|
103
|
+
"#{result.name} - #{result.sku}"
|
101
104
|
|
102
105
|
build_select: (url, query) ->
|
103
106
|
$('#transfer_variant').select2
|
@@ -5,9 +5,9 @@
|
|
5
5
|
//= require jquery.cookie
|
6
6
|
//= require jquery.jstree/jquery.jstree
|
7
7
|
//= require jquery_ujs
|
8
|
-
//= require jquery-ui/datepicker
|
9
|
-
//= require jquery-ui/sortable
|
10
|
-
//= require jquery-ui/autocomplete
|
8
|
+
//= require jquery-ui/widgets/datepicker
|
9
|
+
//= require jquery-ui/widgets/sortable
|
10
|
+
//= require jquery-ui/widgets/autocomplete
|
11
11
|
//= require select2
|
12
12
|
//= require underscore-min.js
|
13
13
|
//= require velocity
|
@@ -11,8 +11,8 @@ module Spree
|
|
11
11
|
private
|
12
12
|
|
13
13
|
def find_order_and_payment
|
14
|
-
@order = Spree::Order.
|
15
|
-
@payment = @order.payments.
|
14
|
+
@order = Spree::Order.find_by!(number: params[:order_id])
|
15
|
+
@payment = @order.payments.find_by!(number: params[:payment_id])
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -22,8 +22,8 @@ module Spree
|
|
22
22
|
def update
|
23
23
|
if @order.update_attributes(order_params)
|
24
24
|
@order.associate_user!(@user, @order.email.blank?) unless guest_checkout?
|
25
|
-
@order.next
|
26
|
-
@order.refresh_shipment_rates(Spree::ShippingMethod::
|
25
|
+
@order.next if @order.address?
|
26
|
+
@order.refresh_shipment_rates(Spree::ShippingMethod::DISPLAY_ON_BACK_END)
|
27
27
|
|
28
28
|
if @order.errors.empty?
|
29
29
|
flash[:success] = Spree.t('customer_details_updated')
|
@@ -40,15 +40,14 @@ module Spree
|
|
40
40
|
|
41
41
|
def order_params
|
42
42
|
params.require(:order).permit(
|
43
|
-
:email,
|
44
|
-
:use_billing,
|
43
|
+
:email, :user_id, :use_billing,
|
45
44
|
bill_address_attributes: permitted_address_attributes,
|
46
45
|
ship_address_attributes: permitted_address_attributes
|
47
46
|
)
|
48
47
|
end
|
49
48
|
|
50
49
|
def load_order
|
51
|
-
@order = Order.includes(:adjustments).
|
50
|
+
@order = Order.includes(:adjustments).find_by!(number: params[:order_id])
|
52
51
|
end
|
53
52
|
|
54
53
|
def model_class
|
@@ -56,7 +55,7 @@ module Spree
|
|
56
55
|
end
|
57
56
|
|
58
57
|
def load_user
|
59
|
-
@user = (Spree.user_class.find_by(id:
|
58
|
+
@user = (Spree.user_class.find_by(id: order_params[:user_id]) ||
|
60
59
|
Spree.user_class.find_by(email: order_params[:email]))
|
61
60
|
|
62
61
|
unless @user
|
@@ -34,7 +34,7 @@ module Spree
|
|
34
34
|
params[:q][:completed_at_lt] = params[:q].delete(:created_at_lt)
|
35
35
|
end
|
36
36
|
|
37
|
-
@search = Order.preload(:user).accessible_by(current_ability, :index).ransack(params[:q])
|
37
|
+
@search = Spree::Order.preload(:user).accessible_by(current_ability, :index).ransack(params[:q])
|
38
38
|
|
39
39
|
# lazy loading other models here (via includes) may result in an invalid query
|
40
40
|
# e.g. SELECT DISTINCT DISTINCT "spree_orders".id, "spree_orders"."created_at" AS alias_0 FROM "spree_orders"
|
@@ -49,14 +49,14 @@ module Spree
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def new
|
52
|
-
@order = Order.create(order_params)
|
52
|
+
@order = Spree::Order.create(order_params)
|
53
53
|
redirect_to cart_admin_order_url(@order)
|
54
54
|
end
|
55
55
|
|
56
56
|
def edit
|
57
57
|
can_not_transition_without_customer_info
|
58
58
|
|
59
|
-
@order.refresh_shipment_rates(ShippingMethod::
|
59
|
+
@order.refresh_shipment_rates(ShippingMethod::DISPLAY_ON_BACK_END)
|
60
60
|
end
|
61
61
|
|
62
62
|
def cart
|
@@ -130,7 +130,7 @@ module Spree
|
|
130
130
|
end
|
131
131
|
|
132
132
|
def load_order
|
133
|
-
@order = Order.includes(:adjustments).
|
133
|
+
@order = Spree::Order.includes(:adjustments).find_by!(number: params[:id])
|
134
134
|
authorize! action, @order
|
135
135
|
end
|
136
136
|
|
@@ -24,22 +24,32 @@ module Spree
|
|
24
24
|
|
25
25
|
def create
|
26
26
|
invoke_callbacks(:create, :before)
|
27
|
-
@payment ||= @order.payments.build(object_params)
|
28
|
-
if @payment.payment_method.source_required? && params[:card].present? and params[:card] != 'new'
|
29
|
-
@payment.source = @payment.payment_method.payment_source_class.find_by_id(params[:card])
|
30
|
-
end
|
31
27
|
|
32
28
|
begin
|
33
|
-
if @
|
29
|
+
if @payment_method.store_credit?
|
30
|
+
payments = @order.add_store_credit_payments
|
31
|
+
else
|
32
|
+
@payment ||= @order.payments.build(object_params)
|
33
|
+
if @payment.payment_method.source_required? && params[:card].present? && params[:card] != 'new'
|
34
|
+
@payment.source = @payment.payment_method.payment_source_class.find_by_id(params[:card])
|
35
|
+
end
|
36
|
+
@payment.save
|
37
|
+
payments = [@payment]
|
38
|
+
end
|
39
|
+
|
40
|
+
if payments && (saved_payments = payments.select &:persisted?).any?
|
34
41
|
invoke_callbacks(:create, :after)
|
42
|
+
|
35
43
|
# Transition order as far as it will go.
|
36
44
|
while @order.next; end
|
37
45
|
# If "@order.next" didn't trigger payment processing already (e.g. if the order was
|
38
46
|
# already complete) then trigger it manually now
|
39
|
-
|
40
|
-
|
47
|
+
|
48
|
+
saved_payments.each { |payment| payment.process! if payment.reload.checkout? && @order.complete? }
|
49
|
+
flash[:success] = flash_message_for(saved_payments.first, :successfully_created)
|
41
50
|
redirect_to admin_order_payments_path(@order)
|
42
51
|
else
|
52
|
+
@payment ||= @order.payments.build(object_params)
|
43
53
|
invoke_callbacks(:create, :fails)
|
44
54
|
flash[:error] = Spree.t(:payment_could_not_be_created)
|
45
55
|
render :new
|
@@ -83,18 +93,19 @@ module Spree
|
|
83
93
|
if @payment and @payment.payment_method
|
84
94
|
@payment_method = @payment.payment_method
|
85
95
|
else
|
86
|
-
@payment_method = @payment_methods.
|
96
|
+
@payment_method = @payment_methods.find_by(id: params[:payment][:payment_method_id]) if params[:payment]
|
97
|
+
@payment_method ||= @payment_methods.first
|
87
98
|
end
|
88
99
|
end
|
89
100
|
|
90
101
|
def load_order
|
91
|
-
@order = Order.
|
102
|
+
@order = Order.find_by!(number: params[:order_id])
|
92
103
|
authorize! action, @order
|
93
104
|
@order
|
94
105
|
end
|
95
106
|
|
96
107
|
def load_payment
|
97
|
-
@payment = Payment.
|
108
|
+
@payment = Payment.find_by!(number: params[:id])
|
98
109
|
end
|
99
110
|
|
100
111
|
def model_class
|
@@ -72,6 +72,11 @@ module Spree
|
|
72
72
|
end
|
73
73
|
|
74
74
|
redirect_to edit_admin_product_url(@new)
|
75
|
+
|
76
|
+
rescue ActiveRecord::RecordInvalid
|
77
|
+
# Handle error on uniqueness validation on product fields
|
78
|
+
flash[:error] = Spree.t('notice_messages.product_not_cloned')
|
79
|
+
redirect_to admin_products_url
|
75
80
|
end
|
76
81
|
|
77
82
|
def stock
|
@@ -5,11 +5,7 @@ class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
|
|
5
5
|
before_action :validate_promotion_rule_type, only: :create
|
6
6
|
|
7
7
|
def create
|
8
|
-
|
9
|
-
# to set it when creating a new record, as this is raises
|
10
|
-
# an error in ActiveRecord 3.2.
|
11
|
-
promotion_rule_type = params[:promotion_rule].delete(:type)
|
12
|
-
@promotion_rule = promotion_rule_type.constantize.new(params[:promotion_rule])
|
8
|
+
@promotion_rule = @promotion_rule_type.new(promotion_rule_params)
|
13
9
|
@promotion_rule.promotion = @promotion
|
14
10
|
if @promotion_rule.save
|
15
11
|
flash[:success] = Spree.t(:successfully_created, resource: Spree.t(:promotion_rule))
|
@@ -38,8 +34,12 @@ class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
|
|
38
34
|
end
|
39
35
|
|
40
36
|
def validate_promotion_rule_type
|
41
|
-
|
42
|
-
|
37
|
+
requested_type = params[:promotion_rule].delete(:type)
|
38
|
+
promotion_rule_types = Rails.application.config.spree.promotions.rules
|
39
|
+
@promotion_rule_type = promotion_rule_types.detect do |klass|
|
40
|
+
klass.name == requested_type
|
41
|
+
end
|
42
|
+
if !@promotion_rule_type
|
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)}
|
@@ -47,4 +47,8 @@ class Spree::Admin::PromotionRulesController < Spree::Admin::BaseController
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
50
|
+
|
51
|
+
def promotion_rule_params
|
52
|
+
params[:promotion_rule].permit!
|
53
|
+
end
|
50
54
|
end
|
@@ -4,6 +4,7 @@ module Spree
|
|
4
4
|
|
5
5
|
before_action :load_taxonomy, only: [:create, :edit, :update]
|
6
6
|
before_action :load_taxon, only: [:edit, :update]
|
7
|
+
before_action :set_permalink_part, only: [:edit, :update]
|
7
8
|
respond_to :html, :js
|
8
9
|
|
9
10
|
def index
|
@@ -24,45 +25,52 @@ module Spree
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def edit
|
27
|
-
@permalink_part = @taxon.permalink.split("/").last
|
28
28
|
end
|
29
29
|
|
30
30
|
def update
|
31
|
-
|
32
|
-
set_position
|
33
|
-
set_parent(parent_id)
|
31
|
+
successful = @taxon.transaction do
|
34
32
|
|
35
|
-
|
33
|
+
parent_id = params[:taxon][:parent_id]
|
34
|
+
set_position
|
35
|
+
set_parent(parent_id)
|
36
36
|
|
37
|
-
|
38
|
-
regenerate_permalink if parent_id
|
37
|
+
@taxon.save!
|
39
38
|
|
40
|
-
|
39
|
+
# regenerate permalink
|
40
|
+
regenerate_permalink if parent_id
|
41
41
|
|
42
|
-
|
43
|
-
@update_children = true if params[:taxon][:name] != @taxon.name || params[:taxon][:permalink] != @taxon.permalink
|
42
|
+
set_permalink_params
|
44
43
|
|
45
|
-
|
46
|
-
|
47
|
-
end
|
44
|
+
#check if we need to rename child taxons if parent name or permalink changes
|
45
|
+
@update_children = true if params[:taxon][:name] != @taxon.name || params[:taxon][:permalink] != @taxon.permalink
|
48
46
|
|
49
|
-
|
50
|
-
rename_child_taxons if @update_children
|
47
|
+
@taxon.update_attributes(taxon_params)
|
51
48
|
|
52
|
-
respond_with(@taxon) do |format|
|
53
|
-
format.html { redirect_to edit_admin_taxonomy_url(@taxonomy) }
|
54
|
-
format.json { render json: @taxon.to_json }
|
55
49
|
end
|
56
|
-
|
50
|
+
if successful
|
51
|
+
flash[:success] = flash_message_for(@taxon, :successfully_updated)
|
57
52
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
53
|
+
#rename child taxons
|
54
|
+
rename_child_taxons if @update_children
|
55
|
+
|
56
|
+
respond_with(@taxon) do |format|
|
57
|
+
format.html { redirect_to edit_admin_taxonomy_url(@taxonomy) }
|
58
|
+
format.json { render json: @taxon.to_json }
|
59
|
+
end
|
60
|
+
else
|
61
|
+
respond_with(@taxon) do |format|
|
62
|
+
format.html { render :edit }
|
63
|
+
format.json { render json: @taxon.errors.full_messages.to_sentence, status: 422 }
|
64
|
+
end
|
65
|
+
end
|
62
66
|
end
|
63
67
|
|
64
68
|
private
|
65
69
|
|
70
|
+
def set_permalink_part
|
71
|
+
@permalink_part = @taxon.permalink.split('/').last
|
72
|
+
end
|
73
|
+
|
66
74
|
def taxon_params
|
67
75
|
params.require(:taxon).permit(permitted_taxon_attributes)
|
68
76
|
end
|
@@ -11,7 +11,7 @@ module Spree
|
|
11
11
|
flash_class = "info" if flash[:notice]
|
12
12
|
flash_class = "success" if flash[:success]
|
13
13
|
flash_div = content_tag(:div, (close_button + message), class: "alert alert-#{flash_class} alert-auto-disappear")
|
14
|
-
content_tag(:div, flash_div, class: 'col-
|
14
|
+
content_tag(:div, flash_div, class: 'col-xs-12')
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -210,17 +210,23 @@ module Spree
|
|
210
210
|
|
211
211
|
def main_part_classes
|
212
212
|
if cookies['sidebar-minimized'] == 'true'
|
213
|
-
|
213
|
+
'col-xs-12 sidebar-collapsed'
|
214
214
|
else
|
215
|
-
|
215
|
+
'col-xs-9 col-xs-offset-3 col-md-10 col-md-offset-2'
|
216
216
|
end
|
217
217
|
end
|
218
218
|
|
219
|
-
def
|
219
|
+
def main_sidebar_classes
|
220
220
|
if cookies['sidebar-minimized'] == 'true'
|
221
|
-
|
221
|
+
'col-xs-3 col-md-2 hidden-xs sidebar'
|
222
|
+
else
|
223
|
+
'col-xs-3 col-md-2 sidebar'
|
222
224
|
end
|
223
225
|
end
|
226
|
+
|
227
|
+
def wrapper_classes
|
228
|
+
'sidebar-minimized' if cookies['sidebar-minimized'] == 'true'
|
229
|
+
end
|
224
230
|
end
|
225
231
|
end
|
226
232
|
end
|
@@ -20,10 +20,10 @@
|
|
20
20
|
<% if can?(:edit, Spree::Adjustment) %>
|
21
21
|
<div class="panel-footer">
|
22
22
|
<div class="row text-center">
|
23
|
-
<div class="col-md-6">
|
23
|
+
<div class="col-xs-12 col-md-6">
|
24
24
|
<%= button_to Spree.t(:open_all_adjustments), open_adjustments_admin_order_path(@order), method: :get, class: "btn btn-success" %>
|
25
25
|
</div>
|
26
|
-
<div class="col-md-6">
|
26
|
+
<div class="col-xs-12 col-md-6">
|
27
27
|
<%= button_to Spree.t(:close_all_adjustments), close_adjustments_admin_order_path(@order), method: :get, class: "btn btn-danger" %>
|
28
28
|
</div>
|
29
29
|
</div>
|