@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 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
@@ -1,3 +1,4 @@
1
1
  export * from './lib/analytics';
2
+ export * from './lib/calltouch';
2
3
  export * from './lib/cookie';
3
4
  export * from './lib/form';
@@ -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("&")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexsab-ru/scripts",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "description": "common libs for websites",
5
5
  "main": "index.js",
6
6
  "repository": {