diff --git a/assets/js/ARBoard.js b/assets/js/ARBoard.js index e19b702..1ff1563 100644 --- a/assets/js/ARBoard.js +++ b/assets/js/ARBoard.js @@ -28,7 +28,6 @@ const loadAddRemoveAdminPage = async () => {

-

Existing Minter Admins

@@ -59,6 +58,13 @@ const loadAddRemoveAdminPage = async () => {

Existing Promotion/Demotion Proposals

+ diff --git a/assets/js/AdminBoard.js b/assets/js/AdminBoard.js index 375d83a..eb4f650 100644 --- a/assets/js/AdminBoard.js +++ b/assets/js/AdminBoard.js @@ -1067,7 +1067,7 @@ const checkAndDisplayRemoveActions = async (adminYes, name, cardIdentifier, name } else if ((minterAdmins) && (minterAdmins.length > 1) && isBlockPassed){ const totalAdmins = minterAdmins.length const fortyPercent = totalAdmins * 0.40 - minAdminCount = Math.round(fortyPercent) + minAdminCount = Math.ceil(fortyPercent) console.warn(`this is another check to ensure minterAdmin group has more than 1 admin. IF so we will calculate the 40% needed for GROUP_APPROVAL, that number is: ${minAdminCount}`) } if (isBlockPassed && (userState.isMinterAdmin || userState.isAdmin)) { @@ -1258,6 +1258,51 @@ const getNewestAdminCommentTimestamp = async (cardIdentifier) => { } } +// ADDED: A simple function to effectively 'delete' an Admin Board card +// by publishing an empty card with the same identifier and prefix +const deleteAdminCard = async (cardIdentifier) => { + try { + const confirmed = confirm("Are you sure you want to delete this card? This action cannot be undone.") + if (!confirmed) return + + // A minimal blank object + const blankData = { + header: "", + content: "", + links: [], + creator: userState.accountName, + timestamp: Date.now(), + poll: "" // or null. This ensures it won't appear as a valid poll card + } + + let base64Data = await objectToBase64(blankData) + if (!base64Data) { + base64Data = btoa(JSON.stringify(blankData)) + } + + const verifiedAdminPublicKeys = await fetchAdminGroupsMembersPublicKeys() + + await qortalRequest({ + action: "PUBLISH_QDN_RESOURCE", + name: userState.accountName, + service: "MAIL_PRIVATE", + identifier: cardIdentifier, + data64: base64Data, + encrypt: true, + publicKeys: verifiedAdminPublicKeys + }) + + alert("Your card has been effectively deleted.") + + // Now reload the existing Admin Board cards so the UI no longer shows the old card + await fetchAllEncryptedCards(true) + + } catch (error) { + console.error("Error deleting Admin card:", error) + alert("Failed to delete the card. Check console for details.") + } +} + // Create the overall Minter Card HTML ----------------------------------------------- const createEncryptedCardHTML = async (cardData, pollResults, cardIdentifier, commentCount) => { const { minterName, header, content, links, creator, timestamp, poll, topicMode } = cardData @@ -1329,9 +1374,9 @@ const createEncryptedCardHTML = async (cardData, pollResults, cardIdentifier, co const removeActionsHtml = verifiedAddress ? await checkAndDisplayRemoveActions(adminYes, verifiedAddress, cardIdentifier) : await checkAndDisplayRemoveActions(adminYes, verifiedName, cardIdentifier) showRemoveHtml = removeActionsHtml if (userVote === 0) { - cardColorCode = "rgba(1, 65, 39, 0.41)"; // or any green you want + cardColorCode = "rgba(1, 128, 20, 0.35)"; // or any green you want } else if (userVote === 1) { - cardColorCode = "rgba(55, 12, 12, 0.61)"; // or any red you want + cardColorCode = "rgba(124, 6, 6, 0.45)"; // or any red you want } if (banTransactions.some((banTx) => banTx.groupId === 694 && banTx.offender === accountAddress)){ @@ -1410,6 +1455,16 @@ const createEncryptedCardHTML = async (cardData, pollResults, cardIdentifier, co
+ ${creator === userState.accountName ? ` +
+ +
+ ` : ''} + ${creator === userState.accountName ? ` +
+ +
+ ` : ''} @@ -61,7 +65,7 @@ - Q-Mintership v1.04b
+ @@ -572,12 +576,12 @@
-

Q-Mintership (v1.04b)

+

- +
@@ -590,6 +594,12 @@
+