changeset 79:a6ad06a2dbc1

don't refresh data on page reload; only when user clicks 'refresh'
author Atul Varma <avarma@mozilla.com>
date Sun, 25 Apr 2010 21:22:32 -0700
parents 4bb45ff5788a
children 677df912e92d
files js/modules/app.js
diffstat 1 files changed, 14 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/js/modules/app.js	Sun Apr 25 20:54:51 2010 -0700
+++ b/js/modules/app.js	Sun Apr 25 21:22:32 2010 -0700
@@ -525,16 +525,19 @@
       });
   }
 
-  function report(selector, key, searchTerms) {
+  function report(selector, key, forceUpdate, searchTerms) {
     var newTerms = {__proto__: defaults};
     for (name in searchTerms)
       newTerms[name.replace(/_DOT_/g, ".")] = searchTerms[name];
 
     var cacheKey = key + "/" + selector;
     var cached = cache.get(cacheKey);
-    if (cached)
+    if (cached) {
       showBugs($(selector), cached);
-    
+      if (!forceUpdate)
+        return;
+    }
+
     $(selector).find("h2").addClass("loading");
     
     xhrQueue.enqueue(
@@ -563,20 +566,20 @@
     changed_after: timeAgo(MS_PER_WEEK * 14)
   };
 
-  function update(myUsername) {
+  function update(myUsername, forceUpdate) {
     xhrQueue.clear();
 
-    report("#code-reviews", myUsername,
+    report("#code-reviews", myUsername, forceUpdate,
            {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"],
             flag_DOT_requestee: myUsername});
 
-    report("#assigned-bugs", myUsername,
+    report("#assigned-bugs", myUsername, forceUpdate,
            {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"],
             email1: myUsername,
             email1_type: "equals",
             email1_assigned_to: 1});
 
-    report("#reported-bugs", myUsername,
+    report("#reported-bugs", myUsername, forceUpdate,
            {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"],
             email1: myUsername,
             email1_type: "equals",
@@ -585,7 +588,7 @@
             email2_type: "not_equals",
             email2_assigned_to: 1});
 
-    report("#cc-bugs", myUsername,
+    report("#cc-bugs", myUsername, forceUpdate,
            {status: ["NEW", "UNCONFIRMED", "ASSIGNED", "REOPENED"],
             email1: myUsername,
             email1_type: "equals",
@@ -595,7 +598,7 @@
             email2_assigned_to: 1,
             email2_reporter: 1});
 
-    report("#fixed-bugs", myUsername,
+    report("#fixed-bugs", myUsername, forceUpdate,
            {resolution: ["FIXED"],
             changed_after: timeAgo(MS_PER_WEEK),
             email1: myUsername,
@@ -610,7 +613,7 @@
     execute: function execute() {
       var user = require("app/login").get();
       if (user.isLoggedIn)
-        update(user.username);
+        update(user.username, true);
     }
   };
 
@@ -619,7 +622,7 @@
     require("app/login").whenChanged(
       function changeSearchCriteria(user) {
         if (user.isLoggedIn) {
-          update(user.username);
+          update(user.username, false);
         }
       });
   };