File size: 7,538 Bytes
4e1d4ee 94e14dc 65d94dd 995e423 3763d04 ec2f9d4 7a01815 a31b49e 772c6d6 a31b49e 772c6d6 a31b49e 7a01815 772c6d6 7a01815 ec2f9d4 a31b49e f47f85a 772c6d6 ec2f9d4 3763d04 94e14dc 079b426 65d94dd a31b49e 6506d29 009bb14 a31b49e 009bb14 a31b49e 65d94dd a31b49e 90d04c3 a31b49e 6506d29 a31b49e 65d94dd 90d04c3 f9d7605 90d04c3 6b23076 995e423 3763d04 995e423 2404702 41a6c80 bcd40b3 41a6c80 bcd40b3 41a6c80 bcd40b3 995e423 41a6c80 bcd40b3 41a6c80 bcd40b3 a31b49e bcd40b3 41a6c80 6506d29 41a6c80 ff18898 bcd40b3 3763d04 94e14dc bcd40b3 41a6c80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>API Request</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/notyf/notyf.min.css">
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f0f0f0;
margin: 0;
padding: 0;
}
h1 {
background-color: #4CAF50;
color: white;
padding: 20px;
margin: 0;
border-bottom: 2px solid #388E3C;
font-size: 28px;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
.form-group {
margin: 20px auto;
width: 100%;
max-width: 400px; /* Устанавливаем максимальную ширину */
text-align: left;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-size: 16px;
}
.form-group input,
.form-group select {
width: 100%;
padding: 12px; /* Увеличиваем внутренний отступ */
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
margin-bottom: 20px;
}
button {
display: block;
margin: 20px auto;
color: white;
background-color: #4CAF50;
border: none;
cursor: pointer;
padding: 12px 24px; /* Увеличиваем внутренний отступ */
font-size: 16px;
border-radius: 5px;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #388E3C;
}
#dropdown-container {
margin-top: 20px;
}
#dropdown-container select {
width: 100%; /* Устанавливаем ширину выпадающего списка */
padding: 12px; /* Увеличиваем внутренний отступ */
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
}
</style>
</head>
<body>
<h1>WhatsGRM - Принудительное обновление базы данных с Бизон 365</h1>
<div class="form-group">
<label for="tokenInput">API-токен администратора Бизон 365:</label>
<input type="text" id="tokenInput" placeholder="Введите токен">
</div>
<div class="form-group">
<label for="dateSelect">Выбор даты:</label>
<select id="dateSelect">
<option value="2021-01-01T00:00:00">2021-01-01</option>
<option value="2022-01-01T00:00:00">2022-01-01</option>
<option value="2023-01-01T00:00:00">2023-01-01</option>
<option value="2024-01-01T00:00:00">2024-01-01</option>
</select>
</div>
<div class="form-group">
<label for="typeSelect">Выбор формата вебинара:</label>
<select id="typeSelect">
<option value="AutoWebinars">Автовебинарные комнаты</option>
<option value="LiveWebinars">Вебинарные комнаты</option>
</select>
</div>
<button id="sendRequestButton">Получить список комнат Бизон 365</button>
<div id="dropdown-container"></div>
<button id="sendGetRequestButton">Обновить базу пользователей WhatCRM</button>
<script src="https://cdn.jsdelivr.net/npm/notyf/notyf.min.js"></script>
<script>
const notyf = new Notyf({
duration: 5000,
position: {
x: 'right',
y: 'top',
},
});
let requestButtonClicked = false;
// Привязываем обработчики событий только один раз
document.getElementById('sendRequestButton').addEventListener('click', function() {
if (requestButtonClicked) return; // Если уже нажимали, выходим
requestButtonClicked = true; // Устанавливаем флаг, что кнопка уже была нажата
const token = document.getElementById('tokenInput').value;
const minDate = document.getElementById('dateSelect').value;
const type = document.getElementById('typeSelect').value;
const url = '/send_request';
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'token=' + encodeURIComponent(token) + '&minDate=' + encodeURIComponent(minDate) + '&type=' + encodeURIComponent(type)
})
.then(response => response.json())
.then(data => {
console.log('JSON Response:', data);
createDropdown(data);
})
.catch(error => {
console.error('Error:', error);
notyf.error('Error: ' + error.message);
})
.finally(() => {
requestButtonClicked = false; // Сбрасываем флаг после завершения запроса
});
});
function createDropdown(data) {
const container = document.getElementById('dropdown-container');
container.innerHTML = ''; // Очистить контейнер перед добавлением нового списка
const select = document.createElement('select');
select.id = 'dropdown';
select.classList.add('form-group');
data.forEach(item => {
const option = document.createElement('option');
option.value = item;
option.text = item;
select.appendChild(option);
});
container.appendChild(select);
// Привязываем обработчик событий только один раз
const sendGetRequestButton = document.getElementById('sendGetRequestButton');
sendGetRequestButton.removeEventListener('click', handleGetRequest); // Удаляем старый обработчик, если есть
sendGetRequestButton.addEventListener('click', handleGetRequest);
}
function handleGetRequest() {
const selectedValue = document.getElementById('dropdown').value;
const token = document.getElementById('tokenInput').value;
const getUrl = '/send_get_request?token=' + encodeURIComponent(token) + '&webinarId=' + encodeURIComponent(selectedValue);
fetch(getUrl, {
method: 'GET'
})
.then(response => response.json())
.then(data => {
console.log('GET Response:', data);
notyf.success('Пользователи добавлены в базу данных WhatsGRM');
})
.catch(error => {
console.error('Error:', error);
notyf.error('Error: ' + error.message);
});
}
</script>
</body>
</html>
|