Skip to content

Instantly share code, notes, and snippets.

@vgrish
Last active August 29, 2015 14:24
Show Gist options
  • Save vgrish/6843553973a74fbf56e1 to your computer and use it in GitHub Desktop.
Save vgrish/6843553973a74fbf56e1 to your computer and use it in GitHub Desktop.
кастомный js для прочего города к mscZone
var msczone = {
par: {}
,setup: function() {
msczone.par.spot = '#msczone-spot';
msczone.par.sity = '#msczone-city';
}
,initialize: function() {
msczone.setup();
// Forms listeners
$(document).on('change', 'select[name="options-spot"]', function() {
msczone.spot.change(this);
var $this = $('select[name="options-spot"] option:selected');
var name = $this.data('name');
if ($.inArray(name, ['Прочие населенные пункты']) > -1) {
$(msczone.par.sity).show();
$(msczone.par.sity).find('input').val('');
}
else {
$(msczone.par.sity).hide();
}
});
$(document).on('change', '.delivery input[name="delivery"]', function() {
var delivery_id = $(this).val();
if(delivery_id == msczoneConfig.delivery_id) {
msczone.spot.show();
}
else {
msczone.spot.hide();
}
return false;
});
$(document).ready(function() {
var $this = $('select[name="options-spot"] option:selected');
var val = $this.val();
var option = $this.find('option[value="'+val+'"]');
var name = option.data('name');
msczone.Send.spot('city',name);
msczone.Callbacks.showRequired();
msczone.Callbacks.add();
msczone.Callbacks.getcost();
});
}
,spot: {
change: function(self) {
var $this = $(self);
var val = $this.val();
var option = $this.find('option[value="'+val+'"]');
var name = option.data('name');
if (val == 0) name = '';
msczone.Send.spot('city',name);
},
show: function() {
$(msczone.par.sity).hide();
$(msczone.par.spot).show();
},
hide: function() {
$(msczone.par.spot).hide();
$(msczone.par.sity).show();
}
}
};
msczone.Send = {
spot: function(key, val) {
if(typeof miniShop2 == 'undefined'){return false;}
$('#'+key).val(val);
var data = {
key: key,
value: val
};
data[miniShop2.actionName] = 'order/add';
miniShop2.send(data, miniShop2.Order.callbacks.add, miniShop2.Callbacks.Order.add);
}
};
msczone.Callbacks = {
showRequired: function() {
if(typeof miniShop2 == 'undefined'){return false;}
miniShop2.Callbacks.Order.submit.response.error = function(response) {
if(response.data) {
var data = response.data
$.each(data, function(key, value) {
if(value == 'city') {
$(msczone.par.spot).addClass('required');
}
});
}
};
}
,add: function() {
if(typeof miniShop2 == 'undefined'){return false;}
miniShop2.Callbacks.Order.add.response.success = function(response) {
if (response.data.city == 'undefined') {return false;}
miniShop2.Order.getcost();
}
}
,getcost: function() {
if(typeof miniShop2 == 'undefined'){return false;}
miniShop2.Order.deliveryCost = '#ms2_delivery_cost'
,miniShop2.Order.deliveryError = '#ms2_delivery_error'
,miniShop2.Order.spotDescription = '#ms2_spot_description'
,miniShop2.Order.spotAddress = '#ms2_spot_address';
miniShop2.Callbacks.Order.getcost.response.success = function(response) {
var rdc = response.data['delivery_cost'],
rdn = response.data['delivery_error'],
rsd = response.data['spot_description'],
rsa = response.data['spot_address'];
if(rdc) $(miniShop2.Order.deliveryCost, miniShop2.Order.order).text(miniShop2.Utils.formatPrice(rdc));
else $(miniShop2.Order.deliveryCost, miniShop2.Order.order).text('0');
if(rdn) $(miniShop2.Order.deliveryError, miniShop2.Order.order).html(rdn);
else $(miniShop2.Order.deliveryError, miniShop2.Order.order).text('');
if(rsd) $(miniShop2.Order.spotDescription, miniShop2.Order.order).html(rsd);
else $(miniShop2.Order.spotDescription, miniShop2.Order.order).text('');
if(rsa) $(miniShop2.Order.spotAddress, miniShop2.Order.order).html(rsa);
else $(miniShop2.Order.spotAddress, miniShop2.Order.order).text('');
}
miniShop2.Callbacks.Order.getcost.response.error = function(response) {
}
}
};
msczone.initialize();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment