Files
PasswordManager/public/search.js

103 lines
2.8 KiB
JavaScript
Raw Normal View History

2025-11-12 10:13:24 -05:00
import { postData, verifyLogin } from "./client.js";
2025-11-18 21:16:35 -05:00
import { formatSalary } from "./utils.js";
2025-11-12 10:13:24 -05:00
const searchForm = document.getElementById("searchForm");
const token = window.localStorage.getItem("token");
2025-11-17 18:56:31 -05:00
const tableHeader = document.getElementById("header");
2025-11-12 10:13:24 -05:00
const tableBody = document.getElementById("results");
const table = document.getElementById("table");
2025-11-17 18:56:31 -05:00
const nomatch = document.getElementById("nomatch");
2025-11-12 10:13:24 -05:00
updateTableVisibility();
2025-11-26 23:55:37 -05:00
document.querySelectorAll("input[type='checkbox']").forEach(checkbox => {
checkbox.addEventListener("change", e => {
e.preventDefault();
updateSearch();
});
});
document.querySelectorAll("input[type='text']").forEach(checkbox => {
2025-11-26 23:56:47 -05:00
checkbox.addEventListener("input", e => {
2025-11-26 23:55:37 -05:00
e.preventDefault();
updateSearch();
});
});
if (searchForm)searchForm.onsubmit = e => {
2025-11-12 10:13:24 -05:00
e.preventDefault();
2025-11-26 23:55:37 -05:00
updateSearch();
};
updateSearch();
async function updateSearch () {
2025-11-12 10:13:24 -05:00
if (!verifyLogin()) return;
2025-11-26 22:52:05 -05:00
const formData = new FormData(searchForm);
let positions = formData.getAll("days");
while (positions.length !== 4) {
positions.push("NOPE");
}
2025-11-12 10:13:24 -05:00
2025-11-18 21:16:35 -05:00
let resultObject = await postData("/getPlayers", {
2025-11-26 23:55:37 -05:00
player: document.getElementById("query").value || "%",
2025-11-26 22:52:05 -05:00
positions: positions
2025-11-12 10:13:24 -05:00
}, token);
2025-11-17 18:56:31 -05:00
if (resultObject.matches.length === 0) {
nomatch.style.display = "";
table.style.display = "none";
return;
}
nomatch.style.display = "none"
table.style.display = "";
tableHeader.innerHTML = "";
const headerRow = document.createElement("tr")
2025-11-26 21:10:22 -05:00
//Object.keys(resultObject.matches[0]).forEach(attribute => {
// headerRow.innerHTML += `<td>${attribute}</td>`;
//});
headerRow.innerHTML += `
<td>ID</td>
<td>Name</td>
<td>Contract</td>
<td>Team</td>
<td>Position</td>
`;
2025-11-17 18:56:31 -05:00
tableHeader.appendChild(headerRow);
2025-11-12 10:13:24 -05:00
tableBody.innerHTML = "";
2025-11-17 18:56:31 -05:00
resultObject.matches.forEach(player => {
const row = document.createElement("tr");
2025-11-12 10:13:24 -05:00
2025-11-17 18:56:31 -05:00
//for (attribute in player) {
// row.innerHTML += `<td>${player}</td>l`;
//}
2025-11-12 10:13:24 -05:00
row.innerHTML = `
2025-11-26 21:10:22 -05:00
<td>${player.PlayerID}</td>
<td><a href="/player/${player.PlayerID}">${player.PlayerName}</a></td>
<td>${formatSalary(player.TotalValue)}</td>
<td>${player.Team}</td>
<td>${player.Position}</td>
2025-11-12 10:13:24 -05:00
`;
tableBody.appendChild(row);
});
updateTableVisibility();
};
function updateTableVisibility() {
if (!tableBody) return;
const rows = tableBody.querySelectorAll("tr");
if (rows == null) return;
if (rows.length != 0) {
table.style.display = "";
} else {
table.style.display = "none";
}
}