From 55099b989e4346326b340664eeca57876a2123ea Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 21 Jul 2009 03:46:26 +0000 Subject: [PATCH] * Back out previous 'safe view default' * mailbox now MANY times faster --- webcit/static/summaryview.js | 218 +++++++++++------------------- webcit/static/t/msg_listview.html | 2 +- 2 files changed, 79 insertions(+), 141 deletions(-) diff --git a/webcit/static/summaryview.js b/webcit/static/summaryview.js index 8ef7799c9..eb9e2ebe1 100644 --- a/webcit/static/summaryview.js +++ b/webcit/static/summaryview.js @@ -7,6 +7,7 @@ */ document.observe("dom:loaded", createMessageView); +var msgs = null; var message_view = null; var loadingMsg = null; var rowArray = null; @@ -24,11 +25,19 @@ var markedRowId = null; var mouseDownEvent = null; var exitedMouseDown = false; +var trTemplate = new Array(11); +trTemplate[0] = ""; +trTemplate[8] = ""; +trTemplate[10] = ""; +trTemplate[12] = ""; + var currentPage = 0; var sortModes = { "rdate" : sortRowsByDateDescending, "date" : sortRowsByDateAscending, - // "reverse" : sortRowsByDateDescending, "subj" : sortRowsBySubjectAscending, "rsubj" : sortRowsBySubjectDescending, "sender": sortRowsByFromAscending, @@ -38,43 +47,8 @@ var toggles = {}; 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(); @@ -83,7 +57,6 @@ function createMessageView() { mlh_from = $('mlh_from'); toggles["rdate"] = mlh_date; toggles["date"] = mlh_date; - // toggles["reverse"] = mlh_date; toggles["subj"] = mlh_subject; toggles["rsubj"] = mlh_subject; toggles["sender"] = mlh_from; @@ -92,7 +65,6 @@ function createMessageView() { mlh_subject.observe('click',ApplySort); mlh_from.observe('click',ApplySort); $(document).observe('keyup',CtdlMessageListKeyUp,false); - //window.oncontextmenu = function() { return false; }; $('resize_msglist').observe('mousedown', CtdlResizeMouseDown); $('m_refresh').observe('click', getMessages); document.getElementById('m_refresh').setAttribute("href","#"); @@ -110,7 +82,7 @@ function getMessages() { roomName = getTextContent(document.getElementById("rmname")); var parameters = {'room':roomName, 'startmsg': startmsg, 'stopmsg': -1}; if (is_safe_mode) { - parameters['stopmsg'] = parseInt(startmsg)+500; + parameters['stopmsg'] = parseInt(startmsg)+499; //parameters['maxmsgs'] = 500; if (currentSortMode != null) { var SortBy = currentSortMode[0]; @@ -133,59 +105,24 @@ new Ajax.Request("roommsgs", { onFailure: function(e) { alert("Failure: " + e);} }); } +function evalJSON(data) { + if (typeof(JSON) === 'object' && typeof(JSON.parse) === 'function') { + return JSON.parse(data); + } else { + return eval('('+data+')'); + } +} function loadMessages(transport) { try { - var data = eval('('+transport.responseText+')'); + var data = evalJSON(transport.responseText); if (!!data && transport.responseText.length < 2) { alert("Message loading failed"); } nummsgs = data['nummsgs']; - var msgs = data['msgs']; + msgs = data['msgs']; var length = msgs.length; - rowArray = new Array(); // store so they can be sorted + rowArray = new Array(length); // store so they can be sorted WCLog("Row array length: "+rowArray.length); - var start = new Date(); - for(var i=0; i"; for(var x=0; x -- 2.30.2