GUI - Fixed a timing issue with topology event handler binding.
- handlers were not bound up front, (but during a delayed promise callback)
- resulted in the handlers not being present for initial events returned from the server:
-- showSummary, spriteListResponse, spriteDataResponse
Change-Id: Ida8d14e8bdcb065d0ea5f88eb7a4bf6e45036c27
diff --git a/web/gui/src/main/webapp/app/view/topo/topo.js b/web/gui/src/main/webapp/app/view/topo/topo.js
index 56be9f6..df2e601 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -28,9 +28,9 @@
'onosRemote'
];
- // references to injected services etc.
+ // references to injected services
var $scope, $log, $cookies, fs, ks, zs, gs, ms, sus, flash, wss, ps, th,
- tds, tes, tfs, tps, tis, tss, tls, tts, tos, fltr, ttbs, ttip, tov;
+ tds, tes, tfs, tps, tis, tss, tls, tts, tos, fltr, ttbs, tspr, ttip, tov;
// DOM elements
var ovtopo, svg, defs, zoomLayer, mapG, spriteG, forceG, noDevsLayer;
@@ -507,7 +507,7 @@
_zs_, _gs_, _ms_, _sus_, _flash_, _wss_, _ps_, _th_,
_tds_, _tes_,
_tfs_, _tps_, _tis_, _tss_, _tls_, _tts_, _tos_, _fltr_,
- _ttbs_, tspr, _ttip_, _tov_) {
+ _ttbs_, _tspr_, _ttip_, _tov_) {
var params = $loc.search(),
projection,
dim,
@@ -548,6 +548,7 @@
tos = _tos_;
fltr = _fltr_;
ttbs = _ttbs_;
+ tspr = _tspr_;
ttip = _ttip_;
tov = _tov_;
@@ -609,6 +610,7 @@
restoreSummaryFromPrefs();
}
);
+ tes.bindHandlers();
setUpSprites($loc, tspr);
forceG = zoomLayer.append('g').attr('id', 'topo-force');
diff --git a/web/gui/src/main/webapp/app/view/topo/topoEvent.js b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
index 9b07f87..b1af75d 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoEvent.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
@@ -109,9 +109,14 @@
createHandlerMap();
- function start() {
- openListener = wss.addOpenListener(wsOpen);
+ function bindHandlers() {
wss.bindHandlers(handlerMap);
+ $log.debug('topo event handlers bound');
+ }
+
+ function start() {
+ // in case we fail over to a new server, listen for wsock-open
+ openListener = wss.addOpenListener(wsOpen);
wss.sendEvent('topoStart');
scheduleHeartbeat();
$log.debug('topo comms started');
@@ -127,6 +132,7 @@
}
return {
+ bindHandlers: bindHandlers,
start: start,
stop: stop
};