diff --git a/index.html b/index.html index a554eba..d49b03a 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@
-
+
Форма ввода
@@ -68,7 +68,7 @@
-
+
Ответ
@@ -87,7 +87,7 @@ -
+
areas.png
Мишень diff --git a/script.ts b/script.ts index edccaf6..6f4c5e6 100644 --- a/script.ts +++ b/script.ts @@ -79,14 +79,14 @@ rButtons.forEach((button: HTMLButtonElement) => { }); }); -const form = document.querySelector('#form'); -form.addEventListener('submit', e => { - e.preventDefault(); - if (isNaN(request.y)) { - document.querySelector('#error_sound').play(); - const _window = document.createElement('div'); - _window.classList.add('window'); - _window.innerHTML = ` +const showError = (errorText: string) => { + document.querySelector('#error_sound').play(); + const _window = document.createElement('div'); + _window.classList.add('window'); + _window.style.zIndex = String(500); + _window.style.left = "35%"; + _window.style.top = "35%"; + _window.innerHTML = `
Ошибка X @@ -94,11 +94,18 @@ form.addEventListener('submit', e => {
Error Icon -

Ошибка, проверьте, что Y это число

+

${errorText}

`; - windowDragHandler(_window); - document.querySelector('.work-area').append(_window); + windowDragHandler(_window); + document.querySelector('.work-area').append(_window); +} + +const form = document.querySelector('#form'); +form.addEventListener('submit', e => { + e.preventDefault(); + if (isNaN(request.y)) { + showError('Ошибка, проверьте, что Y это число') return; } @@ -108,12 +115,18 @@ form.addEventListener('submit', e => { r: String(request.r), }); const response = fetch(`/ipa/cgi.jar?${params.toString()}`); - response.then(response => response.text().then( - html => { - const element = document.createElement('tr'); - element.innerHTML += html; - if (response.headers.get('X-Gol') === 'no') element.classList.add('grey'); - document.querySelector("#results").append(element); + response.then(response => { + if (response.status !== 200) { + showError("Ошибка при обработке запроса. Пожалуйста, попробуйте позже"); + return; } - )); + response.text().then( + html => { + const element = document.createElement('tr'); + element.innerHTML += html; + if (response.headers.get('X-Gol') === 'no') element.classList.add('grey'); + document.querySelector("#results").append(element); + } + ) + }); }); \ No newline at end of file