* Give newer, faster browsers the full at-once listview experience, older versions...
authorMatt <matt@uncensored.citadel.org>
Sat, 18 Jul 2009 01:49:26 +0000 (01:49 +0000)
committerMatt <matt@uncensored.citadel.org>
Sat, 18 Jul 2009 01:49:26 +0000 (01:49 +0000)
webcit/static/summaryview.js
webcit/static/t/msg_listview.html

index 22c78ca2c4bd75c94a780eb31878eb0b7f8b0e88..8ef7799c9c66d1a824bdb8372c89be3d7fa6cd23 100644 (file)
@@ -38,7 +38,43 @@ 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();
index 615af505240f1ff40c45ab02580f74ca20e4c775..e2eea2588a998047abb5ed2d0f75b260844fd722 100644 (file)
@@ -1,6 +1,6 @@
 <script src="static/summaryview.js" type="text/javascript"></script>
 <script type="text/javascript">
-var is_safe_mode = <?%("COND:PREF", 1, :"mailbox", "client-nosort",
+var summary_view_pref = <?%("COND:PREF", 1, :"mailbox", "client-nosort",
 "true", "false")>;
 var sortmode = "<?PREF:ROOM:VALUE("sort")>";
 </script>