From 3a7b2cbc98d70db32bfda2b33d3d13a1a678e343 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 27 Dec 2022 22:19:19 -0500 Subject: [PATCH] Implement all calling functionality for Delete Basically everything except the actual code to delete messages. Keyboard delete, mouse delete, and multi select are all working. --- webcit-ng/static/index.html | 1 + webcit-ng/static/js/view_mail.js | 24 ++++++++++++++++++++++-- webcit-ng/static/js/views.js | 2 +- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/webcit-ng/static/index.html b/webcit-ng/static/index.html index 0fc788fb9..7c49ed90d 100644 --- a/webcit-ng/static/index.html +++ b/webcit-ng/static/index.html @@ -33,6 +33,7 @@
  • +
  • diff --git a/webcit-ng/static/js/view_mail.js b/webcit-ng/static/js/view_mail.js index 5312fe09b..fe63b39c6 100644 --- a/webcit-ng/static/js/view_mail.js +++ b/webcit-ng/static/js/view_mail.js @@ -15,6 +15,18 @@ var newmail_notify = { }; +// Delete the selected messages (can be activated by mouse click or keypress) +function mail_delete_selected() { + var table = document.getElementById("ctdl-onscreen-mailbox"); + var i, m, row; + for (i=0; row=table.rows[i]; ++i) { + if (row.classList.contains("ctdl-mail-selected")) { + console.log("delete " + row["id"]); + } + } +} + + // Handler function for keypresses detected while the mail view is displayed. Mainly for deleting messages. function mail_keypress(event) { @@ -30,7 +42,7 @@ function mail_keypress(event) { const key = event.key.toLowerCase(); if (key == "delete") { - console.log("delete key was pressed (FIXME do something with this)"); + mail_delete_selected(); } } @@ -228,10 +240,18 @@ function mail_render_row(msg, is_selected) { // RENDERER FOR THIS VIEW function view_render_mail() { - // Put the "enter new message" button into the sidebar + // Put the "enter new message" button into the topbar document.getElementById("ctdl-newmsg-button").innerHTML = "" + _("Write mail"); document.getElementById("ctdl-newmsg-button").style.display = "block"; + // Put the "delete message(s)" button into the topbar + if (can_delete_messages) { + let d = document.getElementById("ctdl-delete-button"); + d.innerHTML = "" + _("Delete"); + d.style.display = "block"; + d.addEventListener("click", mail_delete_selected); + } + document.getElementById("ctdl-main").innerHTML = "
    " + "
    " diff --git a/webcit-ng/static/js/views.js b/webcit-ng/static/js/views.js index f3cb58e03..e3896dd30 100644 --- a/webcit-ng/static/js/views.js +++ b/webcit-ng/static/js/views.js @@ -21,7 +21,7 @@ function clear_sidebar_selection() { function render_room_view() { // The view renderer will set its own room navigation buttons - for (const d of ["ctdl-newmsg-button", "ctdl-ungoto-button", "ctdl-skip-button", "ctdl-goto-button"]) { + for (const d of ["ctdl-newmsg-button", "ctdl-ungoto-button", "ctdl-skip-button", "ctdl-goto-button", "ctdl-delete-button"]) { document.getElementById(d).style.display = "none"; } -- 2.39.2