]> code.citadel.org Git - citadel.git/blobdiff - webcit/static/summaryview.js
* Fixed a multiselect bug in the mailbox view. Ctrl-click was selecting a message...
[citadel.git] / webcit / static / summaryview.js
index 804ff2d279f8b2ff35a0cae40f6707b6b7734838..22c78ca2c4bd75c94a780eb31878eb0b7f8b0e88 100644 (file)
@@ -1,7 +1,10 @@
-/** Webcit Summary View v2
-    All comments, flowers and death threats to Mathew McBride
-    <matt@mcbridematt.dhs.org> / <matt@comalies>
-*/
+/**
+ * Webcit Summary View v2
+ *   All comments, flowers and death threats to Mathew McBride
+ *   <matt@mcbridematt.dhs.org> / <matt@comalies>
+ * Copyright 2009 The Citadel Team
+ * Licensed under the GPL V3
+ */
 document.observe("dom:loaded", createMessageView);
 
 var message_view = null;
@@ -77,7 +80,7 @@ roomName = getTextContent(document.getElementById("rmname"));
      var SortBy = currentSortMode[0];
      if (SortBy.charAt(0) == 'r') {
        SortBy = SortBy.substr(1);
-       parameters["SortOrder"] = "2";
+       parameters["SortOrder"] = "0";
      }
      parameters["SortBy"] = SortBy;
    }
@@ -158,7 +161,7 @@ function loadMessages(transport) {
   currentSorterToggle = toggles[sortmode];
   }
   if (!is_safe_mode) {
-  resortAndDisplay(sortRowsByDateDescending);
+  resortAndDisplay(currentSortMode[1]);
   } else {
     setupPageSelector();
     resortAndDisplay(null);
@@ -231,25 +234,25 @@ function sortRowsByDateDescending(a, b) {
 function sortRowsBySubjectAscending(a, b) {
   var subjectOne = getTextContent(a.getElementsByTagName("td")[0]).toLowerCase();
   var subjectTwo = getTextContent(b.getElementsByTagName("td")[0]).toLowerCase();
-  return (subjectOne.charCodeAt(0) - subjectTwo.charCodeAt(0));
+  return strcmp(subjectOne, subjectTwo);
 }
 
 function sortRowsBySubjectDescending(a, b) {
   var subjectOne = getTextContent(a.getElementsByTagName("td")[0]).toLowerCase();
   var subjectTwo = getTextContent(b.getElementsByTagName("td")[0]).toLowerCase();
-  return (subjectTwo.charCodeAt(0) - subjectOne.charCodeAt(0));
+  return strcmp(subjectTwo, subjectOne);
 }
 
 function sortRowsByFromAscending(a, b) {
   var fromOne = getTextContent(a.getElementsByTagName("td")[1]).toLowerCase();
   var fromTwo = getTextContent(b.getElementsByTagName("td")[1]).toLowerCase();
-  return (fromOne.charCodeAt(0) - fromTwo.charCodeAt(0));
+  return strcmp(fromOne, fromTwo);
 }
 
 function sortRowsByFromDescending(a, b) {
   var fromOne = getTextContent(a.getElementsByTagName("td")[1]).toLowerCase();
   var fromTwo = getTextContent(b.getElementsByTagName("td")[1]).toLowerCase();
-  return (fromTwo.charCodeAt(0) - fromOne.charCodeAt(0));
+  return strcmp(fromTwo, fromOne);
 }
 
 function CtdlMessageListClick(evt) {
@@ -269,6 +272,7 @@ function CtdlMessageListClick(evt) {
       method: 'post',
          parameters: 'g_cmd=SEEN ' + msgId + '|1',
          onComplete: CtdlMarkRowAsRead(parent)});
+  // If the shift key modifier is used, mark a range...
   } else if (event.button != 2 && event.shiftKey) {
     markRow(parent);
     var rowId = parent.ctdlRowId;
@@ -285,8 +289,14 @@ function CtdlMessageListClick(evt) {
       WCLog("Marking row "+x);
       markRow(rowArray[x]);
     }
+  // If the ctrl key modifier is used, toggle one message
   } else if (event.button != 2 && (event.ctrlKey || event.altKey)) {
-    markRow(parent);
+    if (parent.ctdlMarked == true) {
+      unmarkRow(parent);
+    }
+    else {
+      markRow(parent);
+    }
   }
 }
 function CtdlMarkRowAsRead(rowElement) {
@@ -335,7 +345,7 @@ function removeOldSortClass() {
     currentSorterToggle.className = "";
   }
 }
-function markRow( row) {
+function markRow(row) {
   var msgId = row.ctdlMsgId;
   row.className = row.className += " marked_row";
   row.ctdlMarked = true;