Skip to content

Instantly share code, notes, and snippets.

@vgrish
Created July 17, 2015 06:45
Show Gist options
  • Save vgrish/2a9d69afbf973811dd94 to your computer and use it in GitHub Desktop.
Save vgrish/2a9d69afbf973811dd94 to your computer and use it in GitHub Desktop.
совместный js для mscZone и mscDelline
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.Order.deliveryNotify = '#ms2_delivery_notify';;
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'],
_rdn = response.data['delivery_notify'];
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('');
if(_rdn) $(miniShop2.Order.deliveryNotify, miniShop2.Order.order).text(_rdn);
else $(miniShop2.Order.deliveryNotify, miniShop2.Order.order).text('');
return true;
}
}
};
msczone.initialize();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment