You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:51:53 UTC

[20/50] [abbrv] brooklyn-ui git commit: fix bug where details view wasn't closing, so was loading way too much and sometimes breaking datatables

fix bug where details view wasn't closing, so was loading way too much and sometimes breaking datatables


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/commit/29a83636
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/tree/29a83636
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/diff/29a83636

Branch: refs/heads/0.5.0
Commit: 29a836365f6defd57794112a6421668713d24221
Parents: 1ca7bc9
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Dec 3 09:24:23 2012 -0600
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Dec 3 09:24:23 2012 -0600

----------------------------------------------------------------------
 usage/jsgui/src/main/webapp/assets/js/router.js       | 14 ++++++++------
 .../main/webapp/assets/js/view/application-tree.js    |  6 +++++-
 .../main/webapp/assets/js/view/entity-activities.js   |  2 +-
 .../src/main/webapp/assets/js/view/entity-config.js   |  2 +-
 .../src/main/webapp/assets/js/view/entity-policies.js |  2 +-
 .../src/main/webapp/assets/js/view/entity-sensors.js  |  8 ++++----
 usage/jsgui/src/main/webapp/assets/js/view/home.js    |  4 ++--
 usage/jsgui/src/test/javascript/specs/home-spec.js    |  2 +-
 .../test/javascript/specs/view/entity-details-spec.js |  2 +-
 9 files changed, 24 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/router.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/router.js b/usage/jsgui/src/main/webapp/assets/js/router.js
index ff14e28..623f98f 100644
--- a/usage/jsgui/src/main/webapp/assets/js/router.js
+++ b/usage/jsgui/src/main/webapp/assets/js/router.js
@@ -14,19 +14,21 @@ define([
         if (this.beforeClose) {
             this.beforeClose()
         }
-        for (var index in this._periodicFunctions) {
-            clearInterval(this._periodicFunctions[index])
-        }
+        _.each(this._periodicFunctions, function(i) {
+            clearInterval(i)
+        })
         this.remove()
         this.unbind()
     }
     
     // registers a callback (cf setInterval) but it cleanly gets unregistered when view closes
-    Backbone.View.prototype.callPeriodically = function (callback, interval) {
+    Backbone.View.prototype.callPeriodically = function (uid, callback, interval) {
         if (!this._periodicFunctions) {
-            this._periodicFunctions = []
+            this._periodicFunctions = {}
         }
-        this._periodicFunctions.push(setInterval(callback, interval))
+        var old = this._periodicFunctions[uid]
+        if (old) clearInterval(old)
+        this._periodicFunctions[uid] = setInterval(callback, interval)
     }
 
 

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/view/application-tree.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/application-tree.js b/usage/jsgui/src/main/webapp/assets/js/view/application-tree.js
index 6a35ed2..969a0ff 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/application-tree.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/application-tree.js
@@ -4,7 +4,7 @@
  */
 define([
     "underscore", "jquery", "backbone", "model/app-tree", "./entity-details", "model/entity-summary",
-    "model/application", "text!tpl/apps/tree-item.html", "text!tpl/apps/details.html"
+    "model/application", "text!tpl/apps/tree-item.html", "text!tpl/apps/details.html", "brooklyn-utils"
 ], function (_, $, Backbone, AppTree, EntityDetailsView, EntitySummary, Application, TreeItemHtml, EntityDetailsEmptyHtml) {
 
     var ApplicationTreeView = Backbone.View.extend({
@@ -104,6 +104,8 @@ define([
             }
             window.history.pushState(stateId, "", href)
         	this.displayEntityId(entityId, $(eventName.currentTarget).data("parent-app"));
+            // don't traverse the link further (not sure this is needed)
+            return false
         },
         displayEntityId:function (id, appName) {
             var entitySummary = new EntitySummary.Model,
@@ -137,6 +139,8 @@ define([
                     that.detailsView.close()
                 }
             }
+            if (that.detailsView)
+                that.detailsView.close()
             that.detailsView = new EntityDetailsView({
                 model:entitySummary,
                 application:app

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/view/entity-activities.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/entity-activities.js b/usage/jsgui/src/main/webapp/assets/js/view/entity-activities.js
index 09d9f46..fb30921 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/entity-activities.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/entity-activities.js
@@ -18,7 +18,7 @@ define([
             this.collection.url = this.model.getLinkByName("activities")
             this.collection.fetch()
             this.collection.on("reset", this.render, this)
-            this.callPeriodically(function () {
+            this.callPeriodically("entity-activities", function () {
                 that.collection.fetch()
             }, 5000)
         },

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/view/entity-config.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/entity-config.js b/usage/jsgui/src/main/webapp/assets/js/view/entity-config.js
index dc08ff9..899b0a4 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/entity-config.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/entity-config.js
@@ -52,7 +52,7 @@ define([
         updateConfigPeriodically:function (that) {
             var self = this;
             that.updateConfigNow(that)
-            that.callPeriodically(function() { self.updateConfigNow(that) }, 3000)
+            that.callPeriodically("entity-config", function() { self.updateConfigNow(that) }, 3000)
         },
         updateConfigNow:function (that) {
             // NB: this won't add new dynamic config

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/view/entity-policies.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/entity-policies.js b/usage/jsgui/src/main/webapp/assets/js/view/entity-policies.js
index 5525bfa..fec2476 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/entity-policies.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/entity-policies.js
@@ -23,7 +23,7 @@ define([
             this._policies = new PolicySummary.Collection()
             // fetch the list of policies and create a view for each one
             this._policies.url = this.model.getLinkByName("policies")
-            this.callPeriodically(function() { that.refresh() }, 3000)
+            this.callPeriodically("entity-policies", function() { that.refresh() }, 3000)
             this.refresh()
         },
         refresh: function() {

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/view/entity-sensors.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/entity-sensors.js b/usage/jsgui/src/main/webapp/assets/js/view/entity-sensors.js
index 35b7c97..19c5cdc 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/entity-sensors.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/entity-sensors.js
@@ -4,7 +4,7 @@
  */
 define([
     "underscore", "jquery", "backbone", "view/viewutils", "model/sensor-summary", "text!tpl/apps/sensors.html",
-    "text!tpl/apps/sensor-row.html", "tablesorter"
+    "text!tpl/apps/sensor-row.html", "tablesorter", "brooklyn-utils"
 ], function (_, $, Backbone, ViewUtils, SensorSummary, SensorsHtml, SensorRowHtml) {
 
     var EntitySensorsView = Backbone.View.extend({
@@ -59,7 +59,7 @@ define([
         updateSensorsPeriodically:function (that) {
             var self = this;
             that.updateSensorsNow(that)
-            that.callPeriodically(function() { self.updateSensorsNow(that) }, 3000)
+            that.callPeriodically("entity-sensors", function() { self.updateSensorsNow(that) }, 3000)
         },
         updateSensorsNow:function (that) {
             // NB: this won't add new dynamic sensors
@@ -75,7 +75,7 @@ define([
                         $table.dataTable().fnUpdate(_.escape(v), row, 2)
                     })
                 })
-            }
-        })
+        }
+    })
     return EntitySensorsView
 })
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/main/webapp/assets/js/view/home.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/home.js b/usage/jsgui/src/main/webapp/assets/js/view/home.js
index 758d146..71e0275 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/home.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/home.js
@@ -48,7 +48,7 @@ define([
             			        )
             			var locatedLocations = new Location.UsageLocated()
             			that.updateCircles(that, locatedLocations, GoogleMaps, map)
-            			that.callPeriodically(function() {
+            			that.callPeriodically("circles", function() {
             			    that.updateCircles(that, locatedLocations, GoogleMaps, map)
             			}, 10000)
             		}, function (error) {
@@ -56,7 +56,7 @@ define([
             	});
             }
             
-            this.callPeriodically(function() {
+            this.callPeriodically("home", function() {
             	that.refresh(that);	            	
             }, 5000)
             this.refresh(this)

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/test/javascript/specs/home-spec.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/test/javascript/specs/home-spec.js b/usage/jsgui/src/test/javascript/specs/home-spec.js
index d720675..e7c5f15 100644
--- a/usage/jsgui/src/test/javascript/specs/home-spec.js
+++ b/usage/jsgui/src/test/javascript/specs/home-spec.js
@@ -11,7 +11,7 @@ define([
     "underscore", "jquery", "model/application", "model/location", "view/home"
 ], function (_, $, Application, Location, HomeView) {
 
-    Backbone.View.prototype.callPeriodically = function (callback, interval) {
+    Backbone.View.prototype.callPeriodically = function (uid, callback, interval) {
         if (!this._periodicFunctions) {
             this._periodicFunctions = []
         }

http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/29a83636/usage/jsgui/src/test/javascript/specs/view/entity-details-spec.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/test/javascript/specs/view/entity-details-spec.js b/usage/jsgui/src/test/javascript/specs/view/entity-details-spec.js
index 83f5e0a..2804543 100644
--- a/usage/jsgui/src/test/javascript/specs/view/entity-details-spec.js
+++ b/usage/jsgui/src/test/javascript/specs/view/entity-details-spec.js
@@ -7,7 +7,7 @@ define([
         return "fixtures/sensor-current-state.json"
     }
 
-    Backbone.View.prototype.callPeriodically = function (callback, interval) {
+    Backbone.View.prototype.callPeriodically = function (uid, callback, interval) {
         if (!this._periodicFunctions) {
             this._periodicFunctions = []
         }