var mouseDownEvent = null;
var exitedMouseDown = false;
+var is_shift_pressed = false;
+var is_ctrl_pressed = false;
+
var originalMarkedRow = null;
var previousFinish = 0;
var markedFrom = 0;
mlh_date.observe('click',ApplySort);
mlh_subject.observe('click',ApplySort);
mlh_from.observe('click',ApplySort);
+ $(document).observe('keydown',CtdlMessageListKeyDown,false);
$(document).observe('keyup',CtdlMessageListKeyUp,false);
$('resize_msglist').observe('mousedown', CtdlResizeMouseDown);
$('m_refresh').observe('click', getMessages);
document.getElementById('m_refresh').setAttribute("href","#");
+ Event.observe(document.onresize ? document : window, "resize", normalizeHeaderTable);
Event.observe(document.onresize ? document : window, "resize", sizePreviewPane);
- $('summpage').observe('change', getPage);
+ if ( $('summpage') ) {
+ $('summpage').observe('change', getPage);
+ }
+ else {
+ alert('error: summpage does not exist');
+ }
takeOverSearchOMatic();
setupDragDrop(); // here for now
}
var delta = end.getTime() - start.getTime();
WCLog("append: " + delta);
ApplySorterToggle();
+ normalizeHeaderTable();
}
function sortRowsByDateAscending(a, b) {
var dateOne = a[3];
var parent = target.parentNode;
var msgId = parent.getAttribute("citadel:msgid");
// 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();
document.getElementById("preview_pane").innerHTML = "";
new Ajax.Updater('preview_pane', 'msg/'+msgId, {method: 'get'});
markRow(parent);
+ var p = encodeURI('g_cmd=SEEN ' + msgId + '|1');
new Ajax.Request('ajax_servcmd', {
method: 'post',
- parameters: 'g_cmd=SEEN ' + msgId + '|1',
- onComplete: CtdlMarkRowAsRead(parent)});
+ parameters: p,
+ 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);
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);
}
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) {
msgs = newMsgs;
resortAndDisplay(null);
}
-
function deleteAllSelectedMessages() {
- for(msgId in currentlyMarkedRows) {
- if (!room_is_trash) {
- new Ajax.Request('ajax_servcmd',
- {method: 'post',
- parameters: 'g_cmd=MOVE ' + msgId + '|_TRASH_|0'
- });
- } else {
- new Ajax.Request('ajax_servcmd', {method: 'post',
- parameters: '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);
}
+ });
+ 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();
+}
+
+function CtdlMessageListKeyDown(event) {
+ var key = event.which || event.keyCode;
+
+ if (key == 16) { /* SHIFT */
+ is_shift_pressed = true;
+ $('ib_summary').innerHTML = 'SHIFT';
+ }
+ else if ( (key == 17) || (key == 18) ) { /* CTRL or ALT */
+ $('ib_summary').innerHTML = 'CTRL';
+ is_ctrl_pressed = true;
}
- 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 == 16) { /* SHIFT */
+ is_shift_pressed = false;
+ $('ib_summary').innerHTML = ' ';
+ }
+ else if ( (key == 17) || (key == 18) ) { /* CTRL or ALT */
+ is_ctrl_pressed = false;
+ $('ib_summary').innerHTML = ' ';
+ }
+ else if (key == 46) { /* DELETE */
deleteAllSelectedMessages();
}
}
var heightOfViewPort = document.viewport.getHeight() // prototypejs method
var bannerHeight = banner.offsetHeight;
var contentViewPortHeight = heightOfViewPort-banner.offsetHeight-message_list_hdr.offsetHeight;
- contentViewPortHeight = 0.98 * contentViewPortHeight; // leave some error
+ contentViewPortHeight = 0.95 * contentViewPortHeight; // leave some error (especially for FF3!!)
// Set summary_view to 20%;
var summary_height = ctdlLocalPrefs.readPref("svheight");
if (summary_height == null) {
}
currentSorterToggle.className = className;
}
+
+/* Hack to make the header table line up with the data */
+function normalizeHeaderTable() {
+ var message_list_hdr = document.getElementById("message_list_hdr");
+ var summary_view = document.getElementById("summary_view");
+ var resize_msglist = document.getElementById("resize_msglist");
+ var headerTable = message_list_hdr.getElementsByTagName("table")[0];
+ var dataTable = summary_view.getElementsByTagName("table")[0];
+ var dataTableWidth = dataTable.offsetWidth;
+ headerTable.style.width = dataTableWidth+"px";
+}
+
function setupPageSelector() {
var summpage = document.getElementById("summpage");
var select_page = document.getElementById("selectpage");
summpage.appendChild(opt);
}
}
+
function getPage(event) {
var target = event.target;
startmsg = target.options.item(target.selectedIndex).value;
//query = ""; // We are getting a page from the _entire_ msg list, don't query
getMessages();
}
+
function takeOverSearchOMatic() {
var searchForm = document.getElementById("searchomatic").getElementsByTagName("form")[0];
// First disable the form post