let currentMinterToolPage = 'overview'; // Track the current page // Load latest state for admin verification async function verifyMinterAdminState() { const minterGroupAdmins = await fetchMinterGroupAdmins(); return minterGroupAdmins.members.some(admin => admin.member === userState.accountAddress && admin.isAdmin); } document.addEventListener('DOMContentLoaded', async () => { const isAdmin = await verifyUserIsAdmin(); if (isAdmin) { console.log(`User is an Admin, buttons for MA Tools not removed. userState.isAdmin = ${userState.isMinterAdmin}`); } else { // Remove all "TOOLS" links and their related elements const toolsLinks = document.querySelectorAll('a[href="TOOLS"], a[href="DATA-BOARD"]'); toolsLinks.forEach(link => { // If the link is within a button, remove the button const buttonParent = link.closest('button'); if (buttonParent) { buttonParent.remove(); } // If the link is within an image card or any other element, remove that element const cardParent = link.closest('.item.features-image'); if (cardParent) { cardParent.remove(); } // Finally, remove the link itself if it's not covered by the above removals link.remove(); }); console.log(`User is NOT a Minter Admin, buttons for MA Tools removed. userState.isMinterAdmin = ${userState.isMinterAdmin}`); // Center the remaining card if it exists const remainingCard = document.querySelector('.features7 .row .item.features-image'); if (remainingCard) { remainingCard.classList.remove('col-lg-6', 'col-md-6'); remainingCard.classList.add('col-12', 'text-center'); } return; } // Add event listener for admin tools link if the user is an admin const toolsLinks = document.querySelectorAll('a[href="TOOLS"]'); toolsLinks.forEach(link => { link.addEventListener('click', async (event) => { event.preventDefault(); if (!userState.isLoggedIn) { await login(); } await loadMinterAdminToolsPage(); }); }); }); async function loadMinterAdminToolsPage() { // Remove all body content except for menu elements const bodyChildren = document.body.children; for (let i = bodyChildren.length - 1; i >= 0; i--) { const child = bodyChildren[i]; if (!child.classList.contains('menu')) { child.remove(); } } const avatarUrl = `/arbitrary/THUMBNAIL/${userState.accountName}/qortal_avatar`; // Set the background image directly from a file const mainContent = document.createElement('div'); mainContent.innerHTML = `

MINTER ADMIN TOOLS

Under Construction...

No Functionality Here Yet

This page is still under development. Until the final Mintership proposal modifications are made, and the MINTER group is transferred to null, there is no need for this page's functionality. The page will be updated when the final modifications are made.

This page until then is simply a placeholder.

`; document.body.appendChild(mainContent); addToolsPageEventListeners(); } function addToolsPageEventListeners() { document.getElementById("display-pending").addEventListener("click", async () => { await displayPendingApprovals(); }); document.getElementById("create-group-invite").addEventListener("click", async () => { createPendingGroupInvite(); }); document.getElementById("create-promotion").addEventListener("click", async () => { createPendingPromotion(); }); } // Fetch and display pending approvals async function displayPendingApprovals() { console.log("Fetching pending approval transactions..."); const response = await qortalRequest({ action: "SEARCH_TRANSACTIONS", txGroupId: 694, txType: [ "ADD_GROUP_ADMIN", "GROUP_INVITE" ], confirmationStatus: "UNCONFIRMED", limit: 0, offset: 0, reverse: false }); console.log("Fetched pending approvals: ", response); const toolsWindow = document.getElementById('tools-window'); if (response && response.length > 0) { toolsWindow.innerHTML = response.map(tx => `

Transaction Type: ${tx.type}

Amount: ${tx.amount}

Creator Address: ${tx.creatorAddress}

Recipient: ${tx.recipient}

Timestamp: ${new Date(tx.timestamp).toLocaleString()}

`).join(''); } else { toolsWindow.innerHTML = '

No pending approvals found.

'; } } // Placeholder function to create a pending group invite async function createPendingGroupInvite() { console.log("Creating a pending group invite..."); // Placeholder code for creating a pending group invite alert('Pending group invite created (placeholder).'); } // Placeholder function to create a pending promotion async function createPendingPromotion() { console.log("Creating a pending promotion..."); // Placeholder code for creating a pending promotion alert('Pending promotion created (placeholder).'); } // Placeholder function for approving a transaction function approveTransaction(signature) { console.log("Approving transaction with signature: ", signature); // Placeholder code for approving transaction alert(`Transaction with signature ${signature} approved (placeholder).`); }