AI-RESEARCHER-2024's picture
add app files
4ec2f9d verified
raw
history blame
5.77 kB
//this function processes the filter request and updates the table accordingly
function clearInput(elementId) {
document.getElementById(elementId).value = "";
}
function updatePlaceholder() {
const select = document.getElementById("filter-column");
const input = document.getElementById("filter-input");
const selectedLabel = select.options[select.selectedIndex].text;
// Update placeholder
input.placeholder = `Search by ${selectedLabel}`;
}
function findNetIDFromName(value, firstLastNet, page) {
return fetch(`/student/filterBy?column=${firstLastNet}&value=${value}`)
.then((res) => res.json())
.then((data) => {
const select = document.getElementById("student-select");
select.innerHTML = "";
const noneFound = document.createElement("option");
noneFound.innerHTML = "No students found";
data.forEach((student) => {
const option = document.createElement("option");
option.value = JSON.stringify({
netID: student.netID,
firstName: student.firstName,
lastName: student.lastName,
});
option.textContent = `${student.firstName} ${student.lastName} (${student.netID})`;
select.appendChild(option);
});
if (data.length > 0) {
document.getElementById(`add${page}Button`).disabled = false;
if (data.length > 4) {
select.size = 4; // limit size to 4 if more than 4 entries
} else {
select.size = data.length;
}
} else {
select.size = 0;
document.getElementById(`add${page}Button`).disabled = true;
select.appendChild(noneFound);
}
// Return number of matching entries
return data.length;
})
.catch((error) => {
console.error("Error fetching student data:", error);
return 0; // return 0 on error
});
}
function addSetNetID(selectElement, page) {
if (!selectElement.value) return;
const data = JSON.parse(selectElement.value);
findNetIDFromName(data.netID, "netID", page);
document.getElementById("firstName").value = data.firstName;
document.getElementById("lastName").value = data.lastName;
document.getElementById("netIDInput").value = data.netID;
}
function addEventListeners(page) {
document.getElementById("netIDInput").addEventListener("input", function () {
const netID = this.value.trim();
if (netID !== "") {
findNetIDFromName(netID, "netID", page);
document.getElementById("student-select").hidden = false;
}
else{
findNetIDFromName('', 'netID', 'Crew');
}
});
document.getElementById("firstName").addEventListener("input", function () {
const firstName = this.value.trim();
if (firstName !== "") {
findNetIDFromName(firstName, "firstName", page);
document.getElementById("student-select").hidden = false;
}
else{
findNetIDFromName('', 'netID', 'Crew');
}
});
document.getElementById("lastName").addEventListener("input", function () {
const lastName = this.value.trim();
if (lastName !== "") {
findNetIDFromName(lastName, "lastName", page);
document.getElementById("student-select").hidden = false;
}
else{
findNetIDFromName('', 'netID', 'Crew');
}
});
}
function searchByShowAtt(searchBy, searchValue, page) {
return fetch(`/shows/getShowIDName?searchBy=${searchBy}&searchValue=${searchValue}`)
.then((res) => res.json())
.then((data) => {
const select = document.getElementById("show-select");
select.innerHTML = "";
const noneFound = document.createElement("option");
noneFound.innerHTML = "No shows found";
data.forEach((show) => {
const option = document.createElement("option");
option.value = JSON.stringify({
showID: show.showID,
showName: show.showName,
yearSemester: show.yearSemester,
});
document.getElementById("showID").value=show.showID;
option.textContent = `${show.showName} (${show.yearSemester})`;
select.appendChild(option);
});
if (data.length > 0) {
document.getElementById(`add${page}Button`).disabled = false;
if (data.length > 4) {
select.size = 4;
} else {
select.size = data.length;
}
} else {
console.log("penisballs");
select.size = 0;
document.getElementById(`add${page}Button`).disabled = true;
select.appendChild(noneFound);
}
return data.length;
})
.catch((error) => {
console.error("Error fetching show data:", error);
return 0;
});
}
function addShowEventListeners(page) {
document.getElementById("showName").addEventListener("input", function () {
const selectedOption = this.value.trim();
if (selectedOption !== "") {
searchByShowAtt("showName", selectedOption, page);
document.getElementById("show-select").hidden = false;
}
});
document.getElementById("yearSemester").addEventListener("input", function () {
const selectedOption = this.value.trim();
if (selectedOption !== "") {
searchByShowAtt("yearSemester", selectedOption, page);
document.getElementById("show-select").hidden = false;
}
});
}
function addSetShow(selectElement, page){
if (!selectElement.value) return;
const data = JSON.parse(selectElement.value);
searchByShowAtt("showName", data.showName, page)
document.getElementById("showName").value = data.showName;
document.getElementById("yearSemester").value= data.yearSemester;
}