AI-RESEARCHER-2024's picture
add app files
4ec2f9d verified
raw
history blame
8.88 kB
function loadActors() {
const urlParams = new URLSearchParams(window.location.search);
const netID = urlParams.get("netID");
if (netID) {
document.getElementById("filter-input").value = netID;
processFilter();
} else {
fetch("/actors/getAll")
.then((response) => response.json())
.then((data) => {
const tableBody = document.getElementById("actor-table-body");
tableBody.innerHTML = "";
data.forEach((actor) => {
const row = document.createElement("tr");
row.innerHTML = `
<td>
<select class="netid-select"
onchange="handleNetIDDropdownActor(this.value, '${actor.netID}')">
<option value = "" selected>${actor.netID}</option>
<option value = "edit">Edit Actor</option>
</td>
<td class="sticky">${actor.firstName} ${actor.lastName}</td>
<td>${actor.yearsActingExperience}</td>
<td>${actor.skinTone}</td>
<td>${actor.piercings}</td>
<td>${actor.hairColor}</td>
<td>${actor.previousInjuries}</td>
<td>${actor.specialNotes}</td>
<td>${actor.height}</td>
<td>${actor.ringSize}</td>
<td>${actor.shoeSize}</td>
<td>${actor.headCirc}</td>
<td>${actor.neckBase}</td>
<td>${actor.chest}</td>
<td>${actor.waist}</td>
<td>${actor.highHip}</td>
<td>${actor.lowHip}</td>
<td>${actor.armseyeToArmseyeFront}</td>
<td>${actor.neckToWaistFront}</td>
<td>${actor.armseyeToArmseyeBack}</td>
<td>${actor.neckToWaistBack}</td>
<td>${actor.centerBackToWrist}</td>
<td>${actor.outsleeveToWrist}</td>
<td>${actor.outseamBelowKnee}</td>
<td>${actor.outseamToAnkle}</td>
<td>${actor.outseamToFloor}</td>
<td>${actor.otherNotes}</td>
`;
tableBody.appendChild(row);
});
})
.catch((error) => console.error("Error fetching actor data:", error));
}
}
function processFilter() {
const filterValue = document.getElementById("filter-input").value;
fetch(`/actors/filterBy?value=${filterValue}`)
.then((res) => res.json())
.then((data) => {
const tableBody = document.getElementById(`actor-table-body`);
tableBody.innerHTML = "";
data.forEach((actor) => {
const row = document.createElement("tr");
row.innerHTML = `
<td class="sticky">
<a href="/student/loadpage?netID=${actor.netID}">
${actor.netID}
</a>
</td>
<td>${actor.yearsActingExperience}</td>
<td>${actor.skinTone}</td>
<td>${actor.piercings}</td>
<td>${actor.hairColor}</td>
<td>${actor.previousInjuries}</td>
<td>${actor.specialNotes}</td>
<td>${actor.height}</td>
<td>${actor.ringSize}</td>
<td>${actor.shoeSize}</td>
<td>${actor.headCirc}</td>
<td>${actor.neckBase}</td>
<td>${actor.chest}</td>
<td>${actor.waist}</td>
<td>${actor.highHip}</td>
<td>${actor.lowHip}</td>
<td>${actor.armseyeToArmseyeFront}</td>
<td>${actor.neckToWaistFront}</td>
<td>${actor.armseyeToArmseyeBack}</td>
<td>${actor.neckToWaistBack}</td>
<td>${actor.centerBackToWrist}</td>
<td>${actor.outsleeveToWrist}</td>
<td>${actor.outseamBelowKnee}</td>
<td>${actor.outseamToAnkle}</td>
<td>${actor.outseamToFloor}</td>
<td>${actor.otherNotes}</td>
`;
tableBody.appendChild(row);
});
});
}
function appendIfNotEmpty(formData, key, elementId) {
const val = document.getElementById(elementId).value;
if (val !== "") formData.append(key, val);
}
async function addActor() {
const formData = new URLSearchParams();
appendIfNotEmpty(formData, "netID", "netIDInput");
appendIfNotEmpty(formData, "skinTone", "skinTone");
appendIfNotEmpty(formData, "piercings", "piercings");
appendIfNotEmpty(formData, "hairColor", "hairColor");
appendIfNotEmpty(formData, "previousInjuries", "previousInjuries");
appendIfNotEmpty(formData, "specialNotes", "specialNotes");
appendIfNotEmpty(formData, "height", "height");
appendIfNotEmpty(formData, "ringSize", "ringSize");
appendIfNotEmpty(formData, "shoeSize", "shoeSize");
appendIfNotEmpty(formData, "headCirc", "headCirc");
appendIfNotEmpty(formData, "neckBase", "neckBase");
appendIfNotEmpty(formData, "chest", "chest");
appendIfNotEmpty(formData, "waist", "waist");
appendIfNotEmpty(formData, "highHip", "highHip");
appendIfNotEmpty(formData, "lowHip", "lowHip");
appendIfNotEmpty(formData, "armseyeToArmseyeFront", "armseyeToArmseyeFront");
appendIfNotEmpty(formData, "neckToWaistFront", "neckToWaistFront");
appendIfNotEmpty(formData, "armseyeToArmseyeBack", "armseyeToArmseyeBack");
appendIfNotEmpty(formData, "neckToWaistBack", "neckToWaistBack");
appendIfNotEmpty(formData, "centerBackToWrist", "centerBackToWrist");
appendIfNotEmpty(formData, "outsleeveToWrist", "outsleeveToWrist");
appendIfNotEmpty(formData, "outseamBelowKnee", "outseamBelowKnee");
appendIfNotEmpty(formData, "outseamToAnkle", "outseamToAnkle");
appendIfNotEmpty(formData, "outseamToFloor", "outseamToFloor");
appendIfNotEmpty(formData, "otherNotes", "otherNotes");
const response = await fetch("/actors/add", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: formData.toString(),
});
const text = await response.text();
if (response.ok) {
alert(text); // "Actor added successfully"
document.getElementById("add-actor-form").reset();
window.location.href = "/actors/loadpage";
} else {
alert("Error adding actor: " + text); // now you’ll see the actual error
}
if (response.ok) {
alert("Actor added successfully!");
document.getElementById("add-actor-form").reset();
window.location.href = "/actors/loadpage";
} else {
alert("Error adding actor.");
}
}
async function editActor(netID) {
const formData = new URLSearchParams();
// Integer field
const years = document.getElementById("yearsActingExperience").value.trim();
formData.append(
"yearsActingExperience",
years === "" ? null : parseInt(years)
);
// String fields
formData.append("skinTone", document.getElementById("skinTone").value);
formData.append("piercings", document.getElementById("piercings").value);
formData.append("hairColor", document.getElementById("hairColor").value);
formData.append(
"previousInjuries",
document.getElementById("previousInjuries").value
);
formData.append(
"specialNotes",
document.getElementById("specialNotes").value
);
formData.append("height", document.getElementById("height").value);
formData.append("ringSize", document.getElementById("ringSize").value);
formData.append("shoeSize", document.getElementById("shoeSize").value);
formData.append("headCirc", headCirc);
console.log(typeof headCirc + "balls");
formData.append("neckBase", neckBase);
formData.append("chest", chest);
formData.append("waist", waist);
formData.append("highHip", highHip);
formData.append("lowHip", lowHip);
formData.append("armseyeToArmseyeFront", armseyeToArmseyeFront);
formData.append("neckToWaistFront", neckToWaistFront);
formData.append("armseyeToArmseyeBack", armseyeToArmseyeBack);
formData.append("neckToWaistBack", neckToWaistBack);
formData.append("centerBackToWrist", centerBackToWrist);
formData.append("outsleeveToWrist", outsleeveToWrist);
formData.append("outseamBelowKnee", outseamBelowKnee);
formData.append("outseamToAnkle", outseamToAnkle);
formData.append("outseamToFloor", outseamToFloor);
formData.append("otherNotes", document.getElementById("otherNotes").value);
const response = await fetch(
`/actors/edit?netID=${encodeURIComponent(netID)}`,
{
method: "POST",
body: formData,
}
);
if (response.ok) {
alert("Actor edited successfully!");
window.location.href = "/actors/loadpage";
} else {
const text = await response.text();
alert("Error editing actor: " + text);
}
}
function handleNetIDDropdownActor(selectedValue, netID) {
if (!selectedValue) {
return;
}
if (selectedValue === "edit") {
window.location.href = `/actor/editPage?netID=${netID}`;
}
}