Last active
August 29, 2015 14:24
-
-
Save vgrish/6843553973a74fbf56e1 to your computer and use it in GitHub Desktop.
кастомный js для прочего города к mscZone
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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