var count = 0;
var table = document.getElementById("ctdl-onscreen-mailbox");
- // Figure out how many messages are being dragged
- for (i=1; row=table.rows[i]; ++i) {
- if (row.classList.contains("ctdl-mail-selected")) {
- count = count + 1;
+ if (event.target.classList.contains("ctdl-mail-selected")) {
+ // The row being dragged IS selected. See if any OTHER rows are selected, and they will come along for the ride.
+ for (i=1; row=table.rows[i]; ++i) {
+ if (row.classList.contains("ctdl-mail-selected")) {
+ count = count + 1;
+ }
}
}
+ else {
+ // The row being dragged is NOT selected. It will be dragged on its own, ignoring the selected rows.
+ count = 1;
+ }
+
+ // FIXME tell the clipboard what's being moved.
// Set the custom drag image to an envelope + number of messages being dragged
d = document.getElementById("ctdl_draggo");
- d.innerHTML = "<font size='+3'><i class='fa fa-envelope' style='color: red'></i> " + count + "</font>"
+ d.innerHTML = "<font size='+2'><i class='fa fa-envelope' style='color: red'></i> " + count + "</font>"
event.dataTransfer.setDragImage(d, 0, 0);
event.dataTransfer.setData("text/html", "blah blah blah");
}
}
-// after a message is selected or deselected, we call this to set or clear the drag handler.
-function enable_or_disable_draggable(row) {
- if (row.classList.contains("ctdl-mail-selected")) {
- row.draggable = "true"
- row.addEventListener("dragstart", mail_dragstart);
- }
- else {
- row.draggable = "false"
- row.removeEventListener("dragstart", mail_dragstart);
- }
-}
-
-
-
// A message has been selected...
function click_message(event, msgnum) {
var table = document.getElementById("ctdl-onscreen-mailbox");
// 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 (start with row 1 because row 0 is the header)
else {
row.classList.remove("ctdl-mail-selected");
}
- enable_or_disable_draggable(row);
}
}
else {
row.classList.remove("ctdl-mail-selected");
}
- enable_or_disable_draggable(row);
}
}
+ "id=\"ctdl-msgsum-" + msg["msgnum"] + "\" "
+ (is_selected ? "class=\"ctdl-mail-selected\" " : "")
+ "onClick=\"click_message(event," + msg["msgnum"] + ");\""
- + "onselectstart=\"return false;\""
+ + "onselectstart=\"return false;\" "
+ + "draggable=\"true\" "
+ + "ondragstart=\"mail_dragstart(event)\" "
+ ">"
+ "<td class=\"ctdl-mail-subject\">" + msg["subject"] + "</td>"
+ "<td class=\"ctdl-mail-sender\">" + msg["author"] + "</td>"