solidus_backend 1.0.7 → 1.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_backend might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree/backend.js +3 -0
- data/app/assets/javascripts/spree/backend/admin.js.erb +17 -24
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +3 -5
- data/app/assets/javascripts/spree/backend/flash.coffee +17 -0
- data/app/assets/javascripts/spree/backend/handlebars_extensions.coffee +9 -0
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js.erb +6 -6
- data/app/assets/javascripts/spree/backend/option_value_picker.js +43 -0
- data/app/assets/javascripts/spree/backend/product_picker.js +10 -8
- data/app/assets/javascripts/spree/backend/promotions.js.coffee +101 -0
- data/app/assets/javascripts/spree/backend/routes.js +2 -1
- data/app/assets/javascripts/spree/backend/shipments.js.erb +1 -1
- data/app/assets/javascripts/spree/backend/stock_management/index_add_forms.coffee +1 -1
- data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +2 -2
- data/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee +1 -1
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js.erb +6 -6
- data/app/assets/javascripts/spree/backend/taxons.js.coffee +6 -7
- data/app/assets/javascripts/spree/backend/templates/orders/customer_details/autocomplete.hbs +17 -0
- data/app/assets/javascripts/spree/backend/templates/products/sortable.hbs +5 -0
- data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_flat_rate.hbs +17 -0
- data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_percent.hbs +17 -0
- data/app/assets/javascripts/spree/backend/templates/promotions/rules/option_values.hbs +10 -0
- data/app/assets/javascripts/spree/backend/templates/promotions/rules/option_values_select.hbs +1 -0
- data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +19 -0
- data/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs.erb +52 -0
- data/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs.erb +23 -0
- data/app/assets/javascripts/spree/backend/templates/variants/autocomplete_stock.hbs +51 -0
- data/app/assets/javascripts/spree/backend/templates/variants/line_items_autocomplete_stock.hbs +67 -0
- data/app/assets/javascripts/spree/backend/templates/variants/split.hbs +27 -0
- data/app/assets/javascripts/spree/backend/user_picker.js +8 -8
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee.erb +6 -8
- data/app/assets/stylesheets/spree/backend/components/_messages.scss +6 -3
- data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +16 -0
- data/app/controllers/spree/admin/base_controller.rb +1 -1
- data/app/controllers/spree/admin/option_types_controller.rb +1 -3
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +1 -1
- data/app/controllers/spree/admin/orders_controller.rb +6 -11
- data/app/controllers/spree/admin/product_properties_controller.rb +9 -0
- data/app/controllers/spree/admin/products_controller.rb +20 -5
- data/app/controllers/spree/admin/promotions_controller.rb +2 -1
- data/app/controllers/spree/admin/reimbursements_controller.rb +20 -0
- data/app/controllers/spree/admin/resource_controller.rb +1 -1
- data/app/controllers/spree/admin/return_authorizations_controller.rb +5 -0
- data/app/controllers/spree/admin/root_controller.rb +1 -1
- data/app/controllers/spree/admin/search_controller.rb +2 -4
- data/app/controllers/spree/admin/states_controller.rb +1 -1
- data/app/controllers/spree/admin/stock_items_controller.rb +1 -1
- data/app/controllers/spree/admin/stock_transfers_controller.rb +3 -14
- data/app/controllers/spree/admin/users_controller.rb +2 -3
- data/app/controllers/spree/admin/variant_property_rule_values_controller.rb +7 -0
- data/app/controllers/spree/admin/variants_controller.rb +1 -1
- data/app/controllers/spree/admin/zones_controller.rb +1 -1
- data/app/helpers/spree/admin/adjustments_helper.rb +4 -9
- data/app/helpers/spree/admin/base_helper.rb +7 -6
- data/app/helpers/spree/admin/navigation_helper.rb +8 -2
- data/app/helpers/spree/admin/orders_helper.rb +1 -1
- data/app/helpers/spree/admin/products_helper.rb +2 -4
- data/app/helpers/spree/admin/stock_movements_helper.rb +3 -3
- data/app/views/spree/admin/adjustments/_adjustment.html.erb +1 -1
- data/app/views/spree/admin/orders/_add_line_item.html.erb +0 -5
- data/app/views/spree/admin/orders/_add_product.html.erb +0 -3
- data/app/views/spree/admin/orders/_carton.html.erb +0 -1
- data/app/views/spree/admin/orders/_shipment.html.erb +0 -1
- data/app/views/spree/admin/orders/confirm/_shipment.html.erb +0 -1
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +1 -1
- data/app/views/spree/admin/orders/customer_details/edit.html.erb +0 -1
- data/app/views/spree/admin/orders/index.html.erb +1 -2
- data/app/views/spree/admin/payment_methods/_form.html.erb +0 -4
- data/app/views/spree/admin/payment_methods/index.html.erb +0 -2
- data/app/views/spree/admin/payments/source_views/_gateway.html.erb +3 -0
- data/app/views/spree/admin/product_properties/index.html.erb +52 -2
- data/app/views/spree/admin/promotions/_actions.html.erb +14 -10
- data/app/views/spree/admin/promotions/_promotion_action.html.erb +5 -3
- data/app/views/spree/admin/promotions/_promotion_rule.html.erb +5 -3
- data/app/views/spree/admin/promotions/_rules.html.erb +18 -14
- data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +5 -28
- data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +5 -27
- data/app/views/spree/admin/promotions/edit.html.erb +6 -4
- data/app/views/spree/admin/promotions/index.html.erb +1 -1
- data/app/views/spree/admin/promotions/rules/_option_value.html.erb +13 -0
- data/app/views/spree/admin/refund_reasons/index.html.erb +2 -2
- data/app/views/spree/admin/reimbursements/edit.html.erb +1 -1
- data/app/views/spree/admin/return_authorizations/_form.html.erb +2 -2
- data/app/views/spree/admin/search/users.rabl +1 -1
- data/app/views/spree/admin/shared/_order_summary.html.erb +6 -0
- data/app/views/spree/admin/shared/_tabs.html.erb +2 -2
- data/app/views/spree/admin/shared/_translations.html.erb +16 -46
- data/app/views/spree/admin/shared/named_types/_index.html.erb +2 -2
- data/app/views/spree/admin/stock_items/_stock_management.html.erb +0 -2
- data/app/views/spree/admin/stock_movements/_form.html.erb +0 -2
- data/app/views/spree/admin/stock_transfers/edit.html.erb +0 -3
- data/app/views/spree/admin/stock_transfers/receive.html.erb +0 -2
- data/app/views/spree/admin/stock_transfers/show.html.erb +1 -1
- data/app/views/spree/admin/taxons/index.html.erb +0 -1
- data/app/views/spree/admin/users/_addresses_form.html.erb +4 -4
- data/app/views/spree/layouts/admin.html.erb +11 -9
- data/config/routes.rb +5 -0
- data/lib/spree/backend.rb +1 -2
- metadata +41 -139
- data/CHANGELOG.md +0 -1
- data/Gemfile +0 -6
- data/Rakefile +0 -15
- data/app/assets/javascripts/spree/backend/handlebar_extensions.js +0 -9
- data/app/assets/javascripts/spree/backend/promotions.js +0 -73
- data/app/assets/javascripts/spree/backend/stock_transfer.js.coffee +0 -196
- data/app/views/spree/admin/products/_autocomplete.js.erb +0 -14
- data/app/views/spree/admin/products/_sortable.html +0 -7
- data/app/views/spree/admin/stock_items/_stock_location_stock_item_template.html.erb +0 -21
- data/app/views/spree/admin/stock_transfers/_transfer_item_template.html.erb +0 -54
- data/app/views/spree/admin/variants/_autocomplete.js.erb +0 -25
- data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +0 -69
- data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +0 -53
- data/app/views/spree/admin/variants/_split.js.erb +0 -29
- data/script/rails +0 -9
- data/solidus_backend.gemspec +0 -30
- data/spec/controllers/spree/admin/base_controller_spec.rb +0 -24
- data/spec/controllers/spree/admin/cancellations_controller_spec.rb +0 -77
- data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -234
- data/spec/controllers/spree/admin/general_settings_controller_spec.rb +0 -41
- data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
- data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -80
- data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -472
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -49
- data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -175
- data/spec/controllers/spree/admin/products_controller_spec.rb +0 -45
- data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -21
- data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +0 -18
- data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -21
- data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -122
- data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -32
- data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -75
- data/spec/controllers/spree/admin/reports_controller_spec.rb +0 -134
- data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -166
- data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -226
- data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -27
- data/spec/controllers/spree/admin/root_controller_spec.rb +0 -41
- data/spec/controllers/spree/admin/search_controller_spec.rb +0 -104
- data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -14
- data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -50
- data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -41
- data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +0 -331
- data/spec/controllers/spree/admin/store_credits_controller_spec.rb +0 -309
- data/spec/controllers/spree/admin/users_controller_spec.rb +0 -236
- data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -32
- data/spec/features/admin/configuration/analytics_tracker_spec.rb +0 -54
- data/spec/features/admin/configuration/countries_spec.rb +0 -22
- data/spec/features/admin/configuration/general_settings_spec.rb +0 -45
- data/spec/features/admin/configuration/payment_methods_spec.rb +0 -125
- data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -64
- data/spec/features/admin/configuration/states_spec.rb +0 -64
- data/spec/features/admin/configuration/stock_locations_spec.rb +0 -50
- data/spec/features/admin/configuration/tax_categories_spec.rb +0 -56
- data/spec/features/admin/configuration/tax_rates_spec.rb +0 -30
- data/spec/features/admin/configuration/taxonomies_spec.rb +0 -52
- data/spec/features/admin/configuration/zones_spec.rb +0 -39
- data/spec/features/admin/homepage_spec.rb +0 -78
- data/spec/features/admin/locale_spec.rb +0 -30
- data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -53
- data/spec/features/admin/orders/adjustments_spec.rb +0 -126
- data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -48
- data/spec/features/admin/orders/cancelling_inventory_spec.rb +0 -48
- data/spec/features/admin/orders/customer_details_spec.rb +0 -163
- data/spec/features/admin/orders/line_items_spec.rb +0 -50
- data/spec/features/admin/orders/listing_spec.rb +0 -130
- data/spec/features/admin/orders/log_entries_spec.rb +0 -55
- data/spec/features/admin/orders/new_order_spec.rb +0 -197
- data/spec/features/admin/orders/order_details_spec.rb +0 -533
- data/spec/features/admin/orders/payments_spec.rb +0 -228
- data/spec/features/admin/orders/risk_analysis_spec.rb +0 -47
- data/spec/features/admin/orders/shipments_spec.rb +0 -65
- data/spec/features/admin/payments/store_credits_spec.rb +0 -21
- data/spec/features/admin/products/edit/images_spec.rb +0 -87
- data/spec/features/admin/products/edit/products_spec.rb +0 -66
- data/spec/features/admin/products/edit/taxons_spec.rb +0 -56
- data/spec/features/admin/products/edit/variants_spec.rb +0 -61
- data/spec/features/admin/products/option_types_spec.rb +0 -114
- data/spec/features/admin/products/products_spec.rb +0 -392
- data/spec/features/admin/products/properties_spec.rb +0 -139
- data/spec/features/admin/products/prototypes_spec.rb +0 -110
- data/spec/features/admin/products/stock_management_spec.rb +0 -82
- data/spec/features/admin/products/variant_spec.rb +0 -51
- data/spec/features/admin/promotion_adjustments_spec.rb +0 -220
- data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -69
- data/spec/features/admin/promotions/user_rule_spec.rb +0 -25
- data/spec/features/admin/reports_spec.rb +0 -61
- data/spec/features/admin/stock_transfer_spec.rb +0 -86
- data/spec/features/admin/store_credits_spec.rb +0 -82
- data/spec/features/admin/taxons_spec.rb +0 -31
- data/spec/features/admin/users_spec.rb +0 -270
- data/spec/helpers/admin/base_helper_spec.rb +0 -24
- data/spec/helpers/admin/navigation_helper_spec.rb +0 -73
- data/spec/helpers/admin/reimbursements_helper_spec.rb +0 -34
- data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -29
- data/spec/helpers/admin/store_credit_events_helper_spec.rb +0 -95
- data/spec/helpers/promotion_rules_helper_spec.rb +0 -12
- data/spec/spec_helper.rb +0 -108
- data/spec/support/appear_before_matcher.rb +0 -8
- data/spec/support/ror_ringer.jpeg +0 -0
- data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
- data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
- data/vendor/assets/javascripts/handlebars.js +0 -2746
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31c0e6ee035ec9c8679843792c20cf6ccffbd137
|
4
|
+
data.tar.gz: a9f07294542aaaceea52e73fbafd7ff7b011421a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f3b42161d63c0439952e919e1588864b45cff766e70a4a94f2b6ee32a5dcdb7ad252d869a59d3ab02cd47ae36614c9552a0b199ffb4f1d0827913e7c9099620
|
7
|
+
data.tar.gz: 35aa2571b81598639e3e0ab1694a7991351f45ba29f781185cca9c300067b55f918c038e3c3db238a8807266f17dbe88af955b7b18f5f7620f0af0e050bd07a0
|
@@ -1,5 +1,7 @@
|
|
1
|
+
//= require handlebars
|
1
2
|
//= require jquery
|
2
3
|
//= require jquery_ujs
|
4
|
+
//= require jquery-migrate-1.0.0
|
3
5
|
//= require jquery-ui/datepicker
|
4
6
|
//= require jquery-ui/sortable
|
5
7
|
//= require jquery-ui/autocomplete
|
@@ -15,5 +17,6 @@
|
|
15
17
|
//= require spree
|
16
18
|
//= require ./backend/backbone-overrides
|
17
19
|
//= require spree/backend/spree-select2
|
20
|
+
//= require_tree ./backend/templates
|
18
21
|
//= require_tree .
|
19
22
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
//= require_self
|
2
|
-
//= require spree/backend/
|
2
|
+
//= require spree/backend/handlebars_extensions
|
3
3
|
//= require spree/backend/variant_autocomplete
|
4
4
|
//= require spree/backend/taxon_autocomplete
|
5
5
|
//= require spree/backend/option_type_autocomplete
|
6
6
|
//= require spree/backend/user_picker
|
7
7
|
//= require spree/backend/product_picker
|
8
|
+
//= require spree/backend/option_value_picker
|
8
9
|
//= require spree/backend/taxons
|
9
10
|
|
10
11
|
/**
|
@@ -34,9 +35,6 @@ jQuery(function($) {
|
|
34
35
|
$('#powerTip').removeClass($(this).data('action'));
|
35
36
|
})
|
36
37
|
|
37
|
-
// Make flash messages dissapear
|
38
|
-
setTimeout('$(".flash").fadeOut()', 5000);
|
39
|
-
|
40
38
|
// Highlight hovered table column
|
41
39
|
$('table tbody tr td.actions').find('a, button').hover(function(){
|
42
40
|
var tr = $(this).closest('tr');
|
@@ -58,16 +56,6 @@ jQuery(function($) {
|
|
58
56
|
|
59
57
|
$.fn.visible = function(cond) { this[cond ? 'show' : 'hide' ]() };
|
60
58
|
|
61
|
-
show_flash = function(type, message) {
|
62
|
-
var flash_div = $('.flash.' + type);
|
63
|
-
if (flash_div.length == 0) {
|
64
|
-
flash_div = $('<div class="flash ' + type + '" />');
|
65
|
-
$('#wrapper').prepend(flash_div);
|
66
|
-
}
|
67
|
-
flash_div.html(message).show().delay(5000).fadeOut(500);
|
68
|
-
}
|
69
|
-
|
70
|
-
|
71
59
|
// Apply to individual radio button that makes another element visible when checked
|
72
60
|
$.fn.radioControlsVisibilityOfElement = function(dependentElementSelector){
|
73
61
|
if(!this.get(0)){ return }
|
@@ -124,8 +112,9 @@ $(document).ready(function(){
|
|
124
112
|
new_table_row.find("input, select").each(function () {
|
125
113
|
var el = $(this);
|
126
114
|
el.val("");
|
127
|
-
|
128
|
-
el.prop("
|
115
|
+
// Replace last occurrence of a number
|
116
|
+
el.prop("id", el.prop("id").replace(/\d+(?=[^\d]*$)/, new_id))
|
117
|
+
el.prop("name", el.prop("name").replace(/\d+(?=[^\d]*$)/, new_id))
|
129
118
|
})
|
130
119
|
// When cloning a new row, set the href of all icons to be an empty "#"
|
131
120
|
// This is so that clicking on them does not perform the actions for the
|
@@ -216,18 +205,21 @@ $(document).ready(function(){
|
|
216
205
|
placeholder: 'ui-sortable-placeholder',
|
217
206
|
update: function(event, ui) {
|
218
207
|
$("#progress").show();
|
208
|
+
tableEl = $(ui.item).closest("table.sortable")
|
219
209
|
positions = {};
|
220
|
-
$.each(
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
210
|
+
$.each(tableEl.find('tbody tr'), function(position, obj){
|
211
|
+
idAttr = $(obj).prop('id');
|
212
|
+
if (idAttr) {
|
213
|
+
objId = idAttr.split('_').slice(-1);
|
214
|
+
if (!isNaN(objId)) {
|
215
|
+
positions['positions['+objId+']'] = position;
|
216
|
+
}
|
225
217
|
}
|
226
218
|
});
|
227
219
|
Spree.ajax({
|
228
220
|
type: 'POST',
|
229
221
|
dataType: 'script',
|
230
|
-
url:
|
222
|
+
url: tableEl.data("sortable-link"),
|
231
223
|
data: positions,
|
232
224
|
success: function(data){ $("#progress").hide(); }
|
233
225
|
});
|
@@ -239,9 +231,10 @@ $(document).ready(function(){
|
|
239
231
|
ui.placeholder.html("<td colspan='"+(td_count-1)+"'></td><td class='actions'></td>")
|
240
232
|
},
|
241
233
|
stop: function (event, ui) {
|
234
|
+
tableEl = $(ui.item).closest("table.sortable")
|
242
235
|
// Fix odd/even classes after reorder
|
243
|
-
|
244
|
-
|
236
|
+
tableEl.find("tr:even").removeClass("odd even").addClass("even");
|
237
|
+
tableEl.find("tr:odd").removeClass("odd even").addClass("odd");
|
245
238
|
}
|
246
239
|
|
247
240
|
});
|
@@ -1,8 +1,6 @@
|
|
1
1
|
//= require_self
|
2
2
|
$(document).ready(function() {
|
3
|
-
|
4
|
-
window.customerTemplate = Handlebars.compile($('#customer_autocomplete_template').text());
|
5
|
-
}
|
3
|
+
window.customerTemplate = HandlebarsTemplates['orders/customer_details/autocomplete'];
|
6
4
|
|
7
5
|
formatCustomerResult = function(customer) {
|
8
6
|
return customerTemplate({
|
@@ -26,7 +24,7 @@ $(document).ready(function() {
|
|
26
24
|
}
|
27
25
|
},
|
28
26
|
results: function(data, page) {
|
29
|
-
return { results: data
|
27
|
+
return { results: data }
|
30
28
|
}
|
31
29
|
},
|
32
30
|
dropdownCssClass: 'customer_search',
|
@@ -54,7 +52,7 @@ $(document).ready(function() {
|
|
54
52
|
});
|
55
53
|
});
|
56
54
|
}
|
57
|
-
return
|
55
|
+
return customer.email;
|
58
56
|
}
|
59
57
|
})
|
60
58
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
showTime = 5000
|
2
|
+
fadeOutTime = 500
|
3
|
+
|
4
|
+
$ ->
|
5
|
+
# Make flash messages dissapear
|
6
|
+
# We only want to target the flash messages which are initially on the page.
|
7
|
+
# Otherwise we risk hiding messages added by show_flash
|
8
|
+
$initialFlash = $(".flash")
|
9
|
+
setTimeout (->
|
10
|
+
$initialFlash.fadeOut(fadeOutTime)
|
11
|
+
), showTime
|
12
|
+
|
13
|
+
window.show_flash = (type, message) ->
|
14
|
+
$flashWrapper = $(".js-flash-wrapper")
|
15
|
+
flash_div = $("<div class=\"flash #{type}\" />")
|
16
|
+
$flashWrapper.prepend(flash_div)
|
17
|
+
flash_div.html(message).show().delay(showTime).fadeOut(fadeOutTime)
|
@@ -1,10 +1,6 @@
|
|
1
1
|
$(document).ready(function () {
|
2
2
|
'use strict';
|
3
3
|
|
4
|
-
function formatOptionType(option_type) {
|
5
|
-
return Select2.util.escapeMarkup(option_type.presentation + ' (' + option_type.name + ')');
|
6
|
-
}
|
7
|
-
|
8
4
|
if ($('#product_option_type_ids').length > 0) {
|
9
5
|
$('#product_option_type_ids').select2({
|
10
6
|
placeholder: Spree.translations.option_type_placeholder,
|
@@ -35,8 +31,12 @@ $(document).ready(function () {
|
|
35
31
|
};
|
36
32
|
}
|
37
33
|
},
|
38
|
-
formatResult:
|
39
|
-
|
34
|
+
formatResult: function (option_type) {
|
35
|
+
return option_type.presentation + ' (' + option_type.name + ')';
|
36
|
+
},
|
37
|
+
formatSelection: function (option_type) {
|
38
|
+
return option_type.presentation + ' (' + option_type.name + ')';
|
39
|
+
}
|
40
40
|
});
|
41
41
|
}
|
42
42
|
});
|
@@ -0,0 +1,43 @@
|
|
1
|
+
$.fn.optionValueAutocomplete = function (options) {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
// Default options
|
5
|
+
options = options || {}
|
6
|
+
var multiple = typeof(options['multiple']) !== 'undefined' ? options['multiple'] : true;
|
7
|
+
var productSelect = options['productSelect'];
|
8
|
+
|
9
|
+
this.select2({
|
10
|
+
minimumInputLength: 3,
|
11
|
+
multiple: multiple,
|
12
|
+
initSelection: function (element, callback) {
|
13
|
+
$.get(Spree.routes.option_value_search, {
|
14
|
+
ids: element.val().split(',')
|
15
|
+
}, function (data) {
|
16
|
+
callback(multiple ? data : data[0]);
|
17
|
+
});
|
18
|
+
},
|
19
|
+
ajax: {
|
20
|
+
url: Spree.routes.option_value_search,
|
21
|
+
datatype: 'json',
|
22
|
+
data: function (term, page) {
|
23
|
+
var productId = typeof(productSelect) !== 'undefined' ? $(productSelect).select2('val') : null;
|
24
|
+
return {
|
25
|
+
q: {
|
26
|
+
name_cont: term,
|
27
|
+
variants_product_id_eq: productId
|
28
|
+
},
|
29
|
+
token: Spree.api_key
|
30
|
+
};
|
31
|
+
},
|
32
|
+
results: function (data, page) {
|
33
|
+
return { results: data };
|
34
|
+
}
|
35
|
+
},
|
36
|
+
formatResult: function (option_value) {
|
37
|
+
return option_value.name;
|
38
|
+
},
|
39
|
+
formatSelection: function (option_value) {
|
40
|
+
return option_value.name;
|
41
|
+
}
|
42
|
+
});
|
43
|
+
};
|
@@ -5,10 +5,6 @@ $.fn.productAutocomplete = function (options) {
|
|
5
5
|
options = options || {}
|
6
6
|
var multiple = typeof(options['multiple']) !== 'undefined' ? options['multiple'] : true
|
7
7
|
|
8
|
-
function formatProduct(product) {
|
9
|
-
return Select2.util.escapeMarkup(product.name);
|
10
|
-
}
|
11
|
-
|
12
8
|
this.select2({
|
13
9
|
minimumInputLength: 3,
|
14
10
|
multiple: multiple,
|
@@ -31,18 +27,24 @@ $.fn.productAutocomplete = function (options) {
|
|
31
27
|
sku_cont: term
|
32
28
|
},
|
33
29
|
m: 'OR',
|
34
|
-
token: Spree.api_key
|
30
|
+
token: Spree.api_key,
|
31
|
+
page: page
|
35
32
|
};
|
36
33
|
},
|
37
34
|
results: function (data, page) {
|
38
35
|
var products = data.products ? data.products : [];
|
39
36
|
return {
|
40
|
-
results: products
|
37
|
+
results: products,
|
38
|
+
more: (data.current_page * data.per_page) < data.total_count
|
41
39
|
};
|
42
40
|
}
|
43
41
|
},
|
44
|
-
formatResult:
|
45
|
-
|
42
|
+
formatResult: function (product) {
|
43
|
+
return product.name;
|
44
|
+
},
|
45
|
+
formatSelection: function (product) {
|
46
|
+
return product.name;
|
47
|
+
}
|
46
48
|
});
|
47
49
|
};
|
48
50
|
|
@@ -0,0 +1,101 @@
|
|
1
|
+
window.initProductActions = ->
|
2
|
+
# Add classes on promotion items for design
|
3
|
+
$(document).on 'mouseover', 'a.delete', (event) ->
|
4
|
+
$(this).parent().addClass 'action-remove'
|
5
|
+
|
6
|
+
$(document).on 'mouseout', 'a.delete', (event) ->
|
7
|
+
$(this).parent().removeClass 'action-remove'
|
8
|
+
|
9
|
+
$('#promotion-filters').find('.variant_autocomplete').variantAutocomplete()
|
10
|
+
|
11
|
+
$('.calculator-fields').each ->
|
12
|
+
$fields_container = $(this)
|
13
|
+
$type_select = $fields_container.find('.type-select')
|
14
|
+
$settings = $fields_container.find('.settings')
|
15
|
+
$warning = $fields_container.find('.warning')
|
16
|
+
originalType = $type_select.val()
|
17
|
+
$warning.hide()
|
18
|
+
$type_select.change ->
|
19
|
+
if $(this).val() == originalType
|
20
|
+
$warning.hide()
|
21
|
+
$settings.show()
|
22
|
+
$settings.find('input').removeProp 'disabled'
|
23
|
+
else
|
24
|
+
$warning.show()
|
25
|
+
$settings.hide()
|
26
|
+
$settings.find('input').prop 'disabled', 'disabled'
|
27
|
+
|
28
|
+
#
|
29
|
+
# Option Value Promo Rule
|
30
|
+
#
|
31
|
+
if $('.promo-rule-option-values').length
|
32
|
+
optionValueSelectNameTemplate = HandlebarsTemplates['promotions/rules/option_values_select']
|
33
|
+
optionValueTemplate = HandlebarsTemplates['promotions/rules/option_values']
|
34
|
+
|
35
|
+
addOptionValue = (product, values) ->
|
36
|
+
paramPrefix = $('.promo-rule-option-values').find('.param-prefix').data('param-prefix')
|
37
|
+
$('.js-promo-rule-option-values').append optionValueTemplate(
|
38
|
+
productSelect: value: product
|
39
|
+
optionValuesSelect: value: values
|
40
|
+
paramPrefix: paramPrefix)
|
41
|
+
optionValue = $('.js-promo-rule-option-values .promo-rule-option-value').last()
|
42
|
+
optionValue.find('.js-promo-rule-option-value-product-select').productAutocomplete multiple: false
|
43
|
+
optionValue.find('.js-promo-rule-option-value-option-values-select').optionValueAutocomplete productSelect: '.js-promo-rule-option-value-product-select'
|
44
|
+
if product == null
|
45
|
+
optionValue.find('.js-promo-rule-option-value-option-values-select').prop 'disabled', true
|
46
|
+
return
|
47
|
+
|
48
|
+
originalOptionValues = $('.js-original-promo-rule-option-values').data('original-option-values')
|
49
|
+
if !$('.js-original-promo-rule-option-values').data('loaded')
|
50
|
+
if $.isEmptyObject(originalOptionValues)
|
51
|
+
addOptionValue null, null
|
52
|
+
else
|
53
|
+
$.each originalOptionValues, addOptionValue
|
54
|
+
$('.js-original-promo-rule-option-values').data 'loaded', true
|
55
|
+
$(document).on 'click', '.js-add-promo-rule-option-value', (event) ->
|
56
|
+
event.preventDefault()
|
57
|
+
addOptionValue null, null
|
58
|
+
return
|
59
|
+
$(document).on 'click', '.js-remove-promo-rule-option-value', ->
|
60
|
+
$(this).parents('.promo-rule-option-value').remove()
|
61
|
+
return
|
62
|
+
$(document).on 'change', '.js-promo-rule-option-value-product-select', ->
|
63
|
+
optionValueSelect = $(this).parents('.promo-rule-option-value').find('input.js-promo-rule-option-value-option-values-select')
|
64
|
+
paramPrefix = $('.promo-rule-option-values').find('.param-prefix').data('param-prefix')
|
65
|
+
optionValueSelect.attr 'name', optionValueSelectNameTemplate(product_id: $(this).val(), param_prefix: paramPrefix).trim()
|
66
|
+
optionValueSelect.prop('disabled', $(this).val() == '').select2 'val', ''
|
67
|
+
return
|
68
|
+
|
69
|
+
#
|
70
|
+
# Tiered Calculator
|
71
|
+
#
|
72
|
+
if $('.js-tiers').length
|
73
|
+
calculatorName = $('.js-tiers').data('calculator')
|
74
|
+
tierFieldsTemplate = HandlebarsTemplates["promotions/calculators/fields/#{calculatorName}"]
|
75
|
+
originalTiers = $('.js-tiers').data('original-tiers')
|
76
|
+
formPrefix = $('.js-tiers').data('form-prefix')
|
77
|
+
|
78
|
+
tierInputName = (base) ->
|
79
|
+
"#{formPrefix}[calculator_attributes][preferred_tiers][#{base}]"
|
80
|
+
|
81
|
+
$.each originalTiers, (base, value) ->
|
82
|
+
$('.js-tiers').append tierFieldsTemplate
|
83
|
+
baseField:
|
84
|
+
value: base
|
85
|
+
valueField:
|
86
|
+
name: tierInputName(base)
|
87
|
+
value: value
|
88
|
+
|
89
|
+
$(document).on 'click', '.js-add-tier', (event) ->
|
90
|
+
event.preventDefault()
|
91
|
+
$('.js-tiers').append tierFieldsTemplate(valueField: name: null)
|
92
|
+
|
93
|
+
$(document).on 'click', '.js-remove-tier', (event) ->
|
94
|
+
event.preventDefault()
|
95
|
+
$(this).parents('.tier').remove()
|
96
|
+
|
97
|
+
$(document).on 'change', '.js-base-input', (event) ->
|
98
|
+
valueInput = $(this).parents('.tier').find('.js-value-input')
|
99
|
+
valueInput.attr 'name', tierInputName($(this).val())
|
100
|
+
|
101
|
+
$ initProductActions
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Spree.routes.checkouts_api = Spree.pathFor('api/checkouts')
|
2
2
|
Spree.routes.classifications_api = Spree.pathFor('api/classifications')
|
3
3
|
Spree.routes.clear_cache = Spree.pathFor('admin/general_settings/clear_cache')
|
4
|
+
Spree.routes.option_value_search = Spree.pathFor('api/option_values')
|
4
5
|
Spree.routes.option_type_search = Spree.pathFor('api/option_types')
|
5
6
|
Spree.routes.orders_api = Spree.pathFor('api/orders')
|
6
7
|
Spree.routes.product_search = Spree.pathFor('api/products')
|
@@ -25,7 +26,7 @@ Spree.routes.stock_items_api = function(stock_location_id) {
|
|
25
26
|
return Spree.pathFor('api/stock_locations/' + stock_location_id + '/stock_items')
|
26
27
|
}
|
27
28
|
|
28
|
-
Spree.routes.
|
29
|
+
Spree.routes.receive_stock_transfer_api = function(stockTransferNumber) {
|
29
30
|
return Spree.pathFor('api/stock_transfers/' + stockTransferNumber + '/receive')
|
30
31
|
}
|
31
32
|
|
@@ -218,7 +218,7 @@ startItemSplit = function(event){
|
|
218
218
|
});
|
219
219
|
|
220
220
|
var max_quantity = link.closest('tr').data('item-quantity');
|
221
|
-
var split_item_template =
|
221
|
+
var split_item_template = HandlebarsTemplates['variants/split'];
|
222
222
|
link.closest('tr').after(split_item_template({ variant: variant, shipments: shipments, max_quantity: max_quantity }));
|
223
223
|
$('a.cancel-split').click(cancelItemSplit);
|
224
224
|
$('a.save-split').click(completeItemSplit);
|
@@ -42,7 +42,7 @@ class IndexAddForms
|
|
42
42
|
stockLocationName = selectedStockLocationOption.text().trim()
|
43
43
|
selectedStockLocationOption.remove()
|
44
44
|
|
45
|
-
rowTemplate =
|
45
|
+
rowTemplate = HandlebarsTemplates['stock_items/stock_location_stock_item']
|
46
46
|
$("tr[data-variant-id='#{variantId}']:last").before(
|
47
47
|
rowTemplate
|
48
48
|
id: stockItem.id
|
@@ -17,5 +17,5 @@ jQuery ->
|
|
17
17
|
return { results: data.stock_items, more: more }
|
18
18
|
formatResult: (stock_item) ->
|
19
19
|
variantTemplate({ variant: stock_item.variant })
|
20
|
-
formatSelection: (stock_item
|
21
|
-
|
20
|
+
formatSelection: (stock_item) ->
|
21
|
+
"#{stock_item.variant.name} (#{stock_item.variant.options_text})"
|
@@ -77,7 +77,7 @@ class VariantForm
|
|
77
77
|
|
78
78
|
successHandler = (transferItem, isReceiving) =>
|
79
79
|
resetVariantAutocomplete()
|
80
|
-
rowTemplate =
|
80
|
+
rowTemplate = HandlebarsTemplates['stock_transfers/transfer_item']
|
81
81
|
templateAttributes =
|
82
82
|
id: transferItem.id
|
83
83
|
isReceiving: isReceiving
|