}
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"))) {
if (can_delete_messages) {
outmsg +=
- "<span class=\"ctdl-msg-button\"><a href=\"#\">" // Delete (shown only with permission)
+ "<span class=\"ctdl-msg-button\">"
+ + "<a href=\"javascript:forum_delete_message('"+mdiv+"','"+msg.msgnum+"');\">"
+ "<i class=\"fa fa-trash\"></i> "
+ _("Delete")
+ "</a></span>";
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) {