@alexsab-ru/scripts 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/form.js +13 -5
- package/package.json +1 -1
package/lib/form.js
CHANGED
|
@@ -85,6 +85,7 @@ const propsParams = {
|
|
|
85
85
|
confirmModalText: '',
|
|
86
86
|
verbose: false,
|
|
87
87
|
agreeSelector: "agree",
|
|
88
|
+
sendMailCookie: "SEND_MAIL",
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
export const connectForms = (url, props = propsParams) => {
|
|
@@ -162,6 +163,9 @@ async function submitForm(form){
|
|
|
162
163
|
reachGoal("form_submit");
|
|
163
164
|
|
|
164
165
|
let formData = new FormData(form);
|
|
166
|
+
if(formData.get('dealer')) {
|
|
167
|
+
props.sendMailCookie += "_" + formData.get('dealer');
|
|
168
|
+
}
|
|
165
169
|
if(getCookie('fta')) {
|
|
166
170
|
formData.append("fta", true);
|
|
167
171
|
}
|
|
@@ -243,7 +247,7 @@ async function submitForm(form){
|
|
|
243
247
|
return;
|
|
244
248
|
} else {
|
|
245
249
|
reachGoal("form_success", formDataObj);
|
|
246
|
-
setCookie(
|
|
250
|
+
setCookie(props.sendMailCookie, true, {'domain': window.location.hostname,'path':'/','expires':600});
|
|
247
251
|
// Вызов callback при успехе
|
|
248
252
|
if (props.callback && typeof props.callback === 'function') {
|
|
249
253
|
props.callback(data);
|
|
@@ -256,7 +260,7 @@ async function submitForm(form){
|
|
|
256
260
|
.catch((error) => {
|
|
257
261
|
reachGoal("form_error");
|
|
258
262
|
console.error("Ошибка отправки данных формы: " + error);
|
|
259
|
-
deleteCookie(
|
|
263
|
+
deleteCookie(props.sendMailCookie);
|
|
260
264
|
// Вызов callback_error при ошибке
|
|
261
265
|
if (props.callback_error && typeof props.callback_error === 'function') {
|
|
262
266
|
props.callback_error(data);
|
|
@@ -269,7 +273,11 @@ async function submitForm(form){
|
|
|
269
273
|
}
|
|
270
274
|
|
|
271
275
|
async function sendForm(form) {
|
|
272
|
-
|
|
276
|
+
let formData = new FormData(form);
|
|
277
|
+
if(formData.get('dealer')) {
|
|
278
|
+
props.sendMailCookie += "_" + formData.get('dealer');
|
|
279
|
+
}
|
|
280
|
+
if (getCookie(props.sendMailCookie)) {
|
|
273
281
|
const confirmModal = document.getElementById('confirm-modal');
|
|
274
282
|
if (confirmModal) {
|
|
275
283
|
confirmModal.querySelector('p').innerHTML = props.confirmModalText || '<span style="color: tomato; font-weight: bold">ПЕРЕДАЙ ТЕКСТ В ОБЪЕКТЕ <br><pre style="color: black; font-weight: 400">props = {confirmModalText: <i>"text"</i>}</pre></span>';
|
|
@@ -285,7 +293,7 @@ async function sendForm(form) {
|
|
|
285
293
|
// Закрываем модальное окно
|
|
286
294
|
confirmModal.classList.add("hidden");
|
|
287
295
|
// Удаляем куку
|
|
288
|
-
deleteCookie(
|
|
296
|
+
deleteCookie(props.sendMailCookie);
|
|
289
297
|
// Повторно отправляем форму
|
|
290
298
|
await submitForm(form);
|
|
291
299
|
return;
|
|
@@ -316,7 +324,7 @@ async function sendForm(form) {
|
|
|
316
324
|
}
|
|
317
325
|
|
|
318
326
|
// Отправка всех форм
|
|
319
|
-
document.querySelectorAll("form:not(
|
|
327
|
+
document.querySelectorAll("form:not(.vue-form)").forEach((form) => {
|
|
320
328
|
form.addEventListener('submit', async (event) => {
|
|
321
329
|
event.preventDefault();
|
|
322
330
|
await sendForm(form);
|