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


Config


Admin Stats

`; 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);