-/** 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;
var nummsgs = 0;
var startmsg = 0;
+var is_safe_mode = true;
+/* The following code is VERY evil! Hopefully the need for it will evaporate in the future.
+ We only want newer browsers with Javascript JIT's to use the newer message view, unless the user explicitly chooses new/safe view */
+function determineSafeMode() {
+ if (summary_view_pref == false) {
+ var userAgent = navigator.userAgent;
+ var gecko = userAgent.indexOf("Gecko/");
+ var opera = userAgent.indexOf("Presto/"); // check for rendering engine
+ var chrome = userAgent.indexOf("Chrome/");
+ var safari = userAgent.indexOf("Safari/");
+ var phone = userAgent.indexOf("Mobile");
+ if (phone > 0) {
+ is_safe_mode = true; /* Don't serve to mobiles */
+ } else if (gecko > 0) {
+ var version = userAgent.substring(gecko+6,gecko+15);
+ if (version > 20090600) {
+ is_safe_mode = false;
+ }
+ } else if (opera > 0) {
+ var prestoVersion = userAgent.substring(opera+7,opera+10);
+ if (prestoVersion >= 2.2) {
+ is_safe_mode = false;
+ }
+ } else if (chrome > 0) {
+ is_safe_mode = false;
+ } else if (safari > 0) {
+ var safariVersion = userAgent.substring(safari+7,safari+10);
+ if (safariVersion >= 525) {
+ is_safe_mode = false;
+ }
+ }
+ } else {
+ is_safe_mode = true;
+ }
+}
function createMessageView() {
+ determineSafeMode();
message_view = document.getElementById("message_list_body");
loadingMsg = document.getElementById("loading");
getMessages();
unmarkAllRows();
markedRowId = parent.ctdlRowId;
document.getElementById("preview_pane").innerHTML = "";
- new Ajax.Updater('preview_pane', 'msg/'+msgId+'?Mail=1', {method: 'get'});
+ 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)});
+ // If the shift key modifier is used, mark a range...
} else if (event.button != 2 && event.shiftKey) {
markRow(parent);
var rowId = parent.ctdlRowId;
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) {
currentSorterToggle.className = "";
}
}
-function markRow( row) {
+function markRow(row) {
var msgId = row.ctdlMsgId;
row.className = row.className += " marked_row";
row.ctdlMarked = true;