feat: add alering in tg

This commit is contained in:
2026-04-24 21:02:07 +03:00
parent 06a35b10cf
commit e36b09deb4
4 changed files with 64 additions and 13 deletions

View File

@@ -41,22 +41,12 @@
</label>
<button class='cabinet__submit' type='submit'>Оставить заявку</button>
</form>
<p class='cabinet__status' id='cabinet-status' hidden></p>
</section>
</div>
</main>
</div>
<script src='js/site-config.js'></script>
<script src='js/main.js' defer></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const f = document.getElementById('cabinet-form');
if (!f) {
return;
}
f.addEventListener('submit', (e) => {
e.preventDefault();
f.reset();
});
});
</script>
</body>
</html>

View File

@@ -713,6 +713,14 @@ a {
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}
.cabinet__status {
margin: 1rem 0 0;
text-align: center;
font-size: 0.95rem;
letter-spacing: 0.06em;
color: rgba(255, 255, 255, 0.78);
}
@media (max-width: 600px) {
.hero__glow {
display: none;

View File

@@ -34,7 +34,7 @@ function tickCountdown() {
seconds: pad2(seconds),
};
Object.keys(map).forEach((key) => {
const el = root.querySelector(`[data-unit="${key}"]`);
const el = root.querySelector(`[data-unit='${key}']`);
if (el) {
el.textContent = map[key];
}
@@ -43,6 +43,57 @@ function tickCountdown() {
}
function initCabinetSubmit() {
const form = document.getElementById('cabinet-form');
const status = document.getElementById('cabinet-status');
if (!form) {
return;
}
const submitBtn = form.querySelector('.cabinet__submit');
form.addEventListener('submit', async (e) => {
e.preventDefault();
const cfg = window.__SITE_CONFIG__ || {};
const url = cfg.notifyUrl || 'http://72.56.9.52:8000/notify';
const fd = new FormData(form);
const name = String(fd.get('name') || '').trim();
const email = String(fd.get('email') || '').trim();
if (status) {
status.setAttribute('hidden', '');
status.textContent = '';
}
if (submitBtn) {
submitBtn.disabled = true;
}
try {
const res = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ name, email }),
});
if (!res.ok) {
throw new Error(String(res.status));
}
if (status) {
status.removeAttribute('hidden');
status.textContent = 'Заявка отправлена';
}
form.reset();
} catch {
if (status) {
status.removeAttribute('hidden');
status.textContent = 'Не удалось отправить заявку';
}
} finally {
if (submitBtn) {
submitBtn.disabled = false;
}
}
});
}
function initNav() {
const btn = document.querySelector('.burger');
if (!btn) {
@@ -73,3 +124,4 @@ function startCountdown() {
startCountdown();
initNav();
initCabinetSubmit();

View File

@@ -1,5 +1,6 @@
window.__SITE_CONFIG__ = {
siteUrl: 'https://elcsa.ru',
notifyUrl: 'http://72.56.9.52:8000/notify',
gtmContainerId: '',
ga4MeasurementId: '',
googleAdsId: '',