From e30c79bdaf10ef50b2d0151b35ffb61677d540b6 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 30 Jun 2022 13:56:30 -0400 Subject: [PATCH] Added the javascript logic to delete a message. This pretty much completes the forum module. --- webcit-ng/forum_view.c | 1 + webcit-ng/static/js/view_forum.js | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/webcit-ng/forum_view.c b/webcit-ng/forum_view.c index ca473f5bd..591e5fc55 100644 --- a/webcit-ng/forum_view.c +++ b/webcit-ng/forum_view.c @@ -41,6 +41,7 @@ void json_render_one_message(struct http_transaction *h, struct ctdlsession *c, } JsonValue *j = NewJsonObject(HKEY("message")); + JsonObjectAppend(j, NewJsonNumber(HKEY("msgnum"), msgnum)); while ((ctdl_readline(c, buf, sizeof(buf)) >= 0) && (strcmp(buf, "text")) && (strcmp(buf, "000"))) { diff --git a/webcit-ng/static/js/view_forum.js b/webcit-ng/static/js/view_forum.js index cfe9ac619..febf7f130 100644 --- a/webcit-ng/static/js/view_forum.js +++ b/webcit-ng/static/js/view_forum.js @@ -204,7 +204,8 @@ function forum_render_one(msg, existing_div) { if (can_delete_messages) { outmsg += - "" // Delete (shown only with permission) + "" + + "" + " " + _("Delete") + ""; @@ -253,6 +254,24 @@ function compose_references(references, msgid) { return refs; } +// Delete a message. +// We don't bother checking for permission because the button only appears if we have permission, +// and even if someone hacks the client, the server will deny any unauthorized deletes. +function forum_delete_message(message_div, message_number) { + if (confirm(_("Delete this message?")) == true) { + async_forum_delete_message = async() => { + response = await fetch( + "/ctdl/r/" + escapeHTMLURI(current_room) + "/" + message_number, + { method: "DELETE" } + ); + if (response.ok) { // If the server accepted the delete, blank out the message div. + document.getElementById(message_div).outerHTML = ""; + } + } + async_forum_delete_message(); + } +} + // Open a reply box directly below a specific message function open_reply_box(parent_div, is_quoted, references, msgid) { -- 2.39.2