passesFrontend/static/scripts/passes-table.js
2024-05-15 16:27:22 +03:00

145 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const createTable = () => {
const table = document.getElementById("passesTable");
const tbody = table.querySelector("tbody");
// Очищаем таблицу
tbody.innerHTML = "";
passes.forEach((pass) => {
const row = document.createElement("tr");
row.setAttribute("onclick", `openPass(${pass.id});`);
// Добавляем ячейки с данными
const id = document.createElement("td");
id.textContent = pass.id;
row.appendChild(id);
const status = document.createElement("td");
status.textContent = pass.status;
row.appendChild(status);
const date = document.createElement("td");
const rawDate = new Date(pass.date);
const formattedDate = `${rawDate.getDate().toString().padStart(2, "0")}/${(
rawDate.getMonth() + 1
)
.toString()
.padStart(2, "0")}/${rawDate.getFullYear()}`;
date.textContent = formattedDate;
row.appendChild(date);
const type = document.createElement("td");
type.textContent = pass.type;
row.appendChild(type);
const worker = document.createElement("td");
worker.textContent = pass.name;
row.appendChild(worker);
const legal = document.createElement("td");
legal.innerHTML = pass.legal;
row.appendChild(legal);
const finaldate = document.createElement("td");
if (pass.finaldate) {
const rawFinalDate = new Date(pass.finaldate);
const formattedfinalDate = `${rawFinalDate
.getDate()
.toString()
.padStart(2, "0")}/${(rawFinalDate.getMonth() + 1)
.toString()
.padStart(2, "0")}/${rawFinalDate.getFullYear()}`;
finaldate.textContent = formattedfinalDate;
} else {
finaldate.textContent = "";
}
row.appendChild(finaldate);
const address = document.createElement("td");
address.textContent = pass.address;
row.appendChild(address);
const car = document.createElement("td");
if (pass.car) {
let carText = pass.car.replace(/"/g, '"');
carText = JSON.parse(carText).join(", ");
car.textContent = carText;
}
row.appendChild(car);
tbody.appendChild(row);
});
};
document.addEventListener("DOMContentLoaded", function () {
createTable();
});
function getCookie(name) {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
if (cookie.startsWith(name + "=")) {
return cookie.substring(name.length + 1);
}
}
return null;
}
function requestUpdate() {
document.getElementById("passesTable").style.filter = "brightness(0.85)";
const formData = new FormData();
formData.append("searchText", document.getElementById("table-search").value);
formData.append(
"page",
parseInt(document.getElementById("page-number").textContent)
);
const requestOptions = {
method: "POST",
headers: {
Authorization: getCookie("token"),
},
body: formData,
};
fetch(API_SERVER + "/passes/getpasses", requestOptions)
.then((response) => {
document.getElementById("passesTable").style.filter = "brightness(1)";
if (response.ok) {
return response.json();
} else {
console.error("Ошибка при отправке POST запроса.");
return "Ошибка при отправке запроса.";
}
})
.then((data) => {
passes.splice(0, passes.length);
passes.push(
...data.passes.map((item) => ({
id: item.id,
status: item.Состояние,
date: item.Дата_выдачи,
finaldate: item.Действиео,
type: item.Вид_пропуска,
name: item.Работник,
legal: item.Организация,
address: item.Зонаоступа,
car: item.Авто_госомер,
tmcname: item.Наименование,
}))
);
createTable();
totalMax = Math.ceil(data.totalCount / 15);
if (totalMax === 0) {
totalMax = 1;
}
var currentPage = parseInt(pageNumberInput.textContent, 10);
if (currentPage > totalMax) {
pageNumberInput.textContent = totalMax;
requestUpdate();
}
})
.catch((error) => {
console.error("Ошибка при отправке запроса:", error);
});
}