From ce5e4a78e6252f743f4e9f83140fe44e56d3a2fa Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 24 Jan 2009 08:42:14 +0000 Subject: [PATCH] * multi-select in webcit is back, apologies to those who had to wait for it. * alt-click does the same as ctdl-click, this is for Macs where ctrl is usually mapped to right mouse click * TODO: turn on key bindings as alternative + for internet exploder --- webcit/static/summaryview.js | 39 +++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/webcit/static/summaryview.js b/webcit/static/summaryview.js index 9aaa17b15..15a02df2c 100644 --- a/webcit/static/summaryview.js +++ b/webcit/static/summaryview.js @@ -16,6 +16,7 @@ var mlh_from = null; var currentSorterToggle = null; var query = ""; var currentlyMarkedRows = new Object(); +var markedRowId = null; var mouseDownEvent = null; var exitedMouseDown = false; @@ -137,7 +138,6 @@ function loadMessages(transport) { trElement.setAttribute("class", "new_message"); } trElement.dropEnabled = true; - trElement.ctdlRowId = i; trElement.ctdlMarked = false; rowArray[i] = trElement; } @@ -188,6 +188,7 @@ function resortAndDisplay(sortMode) { than prototype observe */ currentRow.onclick = CtdlMessageListClick; currentRow.ctdlDnDElement = summaryViewDragAndDropHandler; + currentRow.ctdlRowId = x; fragment.appendChild(currentRow); } catch (e) { alert("Exception" + e); @@ -242,17 +243,33 @@ function CtdlMessageListClick(evt) { var parent = target.parentNode; var msgId = parent.ctdlMsgId; // If the ctrl key modifier wasn't used, unmark all rows and load the message - if (!event.shiftKey && !event.ctrlKey) { + if (!event.shiftKey && !event.ctrlKey && !event.altKey) { unmarkAllRows(); + markedRowId = parent.ctdlRowId; new Ajax.Updater('preview_pane', 'msg/'+msgId, {method: 'get'}); markRow(parent); new Ajax.Request('ajax_servcmd', { method: 'post', parameters: 'g_cmd=SEEN ' + msgId + '|1', onComplete: CtdlMarkRowAsRead(parent)}); - } else if (event.button != 2) { + } else if (event.button != 2 && event.shiftKey) { + markRow(parent); + var rowId = parent.ctdlRowId; + var startMarkingFrom = 0; + var finish = 0; + if (rowId > markedRowId) { + startMarkingFrom = markedRowId+1; + finish = rowId; + } else if (rowId < markedRowId) { + startMarkingFrom = rowId+1; + finish = markedRowId; + } + for(var x = startMarkingFrom; x