deleteAllSelectedMessages(): don't send one request per message, citadel can handle...
authorWilfried Goesgens <dothebart@citadel.org>
Tue, 6 Sep 2011 18:46:53 +0000 (18:46 +0000)
committerWilfried Goesgens <dothebart@citadel.org>
Tue, 6 Sep 2011 18:46:53 +0000 (18:46 +0000)
  - this dramaticaly increases the performance of pressing the <del> key when having several messages selected; less stress on the browser, webcit and citserver.

webcit/static/summaryview.js

index 6b2f0ee05ab8586947dbbbf9e56eee3d7bcfdb64..280fe788551363d9a7153b1d8667a526be1b4f35 100644 (file)
@@ -408,26 +408,29 @@ function deleteAllMarkedRows() {
        msgs = newMsgs;
        resortAndDisplay(null);
 }
-
 function deleteAllSelectedMessages() {
-       var pa = "";
-       for(msgId in currentlyMarkedRows) {
-               if (!room_is_trash) {
-                       pa = encodeURI("g_cmd=MOVE " + msgId + "|_TRASH_|0");
-               }
-               else {
-                       pa = encodeURI("g_cmd=DELE " + msgId);
-               }
-               new Ajax.Request("ajax_servcmd", {
-                       parameters: pa,
-                       method: 'post',
-                       onSuccess: function(transport) {
-                               WCLog(transport.responseText);
-                       }
-               });
+    var mvCommand = "";
+    var msgIds = "";
+    for(msgId in currentlyMarkedRows) {
+       msgIds += ","+msgId;
+    }
+
+    if (!room_is_trash) {
+       mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|_TRASH_|0");
+    }
+    else {
+       mvCommand = encodeURI("g_cmd=DELE " + msgIds);
+    }
+    new Ajax.Request("ajax_servcmd", {
+       parameters: mvCommand,
+       method: 'post',
+       onSuccess: function(transport) {
+           WCLog(transport.responseText);
        }
-       document.getElementById("preview_pane").innerHTML = "";
-       deleteAllMarkedRows();
+    });
+
+    document.getElementById("preview_pane").innerHTML = "";
+    deleteAllMarkedRows();
 }
 
 function CtdlMessageListKeyUp(event) {