From d0f810dee5e4783f1ec71e8a717902e202598aa2 Mon Sep 17 00:00:00 2001
From: Neil Lalonde <neillalonde@gmail.com>
Date: Fri, 29 Mar 2013 16:05:29 -0400
Subject: [PATCH] Don't request list of problems from server as often if there
 weren't any problems

---
 .../javascripts/admin/routes/admin_dashboard_route.js | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/app/assets/javascripts/admin/routes/admin_dashboard_route.js b/app/assets/javascripts/admin/routes/admin_dashboard_route.js
index 8024edc75..41e78f8eb 100644
--- a/app/assets/javascripts/admin/routes/admin_dashboard_route.js
+++ b/app/assets/javascripts/admin/routes/admin_dashboard_route.js
@@ -7,6 +7,9 @@
   @module Discourse
 **/
 Discourse.AdminDashboardRoute = Discourse.Route.extend({
+
+  problemsCheckInterval: '1 minute ago',
+
   setupController: function(c) {
     this.fetchDashboardData(c);
     this.fetchGithubCommits(c);
@@ -32,11 +35,17 @@ Discourse.AdminDashboardRoute = Discourse.Route.extend({
         c.set('problems', d.problems);
         c.set('loading', false);
       });
-    } else if( !c.get('problemsFetchedAt') || Date.create('1 minute ago', 'en') > c.get('problemsFetchedAt') ) {
+    } else if( !c.get('problemsFetchedAt') || Date.create(this.problemsCheckInterval, 'en') > c.get('problemsFetchedAt') ) {
       c.set('problemsFetchedAt', new Date());
+      var _this = this;
       Discourse.AdminDashboard.fetchProblems().then(function(d) {
         c.set('problems', d.problems);
         c.set('loading', false);
+        if( d.problems && d.problems.length > 0 ) {
+          _this.problemsCheckInterval = '1 minute ago';
+        } else {
+          _this.problemsCheckInterval = '10 minutes ago';
+        }
       });
     }
   },