From 224be6b10e75124024f1df99c3acb32c6f44c9d6 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 27 Jun 2023 20:45:50 -0400 Subject: [PATCH] view_mail.js: add helper function for select/deselect This will be used to add/remove drag handlers and to keep that code DRY. --- webcit-ng/static/js/view_mail.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/webcit-ng/static/js/view_mail.js b/webcit-ng/static/js/view_mail.js index 43c930aa8..656abbc7e 100644 --- a/webcit-ng/static/js/view_mail.js +++ b/webcit-ng/static/js/view_mail.js @@ -207,6 +207,18 @@ function mail_display_message(msgnum, target_div, include_controls) { } +// after select or de-select +function enable_or_disable_draggable(row) { + if (row.classList.contains("ctdl-mail-selected")) { + console.log(row.id + " selected"); + } + else { + console.log(row.id + " deselected"); + } +} + + + // A message has been selected... function click_message(event, msgnum) { var table = document.getElementById("ctdl-onscreen-mailbox"); @@ -215,11 +227,12 @@ function click_message(event, msgnum) { // ctrl + click = toggle an individual message without changing existing selection if (event.ctrlKey) { document.getElementById("ctdl-msgsum-" + msgnum).classList.toggle("ctdl-mail-selected"); + enable_or_disable_draggable(document.getElementById("ctdl-msgsum-" + msgnum)); } - // shift + click = select a range of messages + // shift + click = select a range of messages (start with row 1 because row 0 is the header) else if (event.shiftKey) { - for (i=0; row=table.rows[i]; ++i) { + for (i=1; row=table.rows[i]; ++i) { m = parseInt(row["id"].substring(12)); // derive msgnum from row id if ( ((msgnum >= displayed_message) && (m >= displayed_message) && (m <= msgnum)) @@ -230,18 +243,20 @@ function click_message(event, msgnum) { else { row.classList.remove("ctdl-mail-selected"); } + enable_or_disable_draggable(row); } } - // click + no modifiers = select one message and unselect all others + // click + no modifiers = select one message and unselect all others (start with row 1 because row 0 is the header) else { - for (i=0; row=table.rows[i]; ++i) { + for (i=1; row=table.rows[i]; ++i) { if (row["id"] == "ctdl-msgsum-" + msgnum) { row.classList.add("ctdl-mail-selected"); } else { row.classList.remove("ctdl-mail-selected"); } + enable_or_disable_draggable(row); } } @@ -258,7 +273,7 @@ function mail_render_row(msg, is_selected) { row = "" + "" + msg["subject"] + "" -- 2.39.2