X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fstatic%2Fsummaryview.js;h=1e1e2d94eab5a93f77d30852bdb17c9f9dbc3251;hb=c6889faed3a574a598a6609fdf7553c9c7c29317;hp=a377760191ef1447d7e87a4a93573853856cad94;hpb=ac705a1b9f980154551ffa13084a5b9b2742a39b;p=citadel.git diff --git a/webcit/static/summaryview.js b/webcit/static/summaryview.js index a37776019..1e1e2d94e 100644 --- a/webcit/static/summaryview.js +++ b/webcit/static/summaryview.js @@ -225,7 +225,7 @@ function resortAndDisplay(sortMode) { var compile = compiled.join(""); start = new Date(); $(message_view_parent).update(compile); - message_view_parent.onclick = CtdlMessageListClick; + message_view_parent.observe('click', CtdlMessageListClick); message_view = message_view_parent.firstChild; end = new Date(); var delta = end.getTime() - start.getTime(); @@ -269,8 +269,24 @@ function CtdlMessageListClick(evt) { var target = event.target ? event.target: event.srcElement; // and again.. var parent = target.parentNode; var msgId = parent.getAttribute("citadel:msgid"); + var is_shift_pressed = event.shiftKey; + var is_ctrl_pressed = event.ctrlKey; + +/* debugging + str = '.'; + if (is_shift_pressed) { + str = str + 'S'; + } + str = str + '.'; + if (is_ctrl_pressed) { + str = str + 'C'; + } + str = str + '.'; + $('ib_summary').innerHTML = str; +*/ + // If the ctrl key modifier wasn't used, unmark all rows and load the message - if (!event.shiftKey && !event.ctrlKey && !event.altKey) { + if (!is_shift_pressed && !is_ctrl_pressed) { previousFinish = 0; markedFrom = 0; unmarkAllRows(); @@ -286,7 +302,7 @@ function CtdlMessageListClick(evt) { onComplete: CtdlMarkRowAsRead(parent) }); // If the shift key modifier is used, mark a range... - } else if (event.button != 2 && event.shiftKey) { + } else if (event.button != 2 && is_shift_pressed) { if (originalMarkedRow == null) { originalMarkedRow = parent; markRow(parent); @@ -315,7 +331,7 @@ function CtdlMessageListClick(evt) { markRow(parent.parentNode.rows[x]); } // If the ctrl key modifier is used, toggle one message - } else if (event.button != 2 && (event.ctrlKey || event.altKey)) { + } else if (event.button != 2 && is_ctrl_pressed) { if (parent.getAttribute("citadel:marked")) { unmarkRow(parent); } @@ -364,10 +380,10 @@ function getSortMode(toggleElem) { function removeOldSortClass() { if (currentSorterToggle) { var classes = currentSorterToggle.className; - /* classes = classes.replace("current_sort_mode",""); - classes = classes.replace("sort_ascending",""); - classes = classes.replace("sort_descending",""); */ - currentSorterToggle.className = ""; + classes = classes.replace("current_sort_mode",""); + classes = classes.replace("sort_ascending",""); + classes = classes.replace("sort_descending",""); + currentSorterToggle.className = classes; } } function markRow(row) { @@ -408,31 +424,53 @@ 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); + var mvCommand = ""; + var msgIds = ""; + for(msgId in currentlyMarkedRows) { + msgIds += ","+msgId; + + if (msgIds.length > 800) { + 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); } - new Ajax.Request("ajax_servcmd", { - parameters: pa, - method: 'post', - onSuccess: function(transport) { - WCLog(transport.responseText); - } - }); + }); + msgIds = ""; + } + } + + 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) { - var key = event.which; - if (key == 46) { // DELETE + var key = event.which || event.keyCode; + + if (key == 46) { /* DELETE */ deleteAllSelectedMessages(); } }