From ab955f28684322c4b9959fb7d54292580c40bf9c Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Sat, 25 Jan 2025 01:08:26 -0500 Subject: [PATCH] add card deletion to Minter board --- assets/js/MinterBoard.js | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/assets/js/MinterBoard.js b/assets/js/MinterBoard.js index 45d0de0..49cb0b9 100644 --- a/assets/js/MinterBoard.js +++ b/assets/js/MinterBoard.js @@ -1810,6 +1810,47 @@ const getNewestCommentTimestamp = async (cardIdentifier) => { } } +// ADDED: A simple function to effectively 'delete' a Minter Board card +// by publishing an empty card with the same identifier and prefix +const deleteCard = async (cardIdentifier, prefix) => { + 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)); + } + + await qortalRequest({ + action: "PUBLISH_QDN_RESOURCE", + name: userState.accountName, + service: "BLOG_POST", + identifier: cardIdentifier, + data64: base64Data, + }); + + alert("Your card has been effectively deleted."); + + // Now reload the existing Minter Board cards so the UI no longer shows the old card + await loadCards(prefix); + + } catch (error) { + console.error("Error deleting Minter card:", error); + alert("Failed to delete the card. Check console for details."); + } +}; + // Create the overall Minter Card HTML ----------------------------------------------- const createCardHTML = async (cardData, pollResults, cardIdentifier, commentCount, cardUpdatedTime, bgColor, address) => { const { header, content, links, creator, timestamp, poll } = cardData @@ -1917,6 +1958,16 @@ const createCardHTML = async (cardData, pollResults, cardIdentifier, commentCoun + ${creator === userState.accountName ? ` +
+ +
+ ` : ''}