const basicCard = document.createElement('basic-card');
const configStatus = document.createElement('status');
const style = `
`;
basicCard.innerHTML = `
${style}
`;
configStatus.innerHTML = `
${style}
Status
Uptime:
Last Bump was
by
`;
class ConfigStatusClass extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
this.shadowRoot.appendChild(configStatus.cloneNode(true));
}
async setData(data) {
this.shadowRoot.querySelector("#submitchanges").addEventListener('submit', handleForm);
this.shadowRoot.querySelector("#Guild").value = data.GuildID;
this.shadowRoot.querySelector("#AdminChannel").value = data.AdminChannel;
this.shadowRoot.querySelector("#AdminRole").value = data.AdminRole;
this.shadowRoot.querySelector("#MonitorChannel").value = data.MonitorChann;
this.shadowRoot.querySelector("#MonitorRole").value = data.MonitorRole;
this.shadowRoot.querySelector("#IntroChannel").value = data.IntroChann;
this.shadowRoot.querySelector("#VerifiedRole").value = data.VerifiedRole;
this.shadowRoot.querySelector("#OutFile").value = data.LogOpts.OutFile;
this.shadowRoot.querySelector("#KBTeam").value = data.LogOpts.KBTeam;
this.shadowRoot.querySelector("#KBChann").value = data.LogOpts.KBChann;
this.shadowRoot.querySelector("#Level").value = data.LogOpts.Level;
this.shadowRoot.querySelector("#ProgName").value = data.LogOpts.ProgName;
this.shadowRoot.querySelector("#UseStdout").checked = data.LogOpts.UseStdout == "true";
fetch('https://thanos.nightmare.haus/api/user?userID=' + data.LastBumper)
.then(response => response.json())
.then(userData => {
this.shadowRoot.querySelector("#lastbumper").innerHTML = userData.user.username;
});
this.loadStats(data.Stats)
}
async loadStats(data) {
var shadowRoot = this.shadowRoot;
Object.keys(data).forEach(function(uid) {
var score = data[uid];
fetch('https://thanos.nightmare.haus/api/user?userID=' + uid)
.then(response => response.json())
.then(userData => {
var stats = shadowRoot.querySelector("#admin-stats");
var userName = document.createElement("p");
userName.innerText = userData.user.username + ": " + score;
stats.appendChild(userName);
});
})
}
}
class UserCard extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
this.shadowRoot.appendChild(basicCard.cloneNode(true));
}
connectedCallback() {
this.shadowRoot.querySelector('#card-container').addEventListener('click', () => this.showModal());
}
showModal() {
const userID = this.shadowRoot.querySelector('#discord-id').assignedNodes()[0].textContent;
const userPic = this.shadowRoot.querySelector("#pic-link").assignedNodes()[0].querySelector("a").getAttribute("href");
fetch('https://thanos.nightmare.haus/api/user?userID=' + userID)
.then(response => response.json())
.then(data => {
if (data === undefined || data === null) {
alert("User not found.");
return;
}
document.querySelector("#myModal").style.display = "block";
document.querySelector('#modal-join').textContent = new Date(data.joined_at).toLocaleString();
document.querySelector('#modal-userID').textContent = data.user.username;
document.querySelector('#modal-avatar').src = `https://cdn.discordapp.com/avatars/${data.user.id}/${data.user.avatar}.png?size=256`;
document.querySelector('#modal-verification').src = userPic;
document.querySelector('#modal-verification').style = "max-height: 500px;";
});
}
}
window.customElements.define('user-card', UserCard);
window.customElements.define('config-status', ConfigStatusClass);