Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit 9dfe596

Browse files
committed
fix worldwide parameter missing from model
- passes worldwide variable to the buyAddresses view, so it can be used in the template.
1 parent ae48138 commit 9dfe596

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

js/views/buyAddressesVw.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,24 @@ module.exports = Backbone.View.extend({
1717
initialize: function(options) {
1818
"use strict";
1919
this.userModel = options.userModel;
20+
this.worldwide = options.worldwide;
21+
this.shippingRegions = options.shippingRegions || [];
2022
//don't render on init, let parent trigger the render
21-
//add list of countries the vendor ships to
22-
this.model.set('shipsToList',
23-
localize.localizeShippingRegions(
24-
this.model.get('vendor_offer').listing.shipping.shipping_regions || []
25-
).join(", ")
26-
);
2723
},
2824

2925
render: function(selected){
3026
this.model.set('user', this.userModel.toJSON());
3127
var self = this;
32-
var modelData = this.model.toJSON();
33-
modelData.selected = selected;
3428
loadTemplate('./js/templates/buyAddresses.html', function(loadedTemplate) {
35-
self.$el.html(loadedTemplate(modelData));
29+
self.$el.html(
30+
loadedTemplate(
31+
__.extend({}, self.model.toJSON(), {
32+
worldwide: self.worldwide,
33+
selected: selected,
34+
shipsToList: localize.localizeShippingRegions(self.shippingRegions),
35+
})
36+
)
37+
);
3638
//this does not add it to the DOM, that is done by the parent view
3739
self.$('.js-buyWizardAddressRadio').eq(selected).prop('checked', true).trigger('click');
3840
//self.setAddress(selected);

js/views/buyWizardVw.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ module.exports = baseVw.extend({
6969
/* expected options are:
7070
userModel: this is set by main.js, then by a call to the settings API.
7171
socketView: this is a reference to the socketView
72+
worldwide: does this ship worldwide
73+
shippingRegions: countries this item ships to
7274
*/
7375
this.userModel = this.options.userModel;
76+
this.worldwide = this.options.worldwide;
77+
this.shippingRegions = this.options.shippingRegions;
7478
this.hideMap = true;
7579
this.orderID = "";
7680
this.model.set('selectedModerator', "");
@@ -172,7 +176,7 @@ module.exports = baseVw.extend({
172176
self.registerChild(self.buyDetailsView);
173177

174178
self.buyAddressesView && self.buyAddressesView.remove();
175-
self.buyAddressesView = new buyAddressesVw({model: self.model, userModel: self.userModel});
179+
self.buyAddressesView = new buyAddressesVw({model: self.model, userModel: self.userModel, worldwide: self.worldwide, shippingRegions: self.shippingRegions});
176180
self.registerChild(self.buyAddressesView);
177181

178182
self.listenTo(self.buyAddressesView, 'setAddress', self.addressSelected);

js/views/itemVw.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ module.exports = baseVw.extend({
6262
reset: true
6363
});
6464

65+
this.shippingRegions = this.model.get('vendor_offer').listing.shipping.shipping_regions;
66+
this.shippingOrigin = this.model.get('vendor_offer').listing.shipping.shipping_origin;
67+
this.worldwide = this.shippingRegions.length === 1 && this.shippingRegions[0] === 'ALL';
68+
6569
this.render();
6670
},
6771

@@ -91,8 +95,6 @@ module.exports = baseVw.extend({
9195
//el must be passed in from the parent view
9296
loadTemplate('./js/templates/item.html', function(loadedTemplate) {
9397
loadTemplate('./js/templates/ratingStars.html', function(starsTemplate) {
94-
var shippingRegions = self.model.get('vendor_offer').listing.shipping.shipping_regions,
95-
shippingOrigin = self.model.get('vendor_offer').listing.shipping.shipping_origin;
9698

9799
self.$el.html(
98100
loadedTemplate(
@@ -103,9 +105,9 @@ module.exports = baseVw.extend({
103105
activeTab: self.activeTab,
104106
fetchingRatings: self.fetchingRatings,
105107
userCountry: polyglot.t(`countries.${self.userModel.get('country')}.name`),
106-
shippingRegionsDisplay: localize.localizeShippingRegions(shippingRegions),
107-
worldwide: shippingRegions.length === 1 && shippingRegions[0] === 'ALL',
108-
displayShippingOrigin: shippingOrigin && polyglot.t(`countries.${shippingOrigin}.name`)
108+
shippingRegionsDisplay: localize.localizeShippingRegions(self.shippingRegions),
109+
worldwide: self.worldwide,
110+
displayShippingOrigin: self.shippingOrigin && polyglot.t(`countries.${self.shippingOrigin}.name`)
109111
})
110112
)
111113
);
@@ -176,7 +178,7 @@ module.exports = baseVw.extend({
176178
"use strict";
177179
var self = this;
178180
this.buyWizardView && this.buyWizardView.remove();
179-
this.buyWizardView = new buyWizardVw({model:this.model, userModel: this.options.userModel});
181+
this.buyWizardView = new buyWizardVw({model:this.model, userModel: this.options.userModel, worldwide: this.worldwide, shippingRegions: this.shippingRegions});
180182
this.registerChild(this.buyWizardView);
181183
$('#modalHolder').html(this.buyWizardView.el).fadeIn(300); //add to DOM first, or accordion will have zero width when initialized
182184
this.buyWizardView.render();

0 commit comments

Comments
 (0)