@alexsab-ru/scripts 0.3.1 → 0.4.1
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/README.md +40 -0
- package/index.js +1 -0
- package/lib/calltouch.js +60 -0
- package/lib/form.js +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
common libs for websites
|
|
4
4
|
|
|
5
|
+
* [Installation](#Installation)
|
|
6
|
+
* [Analytics module](#analytics-module)
|
|
7
|
+
* [Cookie module](#cookie-module)
|
|
8
|
+
* [Calltouch module](#calltouch-module)
|
|
9
|
+
* [Form module](#form-module)
|
|
10
|
+
|
|
5
11
|
## Installation
|
|
6
12
|
```bash
|
|
7
13
|
pnpm i @alexsab-ru/scripts
|
|
@@ -84,3 +90,37 @@ document.querySelectorAll("form").forEach((form) => {
|
|
|
84
90
|
};
|
|
85
91
|
});
|
|
86
92
|
```
|
|
93
|
+
|
|
94
|
+
## Cookie module
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
import { getCookie, setCookie, deleteCookie, cookiecook } from './cookie';
|
|
98
|
+
|
|
99
|
+
getCookie('cookie_name');
|
|
100
|
+
setCookie('cookie_name');
|
|
101
|
+
deleteCookie('cookie_name');
|
|
102
|
+
cookiecook(days);
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Calltouch module
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
import { createRequest } from '@alexsab-ru/scripts';
|
|
109
|
+
|
|
110
|
+
// Отправка заявки на обратный возов в CallTouch
|
|
111
|
+
createRequest("ct_callback", "+7 (987) 654-32-10");
|
|
112
|
+
|
|
113
|
+
// для показа лога нужно использовать третий парамтер
|
|
114
|
+
createRequest("ct_callback", "+7 (987) 654-32-10", true);
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Form module
|
|
118
|
+
|
|
119
|
+
```js
|
|
120
|
+
import { connectForms, cookiecook } from '@alexsab-ru/scripts';
|
|
121
|
+
|
|
122
|
+
cookiecook();
|
|
123
|
+
connectForms('https://alexsab.ru/lead/test/', function() {
|
|
124
|
+
console.log("sucess lead");
|
|
125
|
+
});
|
|
126
|
+
```
|
package/index.js
CHANGED
package/lib/calltouch.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export const createRequest = (routeKey, phoneValue, verbose = false) => {
|
|
2
|
+
|
|
3
|
+
if(window.ctw) {
|
|
4
|
+
window.ctw.getRouteKeyData(routeKey, function(success, data){
|
|
5
|
+
verbose && console.log(success, data);
|
|
6
|
+
if (success) {
|
|
7
|
+
if (data.widgetFound) {
|
|
8
|
+
if (data.widgetData.callCenterWorkingMode == 'working_hours') {
|
|
9
|
+
verbose && console.log('колл-центр работает, отображение виджета');
|
|
10
|
+
} else {
|
|
11
|
+
if (data.widgetData.collectNonWorkingRequests) {
|
|
12
|
+
verbose && console.log('колл-центр не работает, но можем отобразить форму нерабочего времени');
|
|
13
|
+
} else {
|
|
14
|
+
verbose && console.log('колл-центр не работает, заявки в нерабочее время не собираем');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
var phone_ct = phoneValue.replace(/[^0-9]/gim, '');
|
|
19
|
+
if (phone_ct[0] == '8') { phone_ct = phone_ct.substring(1); }
|
|
20
|
+
if (phone_ct[0] == '7') { phone_ct = phone_ct.substring(1); }
|
|
21
|
+
phone_ct = '7' + phone_ct;
|
|
22
|
+
|
|
23
|
+
window.ctw.createRequest(
|
|
24
|
+
routeKey,
|
|
25
|
+
phone_ct,
|
|
26
|
+
[],
|
|
27
|
+
function (success, data) {
|
|
28
|
+
verbose && console.log(success, data)
|
|
29
|
+
if (success) {
|
|
30
|
+
verbose && console.log('Создана заявка на колбек, идентификатор: ' + data.callbackRequestId)
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
switch (data.type) {
|
|
34
|
+
case "request_throttle_timeout":
|
|
35
|
+
case "request_throttle_count":
|
|
36
|
+
verbose && console.log('Достигнут лимит создания заявок, попробуйте позже');
|
|
37
|
+
break;
|
|
38
|
+
case "request_phone_blacklisted":
|
|
39
|
+
verbose && console.log('номер телефона находится в черном списке');
|
|
40
|
+
break;
|
|
41
|
+
case "validation_error":
|
|
42
|
+
verbose && console.log('были переданы некорректные данные');
|
|
43
|
+
break;
|
|
44
|
+
default:
|
|
45
|
+
verbose && console.log('Во время выполнения запроса произошла ошибка: ' + data.type);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
} else {
|
|
51
|
+
verbose && console.log('не найден включенный виджет '+routeKey+', либо услуга обратного звонка не активна');
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
verbose && console.log('во время обработки произошла ошибка');
|
|
55
|
+
verbose && console.log(data)
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
};
|
package/lib/form.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getCookie } from './cookie';
|
|
2
|
+
import { createRequest } from './calltouch';
|
|
2
3
|
import { reachGoal, getFormDataObject } from './analytics';
|
|
3
4
|
|
|
4
5
|
|
|
@@ -140,7 +141,12 @@ document.querySelectorAll("form").forEach((form) => {
|
|
|
140
141
|
stateBtn(btn, "Отправить");
|
|
141
142
|
return;
|
|
142
143
|
}
|
|
144
|
+
// Отпрвка цели что форма submit только после всех проверок
|
|
143
145
|
reachGoal("form_submit");
|
|
146
|
+
|
|
147
|
+
// Отправка заявки на обратный возов в CallTouch
|
|
148
|
+
createRequest("ct_callback", phone);
|
|
149
|
+
|
|
144
150
|
let formData = new FormData(form);
|
|
145
151
|
if(getCookie('fta')) {
|
|
146
152
|
formData.append("fta", true);
|
|
@@ -157,6 +163,10 @@ document.querySelectorAll("form").forEach((form) => {
|
|
|
157
163
|
window.location.origin + window.location.pathname
|
|
158
164
|
);
|
|
159
165
|
|
|
166
|
+
if(window.re) {
|
|
167
|
+
formData.append("re", window.re);
|
|
168
|
+
}
|
|
169
|
+
|
|
160
170
|
window.location.search
|
|
161
171
|
.slice(1)
|
|
162
172
|
.split("&")
|