thisClassMod = thisActiveSubmitter.attr 'name'
formData = new FormData()
$.fn.serializefiles = (formData)->
obj = $ this
$.each $(obj).find("input[type='file']"), (i, tag) ->
$.each $(tag)[0].files, (i, file) ->
console.log tag.name, file
formData.append tag.name, file
return formData
params = $(obj).serializeArray();
submitName = {
name: thisClassMod
value: thisClassMod
}
params.push submitName
console.log params
$.each params, (i, val) ->
console.log val.name, val.value
formData.append val.name, val.value
return formData
return formData;
formData = thisMod.serializefiles(formData)
var swipeStart = 0,
swipeEnd = 0,
imagePosLeft = 0;
var startCoordX = 0, startCoordY = 0, currentCoordX = 0, currentCoordY = 0, translateX = 0, translateY = 0;
var scale = 2.5,
translate = { x: 0, y: 0 },
startCoords,
currentCoords;
console.log(image);
var updateImgTransform = function (withScale) {
var translateX = currentCoords.x - startCoords.x + translate.x,
translateY = currentCoords.y - startCoords.y + translate.y;
if (withScale) {
image.css({"transform":"scale(" + scale + ") translate(" + translateX / scale + "px, " + translateY / scale + "px)"});
} else {
image.css({"transform":"translate(" + translateX + "px, " + translateY + "px)"});
}
};
var ontouchstart = function (e) {
startCoords = currentCoords = {
x: e.originalEvent.touches[0].clientX,
y: e.originalEvent.touches[0].clientY
};
updateImgTransform(true);
image.on("touchmove", ontouchmove);
image.on("touchend", ontouchend);
};
var ontouchmove = function (e) {
image.addClass('looped');
currentCoords = {
x: e.originalEvent.touches[0].clientX,
y: e.originalEvent.touches[0].clientY
};
updateImgTransform(true);
};
var ontouchend = function (e) {
updateImgTransform(true);
translate.x += currentCoords.x - startCoords.x;
translate.y += currentCoords.y - startCoords.y;
image.off("touchmove", ontouchmove);
image.off("touchend", ontouchend);
};
image.on("touchstart", ontouchstart);
var ajaxFastForms = function (){
var moduleName = 'fastform';
var fastform = $('.'+moduleName+':not(.'+moduleName+'--calltracker)');
fastform.submit(function(e){
e.preventDefault();
var thisForm = $(this),
thisSubmitter = thisForm.find('.'+moduleName+'__submit'),
thisField = thisForm.find('.'+moduleName+'__input'),
thisFieldValue = thisField.val(),
thisFieldSpamValue = thisForm.find('.'+moduleName+'__spamkiller').val();
if(thisFieldSpamValue === ''){
//если скрытое поле пусто
if(thisFieldValue != ''){ //если форма воода заполнена
var regNumber = new RegExp("^[0-9]{11}");
var regMail = new RegExp("^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$");
if( regMail.test(thisFieldValue) || regNumber.test(thisFieldValue)){
//если проходит тесты паттернов
var url = (typeof thisForm.attr("action") == 'undefined') ? "[[~[[*id]]]]" : thisForm.attr("action"); //берём урлу страницы, если таковая есть в action
//формируем запрос к серверу
$.ajax({
url: url,
type: 'POST',
data: thisForm.serialize(),
success: function(response){
notie.alert(1,'Форма успешно отправлена. Наши менеджеры свяжутся с вами в ближайшее время', 4);
}
}).fail(function(error){
console.log(error);
notie.alert(3, 'Возникла ошибка на сервере<br> Очистите кэш браузера, перезагрузите страницу и попробуйте снова', 5);
});
}else{//если не проходит тесты паттернов
notie.alert(2,'В форме содержатся ошибки.Проверьте правильность заполнения полей:<br> вводите номер только цифрами, например 89991112233',5);
}
}else{
//если Форма ввода не заполнена
notie.alert(2,'Форма ввода не заполнена',2.5);
};
}else{
//если скрытое поле заполнено
notie.alert(3,'Валидация на СПАМ не пройдена.<br>Перезагрузите страницу и попробуйте снова',2.5);
};
});
}
module.exports = ajaxFastForms;