Carry list of divs being moved in drag and drop
authorArt Cancro <ajc@citadel.org>
Fri, 7 Jul 2023 14:47:14 +0000 (05:47 -0900)
committerArt Cancro <ajc@citadel.org>
Fri, 7 Jul 2023 14:47:14 +0000 (05:47 -0900)
webcit-ng/static/js/mail_folder_list.js
webcit-ng/static/js/view_mail.js

index 309f7894604445c93216f3d568eef61e62f9b2b4..6647c03b263c77b274e99fa131ea8cf9740ce6cf 100644 (file)
@@ -81,8 +81,18 @@ function mail_folder_dragleave(event) {
 }
 
 
+// Something has been dropped onto a folder.
 function mail_folder_drop(event, destination_room) {
        event.preventDefault();
-       console.log("mail_folder_drop(" + destination_room + ")");
        event.target.classList.toggle("ctdl_mail_folder_droppable", false);
+       var msgs = event.dataTransfer.getData("text").split(",");
+       for (var i=0; i<msgs.length; ++i) {
+               mail_move(msgs[i], destination_room);
+       }
+}
+
+
+// mail_folder_drop() calls this function for each message being moved
+function mail_move(msgdiv, destination_room) {
+       console.log("mail_move() " + msgdiv + " to " + destination_room);
 }
index 407088d3e81dced99cc7458ab4bb50fd132cf1aa..33beeec36786daf779a89b5da11fc36eab9263ef 100644 (file)
@@ -85,18 +85,21 @@ function mail_dragstart(event) {
        var i;
        var count = 0;
        var table = document.getElementById("ctdl-onscreen-mailbox");
+       var messages_being_dragged = [] ;
 
        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;
+                               messages_being_dragged.push(row.id);
                        }
                }
        }
        else {
                // The row being dragged is NOT selected.  It will be dragged on its own, ignoring the selected rows.
                count = 1;
+               messages_being_dragged.push(event.target.id);
        }
 
        // FIXME tell the clipboard what's being moved.
@@ -105,7 +108,7 @@ function mail_dragstart(event) {
        d = document.getElementById("ctdl_draggo");
        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");
+       event.dataTransfer.setData("text", messages_being_dragged);
 }