DmitrMakeev commited on
Commit
71b4092
·
verified ·
1 Parent(s): 606423d

Update data_gc_tab.html

Browse files
Files changed (1) hide show
  1. data_gc_tab.html +239 -313
data_gc_tab.html CHANGED
@@ -1,333 +1,259 @@
1
- <!DOCTYPE html>
2
- <html lang="ru">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>WhatsCRM - Автопилот + Tilda + Бизон 365 + GetCurse</title>
7
-
8
- <!-- Подключение библиотек -->
9
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
10
- <script src="https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js"></script>
11
- <script src="https://vk.com/js/api/openapi.js?169"></script>
12
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
13
- <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
14
- <link href="https://unpkg.com/tabulator-tables@6.2.1/dist/css/tabulator.min.css" rel="stylesheet">
15
- <script src="https://unpkg.com/tabulator-tables@6.2.1/dist/js/tabulator.min.js"></script>
16
-
17
- <!-- Стили -->
18
- <style>
19
- body {
20
- font-family: Arial, sans-serif;
21
- text-align: center;
22
- background-color: #f0f0f0;
23
- margin: 0;
24
- padding: 0;
25
- }
26
- h1 {
27
- background-color: #4CAF50;
28
- color: white;
29
- padding: 20px;
30
- margin: 0;
31
- border-bottom: 2px solid #388E3C;
32
- font-size: 28px;
33
- text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
34
- }
35
- button, #filter-clear, #download-json, #take-for-yourself {
36
- color: white;
37
- background-color: #4CAF50;
38
- border: none;
39
- cursor: pointer;
40
- padding: 10px 20px;
41
- font-size: 16px;
42
- border-radius: 5px;
43
- margin: 5px;
44
- transition: background-color 0.3s ease;
45
- }
46
- button:hover, #filter-clear:hover, #download-json:hover, #take-for-yourself:hover {
47
- background-color: #388E3C;
48
- }
49
- select, input {
50
- padding: 10px;
51
- font-size: 16px;
52
- margin: 5px;
53
- border-radius: 5px;
54
- border: 1px solid #ccc;
55
- background-color: #f0f0f0;
56
- transition: border-color 0.3s ease, box-shadow 0.3s ease;
57
- }
58
- select:focus, input:focus {
59
- border-color: #4CAF50;
60
- box-shadow: 0 0 5px rgba(76, 175, 80, 0.5);
61
- }
62
- #filter-field option, #filter-type option, #filter-field2 option {
63
- background-color: #f0f0f0;
64
- color: #333;
65
- }
66
- #mediaContainer {
67
- margin-top: 20px;
68
- display: flex;
69
- justify-content: center;
70
- align-items: center;
71
- flex-direction: column;
72
- max-width: 100%;
73
- height: auto;
74
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
75
- border-radius: 10px;
76
- padding: 20px;
77
- background-color: white;
78
- }
79
- #mediaContainer img, #mediaContainer video {
80
- max-width: 100%;
81
- height: auto;
82
- object-fit: contain;
83
- border-radius: 10px;
84
- }
85
- #imageUrl {
86
- margin-top: 20px;
87
- font-size: 16px;
88
- color: #333;
89
- cursor: pointer;
90
- text-decoration: underline;
91
- transition: color 0.3s ease;
92
- }
93
- #imageUrl:hover {
94
- color: #4CAF50;
95
- }
96
- #progressBarContainer {
97
- width: 80%;
98
- margin: 20px auto;
99
- background-color: #ddd;
100
- border-radius: 13px;
101
- padding: 3px;
102
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
103
- }
104
- #progressBar {
105
- width: 0%;
106
- height: 20px;
107
- background-color: #4CAF50;
108
- border-radius: 10px;
109
- text-align: center;
110
- line-height: 20px;
111
- color: white;
112
- transition: width 0.3s ease;
113
- }
114
- .swal-button-custom {
115
- background-color: #4CAF50;
116
- font-size: 16px;
117
- padding: 10px 20px;
118
- }
119
- .swal-title-custom {
120
- font-size: 24px;
121
- color: #333;
122
- }
123
- .swal-content-custom {
124
- font-size: 16px;
125
- color: #666;
126
- }
127
- </style>
128
- </head>
129
  <body>
130
- <header>
131
  <h1>WhatsCRM - Автопилот + Tilda + Бизон 365 + GetCurse</h1>
132
- </header>
133
-
134
- <main>
135
- <div>
136
- <select id="filter-field">
137
- <option value="">Выберите поле</option>
138
- <option value="id">Номер в списке</option>
139
- <option value="name">Имя</option>
140
- <option value="phone">WhatsApp</option>
141
- <option value="email">Email</option>
142
- <option value="b_mess">Реплики</option>
143
- <option value="curator">Куратор</option>
144
- <option value="shop_st">Статус покупки</option>
145
- <option value="ad_url">Ссылка на пользователя в GC</option>
146
- <option value="vk_id">Ссылка на VK</option>
147
- <option value="chat_id">Ссылка на Tg</option>
148
- <option value="ws_stop">Статус подписки</option>
149
- <option value="web_st">Вебинары</option>
150
- <option value="fin_prog">Прогресс по воронке</option>
151
- <option value="pr1">pr1</option>
152
- <option value="pr2">pr2</option>
153
- <option value="pr3">pr3</option>
154
- <option value="pr4">Канал трафика</option>
155
- <option value="pr5">Дата</option>
156
- <option value="key_pr">Ключ PR</option>
157
- <option value="canal">Канал</option>
158
- <option value="data_t">Дата</option>
159
- </select>
 
 
 
 
 
 
 
 
160
 
161
- <select id="filter-type">
162
- <option value="=">=</option>
163
- <option value="<"><</option>
164
- <option value="<="><=</option>
165
- <option value=">">></option>
166
- <option value=">=">>=</option>
167
- <option value="!=">!=</option>
168
- <option value="like">like</option>
169
- </select>
170
 
171
- <input id="filter-value" type="text" placeholder="Значение фильтра">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
 
173
- <select id="filter-field2">
174
- <option value="">Выберите поле</option>
175
- <option value="id">Номер в списке</option>
176
- <option value="name">Имя</option>
177
- <option value="phone">WhatsApp</option>
178
- <option value="email">Email</option>
179
- <option value="b_mess">Реплики</option>
180
- <option value="curator">Куратор</option>
181
- <option value="shop_st">Статус покупки</option>
182
- <option value="ad_url">Ссылка на пользователя в GC</option>
183
- <option value="vk_id">Ссылка на VK</option>
184
- <option value="chat_id">Ссылка на Tg</option>
185
- <option value="ws_stop">Статус подписки</option>
186
- <option value="web_st">Вебинары</option>
187
- <option value="fin_prog">Прогресс по воронке</option>
188
- <option value="pr1">pr1</option>
189
- <option value="pr2">pr2</option>
190
- <option value="pr3">pr3</option>
191
- <option value="pr4">Канал трафика</option>
192
- <option value="pr5">Дата</option>
193
- <option value="key_pr">Ключ PR</option>
194
- <option value="canal">Канал</option>
195
- <option value="data_t">Дата</option>
196
- </select>
197
 
198
- <input id="filter-value2" type="text" placeholder="Значение фильтра 2">
199
 
200
- <button id="filter-clear">Очистить фильтр</button>
201
- <button id="download-json">Скачать JSON</button>
202
- <button id="take-for-yourself">Возьми для себя</button>
203
- </div>
204
 
205
- <div id="mediaContainer">
206
- <!-- Место для изображения или видео -->
207
- <div id="mediaWrapper">
208
- <!-- Изображение по умолчанию -->
209
- <img id="media" src="" alt="Media" style="display: none;">
210
- <!-- Видео по умолчанию -->
211
- <video id="mediaVideo" controls style="display: none;">
212
- <source id="mediaSource" src="" type="video/mp4">
213
- Ваш браузер не поддерживает видео.
214
- </video>
215
- </div>
216
- <div id="imageUrl"></div>
217
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
 
219
- <div id="progressBarContainer">
220
- <div id="progressBar">0%</div>
221
- </div>
 
 
222
 
223
- <!-- Таблица данных -->
224
- <div id="data-table"></div>
225
- </main>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
- <script>
228
- $(document).ready(function() {
229
- let data = [];
230
- let table = new Tabulator("#data-table", {
231
- data: data,
232
- layout: "fitColumns",
233
- columns: [
234
- { title: "ID", field: "id" },
235
- { title: "Имя", field: "name" },
236
- { title: "WhatsApp", field: "phone" },
237
- { title: "Email", field: "email" },
238
- { title: "Реплики", field: "b_mess" },
239
- { title: "Куратор", field: "curator" },
240
- { title: "Статус покупки", field: "shop_st" },
241
- { title: "Ссылка на пользователя в GC", field: "ad_url" },
242
- { title: "Ссылка на VK", field: "vk_id" },
243
- { title: "Ссылка на Tg", field: "chat_id" },
244
- { title: "Статус подписки", field: "ws_stop" },
245
- { title: "Вебинары", field: "web_st" },
246
- { title: "Прогресс по воронке", field: "fin_prog" },
247
- { title: "pr1", field: "pr1" },
248
- { title: "pr2", field: "pr2" },
249
- { title: "pr3", field: "pr3" },
250
- { title: "Канал трафика", field: "pr4" },
251
- { title: "Дата", field: "pr5" },
252
- { title: "Ключ PR", field: "key_pr" },
253
- { title: "Канал", field: "canal" },
254
- { title: "Дата", field: "data_t" }
255
- ]
256
- });
257
 
258
- // Обработка клика на кнопке "Очистить фильтр"
259
- $('#filter-clear').click(function() {
260
- $('#filter-field').val('');
261
- $('#filter-type').val('=');
262
- $('#filter-value').val('');
263
- $('#filter-field2').val('');
264
- $('#filter-value2').val('');
265
- });
266
 
267
- // Обработка клика на кнопке "Скачать JSON"
268
- $('#download-json').click(function() {
269
- let jsonData = JSON.stringify(data, null, 2);
270
- let blob = new Blob([jsonData], { type: "application/json" });
271
- let url = URL.createObjectURL(blob);
272
- let a = document.createElement('a');
273
- a.href = url;
274
- a.download = 'data.json';
275
- a.click();
276
- URL.revokeObjectURL(url);
277
- });
278
 
279
- // Обработка клика на кнопке "Возьми для себя"
280
- $('#take-for-yourself').click(function() {
281
- Swal.fire({
282
- title: 'Вы уверены?',
283
- text: 'Вы собираетесь забрать эти данные для себя!',
284
- icon: 'warning',
285
- showCancelButton: true,
286
- confirmButtonText: 'Да, забрать',
287
- cancelButtonText: 'Отмена',
288
- customClass: {
289
- confirmButton: 'swal-button-custom',
290
- title: 'swal-title-custom',
291
- content: 'swal-content-custom',
292
- }
293
- }).then((result) => {
294
- if (result.isConfirmed) {
295
- // Логика для кнопки "Возьми для себя"
296
- Swal.fire(
297
- 'Выполнено!',
298
- 'Данные забраны для себя.',
299
- 'success'
300
- );
301
  }
302
- });
303
- });
304
 
305
- // Пример функции для обновления прогресс-бара
306
- function updateProgressBar(percentage) {
307
- $('#progressBar').css('width', percentage + '%').text(percentage + '%');
308
- }
 
309
 
310
- // Обновляем прогресс-бар на 50% как пример
311
- updateProgressBar(50);
 
 
 
 
 
 
 
 
 
 
 
 
312
 
313
- // Пример загрузки изображения
314
- $('#imageUrl').click(function() {
315
- let imageUrl = prompt('Введите URL изображения');
316
- if (imageUrl) {
317
- $('#media').attr('src', imageUrl).show();
318
- $('#mediaVideo').hide();
319
- $('#imageUrl').text(imageUrl);
320
  }
321
- });
322
 
323
- // Пример загрузки видео
324
- function loadVideo(videoUrl) {
325
- $('#mediaVideo').show();
326
- $('#media').hide();
327
- $('#mediaSource').attr('src', videoUrl);
328
- $('#mediaVideo')[0].load();
329
- }
330
- });
331
- </script>
332
- </body>
333
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <body>
2
+ <div id="header">
3
  <h1>WhatsCRM - Автопилот + Tilda + Бизон 365 + GetCurse</h1>
4
+ </div>
5
+ <div>
6
+ <select id="filter-field">
7
+ <option></option>
8
+ <option value="id">Номер в списке</option>
9
+ <option value="name">Имя</option>
10
+ <option value="phone">WhatsApp</option>
11
+ <option value="email">Email</option>
12
+ <option value="b_mess">Реплики</option>
13
+ <option value="curator">Куратор</option>
14
+ <option value="shop_st">Статус покупки</option>
15
+ <option value="ad_url">Ссылка на пользователя в GC</option>
16
+ <option value="vk_id">Ссылка на VK</option>
17
+ <option value="chat_id">Ссылка на Tg</option>
18
+ <option value="ws_stop">Стутус подписки</option>
19
+ <option value="web_st">Вебинары</option>
20
+ <option value="fin_prog">Прогрес по воронке</option>
21
+ <option value="pr1">pr1</option>
22
+ <option value="pr2">pr2</option>
23
+ <option value="pr3">pr3</option>
24
+ <option value="pr4">Канал трафика</option>
25
+ <option value="pr5">Дата</option>
26
+ <option value="key_pr">Ключ PR</option>
27
+ <option value="canal">Канал</option>
28
+ <option value="data_t">Дата</option>
29
+ </select>
30
+
31
+ <select id="filter-type">
32
+ <option value="=">=</option>
33
+ <option value="<"><</option>
34
+ <option value="<="><=</option>
35
+ <option value=">">></option>
36
+ <option value=">=">>=</option>
37
+ <option value="!=">!=</option>
38
+ <option value="like">like</option>
39
+ </select>
40
 
41
+ <input id="filter-value" type="text" placeholder="Значение фильтра">
 
 
 
 
 
 
 
 
42
 
43
+ <select id="filter-field2">
44
+ <option></option>
45
+ <option value="id">Номер в списке</option>
46
+ <option value="name">Имя</option>
47
+ <option value="phone">WhatsApp</option>
48
+ <option value="email">Email</option>
49
+ <option value="b_mess">Реплики</option>
50
+ <option value="curator">Куратор</option>
51
+ <option value="shop_st">Статус покупки</option>
52
+ <option value="ad_url">Ссылка на пользователя в GC</option>
53
+ <option value="vk_id">Ссылка на VK</option>
54
+ <option value="chat_id">Ссылка на Tg</option>
55
+ <option value="ws_stop">Стутус подписки</option>
56
+ <option value="web_st">Вебинары</option>
57
+ <option value="fin_prog">Прогрес по воронке</option>
58
+ <option value="pr1">pr1</option>
59
+ <option value="pr2">pr2</option>
60
+ <option value="pr3">pr3</option>
61
+ <option value="pr4">Канал трафика</option>
62
+ <option value="pr5">Дата</option>
63
+ <option value="key_pr">Ключ PR</option>
64
+ <option value="canal">Канал</option>
65
+ <option value="data_t">Дата</option>
66
+ </select>
67
 
68
+ <input id="filter-value2" type="text" placeholder="Значение фильтра 2">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
 
70
+ <button id="filter-clear">Очистить фильтр</button>
71
 
72
+ <button id="download-json">Рассылка по выбранным</button>
73
+ <button id="take-for-yourself">Взять себе</button> <!-- Добавлена вторая кнопка -->
74
+ </div>
75
+ <div id="example-table"></div>
76
 
77
+ <script>
78
+ vkBridge.send('VKWebAppInit');
79
+ document.addEventListener('DOMContentLoaded', function() {
80
+ fetch('https://irdelsol-psy.hf.space/data_gc_tab_out?api_sys=fasSd345D')
81
+ .then(response => response.json())
82
+ .then(data => {
83
+ console.log('Data received:', data); // Логирование данных
84
+ // Переворачиваем массив данных
85
+ data.reverse();
86
+ var linkFormatter = function(cell, formatterParams, onRendered) {
87
+ var curator = cell.getValue();
88
+ var curatorLink = cell.getData().curator_link;
89
+ return `<a href="${curatorLink}" target="_blank">${curator}</a>`;
90
+ };
91
+ var table = new Tabulator("#example-table", {
92
+ data: data, // set table data
93
+ layout: "fitColumns", // fit columns to width of table
94
+ pagination: "local", // enable local pagination
95
+ paginationSize: 50, // number of rows per page
96
+ selectable: true, // enable row selection
97
+ columns: [
98
+ {title:"Номер в списке", field:"id"},
99
+ {title:"Имя", field:"name", width:100},
100
+
101
+
102
+ {title:"WhatsApp", field:"phone", formatter: function(cell, formatterParams, onRendered) {
103
+ var phone = cell.getValue();
104
+ var ws_stop = cell.getData().ws_stop;
105
+ var ws_st = cell.getData().ws_st;
106
+ var imageUrl1 = "https://i.ibb.co/YBvwFR6/whatsapp-2.png"; // Замените на URL первой картинки
107
+ var imageUrl2 = "https://i.ibb.co/LZx71cM/1.png"; // Замените на URL второй картинки
108
+ var imageUrl3 = "https://i.ibb.co/Cvn3QsK/whatsapp-3.png"; // Замените на URL второй картинки
109
+ var link = `<a href="https://web.whatsapp.com/send?phone=${phone}" target="_blank">`;
110
+ // Проверка условий
111
+ if (ws_stop !== "1" && ws_st === "1") {
112
+ console.log("Первая переменная не равна единице, вторая равна единице");
113
+ return link + `<img src="${imageUrl2}" alt="WhatsApp" style="width: 98px; height: 14px;">`;
114
+
115
+ } else if (ws_stop === "1" && ws_st === "1") {
116
+ console.log("Обе переменные равны единице");
117
+ return link + `<img src="${imageUrl3}" alt="WhatsApp" style="width: 98px; height: 14px;">`;
118
 
119
+ } else {
120
+ console.log("Остальные случаи");
121
+ return link + `<img src="${imageUrl1}" alt="WhatsApp" style="width: 98px; height: 14px;">`;
122
+ }
123
+ }},
124
 
125
+
126
+ {title:"Город", field:"b_city", width:95},
127
+ {title:"Email", field:"email", width:95},
128
+ {title:"Реплики", field:"b_mess", width:95, cellClick:function(e, cell){
129
+ var data = cell.getData();
130
+ Swal.fire({
131
+ title: 'Детали пользователя',
132
+ html: `
133
+ <strong>Имя:</strong> ${data.name}<br>
134
+ <strong>WhatsApp:</strong> <a href="https://web.whatsapp.com/send?phone=${data.phone}" target="_blank">${data.phone}</a><br>
135
+ <strong>Реплики:</strong> ${data.b_mess}`,
136
+ icon: 'success',
137
+ confirmButtonText: 'Закрыть',
138
+ confirmButtonColor: '#4CAF50',
139
+ customClass: {
140
+ confirmButton: 'button is-success',
141
+ title: 'title-custom',
142
+ content: 'content-custom'}});}},
143
+
144
+ {title:"Куратор", field:"curator", formatter: linkFormatter},
145
+ {title:"Статус покупки", field:"shop_st", formatter: function(cell, formatterParams, onRendered) {
146
+ var status = cell.getValue();
147
+ var color;
148
+ switch (status) {
149
+ case 'green':
150
+ color = 'green';
151
+ break;
152
+ case 'red':
153
+ color = 'red';
154
+ break;
155
+ case 'yellow':
156
+ color = 'yellow';
157
+ break;
158
+ default:
159
+ color = 'gray';
160
+ }
161
+ return `<div style="width: 20px; height: 20px; background-color: ${color};"></div>`;
162
+ }},
163
+ {title:"Ссылка на пользователя в GC", field:"ad_url", formatter: function(cell, formatterParams, onRendered) {
164
+ var ad_url = cell.getValue();
165
+ return `<a href="${ad_url}" target="_blank">${ad_url}</a>`;
166
+ }},
167
+ {title:"Ссылка на VK", field:"vk_id", formatter: function(cell, formatterParams, onRendered) {
168
+ var vk_id = cell.getValue();
169
+ return `<a href="https://vk.com/id${vk_id}" target="_blank">${vk_id}</a>`;
170
+ }},
171
+ {title:"Ссылка на Tg", field:"chat_id", formatter: function(cell, formatterParams, onRendered) {
172
+ var chatId = cell.getValue();
173
+ if (chatId.startsWith('@')) {
174
+ chatId = chatId.substring(1); // Удаление символа @ в начале
175
+ }
176
+ return `<a href="https://t.me/${chatId}" target="_blank">${chatId}</a>`;
177
+ }},
178
 
179
+ {title:"Вебинары-присутствовал", field:"web_st", formatter:"star", formatterParams:{stars:7}, hozAlign:"center", width:70},
180
+ {title:"Вебинары-досмотрел до конца", field:"b_fin", formatter:function(cell, formatterParams, onRendered){
181
+ var value = cell.getValue();
182
+ var icon;
183
+ if (value === 'True') {
184
+ icon = ' <img src="https://i.ibb.co/9sqNhYz/4-2.png" width="98" height="14" />'; // Иконка для активного статуса
185
+ } else {
186
+ icon = ''; // Пустая строка для неактивного статуса или если значение не определено
187
+ }
188
+ return icon;
189
+ }},
190
+
191
+ {title:"Прогрес по воронке", field:"fin_prog", formatter:"progress", formatterParams:{color:["#ff0000", "orange", "#00dd00"]}, sorter:"number", width:100},
192
+ {title:"pr1", field:"pr1"},
193
+ {title:"pr2", field:"pr2"},
194
+ {title:"pr3", field:"pr3"},
195
+ {title:"Канал трафика", field:"pr4"},
196
+ {title:"Дата", field:"pr5"},
197
+ {title:"Ключ PR", field:"key_pr"},
198
+ {title:"Канал", field:"canal"},
199
+ {title:"Дата", field:"data_t", width:150}
200
+ ],
201
+ });
 
 
 
 
 
 
 
202
 
203
+
204
+ var fieldEl = document.getElementById("filter-field");
205
+ var typeEl = document.getElementById("filter-type");
206
+ var valueEl = document.getElementById("filter-value");
207
+ var fieldEl2 = document.getElementById("filter-field2");
208
+ var valueEl2 = document.getElementById("filter-value2");
 
 
209
 
210
+ function updateFilter() {
211
+ var filterVal1 = fieldEl.value;
212
+ var typeVal1 = typeEl.value;
213
+ var valueVal1 = valueEl.value;
 
 
 
 
 
 
 
214
 
215
+ var filterVal2 = fieldEl2.value;
216
+ var valueVal2 = valueEl2.value;
217
+
218
+ if (filterVal1 && filterVal2) {
219
+ table.setFilter([
220
+ { field: filterVal1, type: typeVal1, value: valueVal1 },
221
+ { field: filterVal2, type: "=", value: valueVal2 }
222
+ ]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  }
224
+ }
 
225
 
226
+ document.getElementById("filter-field").addEventListener("change", updateFilter);
227
+ document.getElementById("filter-type").addEventListener("change", updateFilter);
228
+ document.getElementById("filter-value").addEventListener("keyup", updateFilter);
229
+ document.getElementById("filter-field2").addEventListener("change", updateFilter);
230
+ document.getElementById("filter-value2").addEventListener("keyup", updateFilter);
231
 
232
+ document.getElementById("filter-clear").addEventListener("click", function() {
233
+ fieldEl.value = "";
234
+ typeEl.value = "=";
235
+ valueEl.value = "";
236
+ fieldEl2.value = "";
237
+ valueEl2.value = "";
238
+ table.clearFilter();
239
+ });
240
+
241
+ function handleDownloadJson() {
242
+ var tableData = table.getData("active");
243
+ var jsonData = JSON.stringify(tableData, null, 2);
244
+ console.log("Данные для рассылки:", jsonData);
245
+ }
246
 
247
+ function handleTakeForYourself() {
248
+ var tableData = table.getData("active");
249
+ var jsonData = JSON.stringify(tableData, null, 2);
250
+ console.log("Данные для себя:", jsonData);
 
 
 
251
  }
 
252
 
253
+ document.getElementById("download-json").addEventListener("click", handleDownloadJson);
254
+ document.getElementById("take-for-yourself").addEventListener("click", handleTakeForYourself);
255
+ })
256
+ .catch(error => console.error('Error fetching data:', error));
257
+ });
258
+ </script>
259
+ </body>