diff --git a/httpd/static/index.html b/httpd/static/index.html index b82fdfd..330cf34 100644 --- a/httpd/static/index.html +++ b/httpd/static/index.html @@ -633,6 +633,29 @@

История введенных данных

// Хранение истории данных let formHistory = JSON.parse(localStorage.getItem('formHistory')) || []; + const FFCGIResponceHandler = (responce, X, Y, R) => { + const JSONresponce = JSON.parse(responce); + + // Сохраняем данные в историю + const formData = { + timestamp: new Date().toISOString(), + X: X, + Y: Y, + R: R, + elapsedTimeNs: JSONresponce.elapsedTimeNs, + isHitted: JSONresponce.result + }; + + formHistory.push(formData); + localStorage.setItem('formHistory', JSON.stringify(formHistory)); + + // Обновляем таблицу + refreshHistoryTable(); + + // Обновляем график + refreshGraph(); + } + // Обработчик отправки формы document.getElementById('graph-test-form').addEventListener('submit', function (e) { e.preventDefault(); // Отключаем дефолтное поведение @@ -643,36 +666,17 @@

История введенных данных

const Y = document.getElementById('Y').value; if (X && R && Y) { - // Stub - sendAJAXGETRequest("/fcgi-bin/", {"x": X, "y": Y, "r": R}, (data) => {console.log(data)}); - console.log(`Данные отправлены!\nX: ${X}\nY: ${Y}\nR: ${R}`); - - // Сохраняем данные в историю - const formData = { - timestamp: new Date().toISOString(), - X: X, - Y: Y, - R: R, - elapsedTimeMs: 100, - isHitted: true - }; - - formHistory.push(formData); - localStorage.setItem('formHistory', JSON.stringify(formHistory)); - - // Обновляем таблицу - refreshHistoryTable(); - - // Обновляем график - refreshGraph(); + sendAJAXGETRequest("/fcgi-bin/", {"x": X, "y": Y, "r": R}, (resp) => {FFCGIResponceHandler(resp, X, Y, R)}); // Очищаем форму this.reset(); + } else { alert('Пожалуйста, заполните все поля формы') } }); + // Функция для обновления таблицы истории // TODO: переделать говнокод! const refreshHistoryTable = () => { @@ -696,7 +700,7 @@

История введенных данных

row.innerHTML = ` ${new Date(elem.timestamp).toLocaleString('ru-RU')} - ${elem.elapsedTimeMs} ms + ${elem.elapsedTimeNs} ns ${elem.X} ${elem.Y} ${elem.R} @@ -718,9 +722,9 @@

История введенных данных

const R = parseFloat(elem.R); const cx = 20 + (1 + X/R)*80; - const cy = 20 + (1 + Y/R)*80; + const cy = 20 + (1 - Y/R)*80; - if (!container.querySelector(`circle[cx="${cx}"][cy="${cy}"]`) && Math.abs(cx) <= 200 && Math.abs(cy) <= 200) { + if (!container.querySelector(`circle[cx="${cx}"][cy="${cy}"]`) && 0 <= cx <= 200 && 0 <= cy <= 200) { const point = document.createElementNS(svgns, 'circle'); point.setAttributeNS(null, 'cx', cx);