You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.9 KiB
121 lines
3.9 KiB
|
|
// Get the modal |
|
const modal = document.getElementById("myModal"); |
|
|
|
// Get the button that opens the modal |
|
const btn = document.getElementById("myBtn"); |
|
|
|
// Get the <span> element that closes the modal |
|
const span = document.getElementsByClassName("close")[0]; |
|
const mode = new URLSearchParams(window.location.search).get("mode"); |
|
|
|
const archiveLink = document.querySelector("#archive-link") |
|
const pendingLink = document.querySelector("#pending-link") |
|
const statusLink = document.querySelector("#status-link") |
|
|
|
function main() { |
|
archiveLink.classList.remove("active"); |
|
pendingLink.classList.remove("active"); |
|
statusLink.classList.remove("active"); |
|
switch (mode) { |
|
case "status": |
|
statusLink.classList.add("active"); |
|
return; |
|
case "pending": |
|
pendingLink.classList.add("active"); |
|
break; |
|
case "verifications": |
|
archiveLink.classList.add("active"); |
|
break; |
|
default: |
|
console.log("No mode"); |
|
mode = "verifications" |
|
archiveLink.classList.add("active"); |
|
break; |
|
} |
|
document.getElementById("main-app").innerHTML = ''; |
|
fetch(`https://thanos.nightmare.haus/api/${mode}`) |
|
.then(response => response.json()) |
|
.then(data => processData(data)); |
|
|
|
} |
|
|
|
function searchPage() { |
|
var search = document.getElementById("search-bar"); |
|
fetch('https://thanos.nightmare.haus/api/verifications') |
|
.then(response => response.json()) |
|
.then(data => { |
|
var searchData = []; |
|
for (user of data) { |
|
var match = false; |
|
|
|
if (user.Username.toLowerCase().includes(search.value.toLowerCase())) { |
|
match = true; |
|
} |
|
if (new Date(user.Closed).toLocaleString().includes(search.value)) { |
|
match = true; |
|
} |
|
if (user.UserID.includes(search.value)) { |
|
match = true; |
|
} |
|
if (match) { |
|
searchData.push(user); |
|
} |
|
} |
|
processData(searchData); |
|
}); |
|
} |
|
|
|
function processData(data) { |
|
document.getElementById("main-app").innerHTML = ''; |
|
if (data.length == 0) { |
|
alert("No data."); |
|
return; |
|
} |
|
data = Object.values(data); |
|
for (user of data) { |
|
var node = document.createElement("user-card"); |
|
var nameSlot = document.createElement("div"); |
|
nameSlot.setAttribute("slot", "username"); |
|
nameSlot.innerText = user.Username; |
|
node.appendChild(nameSlot); |
|
|
|
var joinDate = document.createElement("div"); |
|
joinDate.setAttribute("slot", "join-date"); |
|
joinDate.innerText = mode == "pending" ? new Date(user.Submitted).toLocaleString() : new Date(user.Closed).toLocaleString(); |
|
node.appendChild(joinDate); |
|
|
|
var discordSlot = document.createElement("div"); |
|
discordSlot.setAttribute("slot", "discord-id"); |
|
discordSlot.innerText = user.UserID; |
|
node.appendChild(discordSlot); |
|
|
|
var picSlot = document.createElement("div"); |
|
picSlot.setAttribute("slot", "pic-link"); |
|
var aNode = document.createElement("a"); |
|
|
|
aNode.setAttribute("href", mode == "pending" ? user.Photo : `https://thanos.nightmare.haus/${user.Photo}`); |
|
aNode.innerText = "Verification Photo"; |
|
|
|
picSlot.appendChild(aNode); |
|
node.appendChild(picSlot); |
|
document.getElementById("main-app").appendChild(node); |
|
} |
|
} |
|
|
|
// When the user clicks on <span> (x), close the modal |
|
span.onclick = function () { |
|
modal.style.display = "none"; |
|
} |
|
|
|
// When the user clicks anywhere outside of the modal, close it |
|
window.onclick = function (event) { |
|
if (event.target == modal) { |
|
modal.style.display = "none"; |
|
} |
|
} |
|
var form = document.getElementById("search-form"); |
|
function handleForm(event) { event.preventDefault(); } |
|
form.addEventListener('submit', handleForm); |
|
|
|
main(); |