Files
PayDirt/public/home.js

213 lines
6.1 KiB
JavaScript
Raw Normal View History

2025-11-26 21:10:22 -05:00
import { postData, verifyLogin } from "./client.js";
import { formatSalary } from "./utils.js";
const token = window.localStorage.getItem("token");
2025-11-28 19:40:43 -05:00
if (!token) {
window.location.href = "/login";
}
2025-11-26 21:10:22 -05:00
const highest = document.querySelector("#highest");
updateHighest();
updateFavorites();
2025-11-28 11:10:09 -05:00
updatePaydirt();
updateOffense();
2025-11-28 11:15:58 -05:00
window.addEventListener("pageshow", e => {
if (e.persisted) {
updateFavorites();
}
})
2025-11-28 11:10:09 -05:00
async function updateOffense() {
if (!verifyLogin()) return;
const offenseHeader = document.querySelector("#offense thead");
const offenseBody = document.querySelector("#offense tbody");
2025-11-28 19:25:31 -05:00
let resultObject = await postData("/getHighestOffense", { amount: 100 }, token);
2025-11-28 11:10:09 -05:00
console.log(resultObject);
if (resultObject.matches.length === 0) {
alert("Error loading scores");
return;
}
offenseHeader.innerHTML = "";
const headerRow = document.createElement("tr");
//Object.keys(resultObject.matches[0]).forEach(attribute => {
// headerRow.innerHTML += `<td>${attribute}</td>`;
//});
headerRow.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>Rank</td>
2025-11-28 11:10:09 -05:00
<td>Position</td>
<td>Name</td>
<td>Team</td>
<td>Offense Score</td>
`;
offenseHeader.appendChild(headerRow);
offenseBody.innerHTML = "";
2025-11-28 19:25:31 -05:00
let i = 0;
2025-11-28 11:10:09 -05:00
resultObject.matches.forEach(player => {
2025-11-28 19:25:31 -05:00
i++;
2025-11-28 11:10:09 -05:00
const row = document.createElement("tr");
row.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>${i}</td>
2025-11-28 11:10:09 -05:00
<td>${player.Position}</td>
<td><a href="/player/${player.PlayerID}">${player.PlayerName}</a></td>
<td>${player.Team}</td>
2025-11-28 19:25:31 -05:00
<td>${Math.floor(player.OffenseScore)}</td>
2025-11-28 11:10:09 -05:00
`;
offenseBody.appendChild(row);
});
};
async function updatePaydirt() {
if (!verifyLogin()) return;
const paydirtHeader = document.querySelector("#paydirt thead");
const paydirtBody = document.querySelector("#paydirt tbody");
2025-11-28 19:25:31 -05:00
let resultObject = await postData("/getHighestPaydirt", { amount: 100 }, token);
2025-11-28 11:10:09 -05:00
console.log(resultObject);
if (resultObject.matches.length === 0) {
alert("Error loading scores");
return;
}
paydirtHeader.innerHTML = "";
const headerRow = document.createElement("tr");
//Object.keys(resultObject.matches[0]).forEach(attribute => {
// headerRow.innerHTML += `<td>${attribute}</td>`;
//});
headerRow.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>Rank</td>
2025-11-28 11:10:09 -05:00
<td>Position</td>
<td>Name</td>
<td>Team</td>
<td>Paydirt Score</td>
`;
paydirtHeader.appendChild(headerRow);
paydirtBody.innerHTML = "";
2025-11-28 19:25:31 -05:00
let i = 0;
2025-11-28 11:10:09 -05:00
resultObject.matches.forEach(player => {
2025-11-28 19:25:31 -05:00
i++;
2025-11-28 11:10:09 -05:00
const row = document.createElement("tr");
row.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>${i}</td>
2025-11-28 11:10:09 -05:00
<td>${player.Position}</td>
<td><a href="/player/${player.PlayerID}">${player.PlayerName}</a></td>
<td>${player.Team}</td>
2025-11-28 19:25:31 -05:00
<td>${Math.floor(player.PaydirtScore)}</td>
2025-11-28 11:10:09 -05:00
`;
paydirtBody.appendChild(row);
});
};
2025-11-26 21:10:22 -05:00
async function updateHighest() {
if (!verifyLogin()) return;
const tableHeader = document.querySelector("#highest thead");
const tableBody = document.querySelector("#highest tbody");
2025-11-28 19:25:31 -05:00
let resultObject = await postData("/getHighest", { amount: 100 }, token);
2025-11-26 21:10:22 -05:00
console.log(resultObject);
if (resultObject.matches.length === 0) {
alert("Error loading highest");
return;
}
tableHeader.innerHTML = "";
const headerRow = document.createElement("tr");
//Object.keys(resultObject.matches[0]).forEach(attribute => {
// headerRow.innerHTML += `<td>${attribute}</td>`;
//});
headerRow.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>Rank</td>
<td>Position</td>
2025-11-26 21:10:22 -05:00
<td>Name</td>
<td>Team</td>
2025-11-28 19:25:31 -05:00
<td>Contract</td>
2025-11-28 20:05:34 -05:00
<td>Annual Salary</td>
2025-11-26 21:10:22 -05:00
`;
tableHeader.appendChild(headerRow);
tableBody.innerHTML = "";
2025-11-28 19:25:31 -05:00
let i = 0;
2025-11-26 21:10:22 -05:00
resultObject.matches.forEach(player => {
2025-11-28 19:25:31 -05:00
i++;
2025-11-26 21:10:22 -05:00
const row = document.createElement("tr");
//for (attribute in player) {
// row.innerHTML += `<td>${player}</td>l`;
//}
row.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>${i}</td>
<td>${player.Position}</td>
2025-11-26 21:10:22 -05:00
<td><a href="/player/${player.PlayerID}">${player.PlayerName}</a></td>
<td>${player.Team}</td>
2025-11-28 20:05:34 -05:00
<td>${formatSalary(player.TrueAvgPerYear * player.Years)}</td>
<td>${formatSalary(player.TrueAvgPerYear)}</td>
2025-11-26 21:10:22 -05:00
`;
tableBody.appendChild(row);
});
};
async function updateFavorites() {
if (!verifyLogin()) return;
const tableHeader = document.querySelector("#favorites thead");
const tableBody = document.querySelector("#favorites tbody");
let resultObject = await postData("/getWatchlist", {}, token);
tableHeader.innerHTML = "";
const headerRow = document.createElement("tr");
//Object.keys(resultObject.matches[0]).forEach(attribute => {
// headerRow.innerHTML += `<td>${attribute}</td>`;
//});
headerRow.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>Rank</td>
<td>Position</td>
2025-11-26 21:10:22 -05:00
<td>Name</td>
<td>Team</td>
2025-11-28 19:25:31 -05:00
<td>Remove</td>
2025-11-26 21:10:22 -05:00
`;
tableHeader.appendChild(headerRow);
tableBody.innerHTML = "";
console.log(resultObject.watchlist);
2025-11-28 19:25:31 -05:00
let i = 0;
2025-11-26 21:10:22 -05:00
resultObject.watchlist.forEach(player => {
2025-11-28 19:25:31 -05:00
i++;
2025-11-26 21:10:22 -05:00
const row = document.createElement("tr");
row.innerHTML = `
2025-11-28 19:25:31 -05:00
<td>${i}</td>
<td>${player.Position}</td>
2025-11-26 21:10:22 -05:00
<td><a href="/player/${player.PlayerID}">${player.PlayerName}</a></td>
<td>${player.Team}</td>
2025-11-28 19:25:31 -05:00
<td><a href="#" class="remove" data-id="${player.PlayerID}">Stop Watching</a></td>
2025-11-26 21:10:22 -05:00
`;
tableBody.appendChild(row);
});
2025-11-28 19:25:31 -05:00
document.querySelectorAll(".remove").forEach(element => {
element.addEventListener("click", async e => {
postData("/toggleWatched", { id: element.dataset.id }, token);
element.closest("tr").remove();
})
});
2025-11-26 21:10:22 -05:00
};