Implement all calling functionality for Delete
authorArt Cancro <ajc@citadel.org>
Wed, 28 Dec 2022 03:19:19 +0000 (22:19 -0500)
committerArt Cancro <ajc@citadel.org>
Wed, 28 Dec 2022 03:19:19 +0000 (22:19 -0500)
Basically everything except the actual code to delete messages.
Keyboard delete, mouse delete, and multi select are all working.

webcit-ng/static/index.html
webcit-ng/static/js/view_mail.js
webcit-ng/static/js/views.js

index 0fc788fb9b4e92f52b61e3cad8a8f1b18d43ad7f..7c49ed90da7b7ea82976d349222f9abbaa4fbf0b 100644 (file)
@@ -33,6 +33,7 @@
                                <li><button id="ctdl-ungoto-button" style="display:none" onClick="gotonext(0);">ungoto</button></li>
                                <li><button id="ctdl-skip-button" style="display:none" onClick="gotonext(1);">skip</button></li>
                                <li><button id="ctdl-goto-button" style="display:none" onClick="gotonext(2);">goto</button></li>
+                               <li><button id="ctdl-delete-button" style="display:none" onClick="delete_dispatcher(2);">delete</button></li>
                        </div>
                        <div id="ctdl-banner-right" class="ctdl-banner-right">
                                <li><button id="lilo">Login</button></li>
index 5312fe09bb40786d30bffc678b631ab623363c07..fe63b39c6dc7637eb2de81ea146c378fccea627b 100644 (file)
@@ -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 = "<i class=\"fa fa-edit\"></i>" + _("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 = "<i class=\"fa fa-trash\"></i>" + _("Delete");
+               d.style.display = "block";
+               d.addEventListener("click", mail_delete_selected);
+       }
+
        document.getElementById("ctdl-main").innerHTML
                = "<div id=\"ctdl-mailbox-grid-container\" class=\"ctdl-mailbox-grid-container\">"
                + "<div id=\"ctdl-mailbox-pane\" class=\"ctdl-mailbox-pane\"></div>"
index f3cb58e030dd52569fa64f1439b23cb09d089f1f..e3896dd302b7ae863c3cdba859d570cc6d9efb73 100644 (file)
@@ -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";
        }