]> err.no Git - scalable-opengroupware.org/commitdiff
added support for bulk deletes
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 20 Jul 2005 15:39:06 +0000 (15:39 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 20 Jul 2005 15:39:06 +0000 (15:39 +0000)
use POST for AJAX modification ops

git-svn-id: http://svn.opengroupware.org/SOGo/trunk@854 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/WebServerResources/ChangeLog
SOGo/UI/WebServerResources/mailer.js

index f310a951bc72fbb3da3736900a020b009d339b43..85a91b9657e32f88dc21026c4a547d45887cd1fe 100644 (file)
@@ -1,5 +1,9 @@
 2005-07-20  Helge Hess  <helge.hess@opengroupware.org>
 
+       * mailer.js: use POST instead of GET for toggling the mail read flag,
+         aded uixDeleteSelectedMessages() function to bulk delete mails from
+         the selection
+
        * UIxAppointmentEditor.js: properly use getDate() instead of getDay()
          for date comparison (#1478)
 
index 049e78c045c4931e041d7dcdec65865f9f90946c..3c8c66459f7390e076209c21bb0ca00bf67df3c3 100644 (file)
@@ -253,8 +253,11 @@ function openMessageWindowsForSelection(sender, action) {
   var rows  = collectSelectedRows();
   var idset = "";
   
-  for (var i = 0; i < rows.length; i++)
-    win = openMessageWindow(sender, rows[i], rows[i] + "/" + action);
+  for (var i = 0; i < rows.length; i++) {
+    win = openMessageWindow(sender, 
+                           rows[i]                /* msguid */,
+                           rows[i] + "/" + action /* url */);
+  }
 }
 
 function mailListMarkMessage(sender, action, msguid, markread) {
@@ -265,7 +268,7 @@ function mailListMarkMessage(sender, action, msguid, markread) {
 
   if (http) {
     // TODO: add parameter to signal that we are only interested in OK
-    http.open("GET", url + "&jsonly=1", false);
+    http.open("POST", url + "&jsonly=1", false /* not async */);
     http.send(null);
     if (http.status != 200) {
       // TODO: refresh page?
@@ -312,6 +315,7 @@ function ctxFolderAdd(sender) {
   if (folderName == "")
     return false;
   
+  // TODO: should use a form-POST or AJAX
   window.location.href = "createFolder?name=" + escape(folderName);
   return false;
 }
@@ -320,6 +324,46 @@ function ctxFolderDelete(sender) {
   if (!confirm("Delete current folder?"))
     return false;
   
+  // TODO: should use a form-POST or AJAX
   window.location.href = "deleteFolder";
   return false;
 }
+
+/* bulk delete of messages */
+
+function uixDeleteSelectedMessages(sender) {
+  var rows;
+  var failCount = 0;
+  
+  rows = collectSelectedRows();
+  for (var i = 0; i < rows.length; i++) {
+    var url, http, rowElem;
+    
+    /* send AJAX request (synchronously) */
+    
+    url = "" + rows[i] + "/trash?jsonly=1";
+    
+    http = createHTTPClient();
+    http.open("POST", url, false /* not async */);
+    http.send(null);
+    if (http.status != 200) { /* request failed */
+      failCount++;
+      http = null;
+      continue;
+    }
+    http = null;
+
+    /* remove from page */
+
+    /* line-through would be nicer, but hiding is OK too */
+    rowElem = document.getElementById("row_" + rows[i]);
+    rowElem.style.display = "none";
+    
+  }
+  
+  if (failCount > 0)
+    alert("Could not delete " + failCount + " messages!");
+  
+  window.location.reload();
+  return false;
+}