Topo2: fix incorrectly patched review (sorry Steven).
Change-Id: Ib87a554b2311ac4258a70396f4fd6246546fb81b
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Breadcrumb.js b/web/gui/src/main/webapp/app/view/topo2/topo2Breadcrumb.js
index c0b8f9c..6e80613 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Breadcrumb.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Breadcrumb.js
@@ -23,7 +23,7 @@
'use strict';
- var $log, wss;
+ var $log, $loc, wss;
// Internal
var breadcrumbContainer,
@@ -57,10 +57,13 @@
// Remove breadcrumbs after index;
breadcrumbs.splice(index + 1);
+ // TODO: This is duplicated code - See Topo2SubRegion:navigateToRegion()
wss.sendEvent('topo2navRegion', {
rid: data.id
});
+ $loc.search('regionId', data.id);
+
layout.createForceElements();
layout.transitionDownRegion();
@@ -112,10 +115,11 @@
angular.module('ovTopo2')
.factory('Topo2BreadcrumbService', [
- '$log', 'WebSocketService',
- function (_$log_, _wss_) {
+ '$log', '$location', 'WebSocketService',
+ function (_$log_, _$loc_, _wss_) {
$log = _$log_;
+ $loc = _$loc_;
wss = _wss_;
return {
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Force.js b/web/gui/src/main/webapp/app/view/topo2/topo2Force.js
index 5849b61..62e3c16 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Force.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Force.js
@@ -23,8 +23,7 @@
'use strict';
// injected refs
- var $log,
- wss;
+ var $log, $loc, wss;
var t2is, t2rs, t2ls, t2vs, t2bcs, t2ss, t2bgs;
var svg, forceG, uplink, dim, opts, zoomer;
@@ -48,77 +47,24 @@
t2bcs.addLayout(t2ls);
t2rs.layout = t2ls;
t2ss.init(svg, zoomer);
+
+ navToBookmarkedRegion($loc.search().regionId);
}
function destroy() {
$log.debug('Destroy topo force layout');
}
- // ========================== Temporary Code (to be deleted later)
-
- function request(dir, rid) {
- wss.sendEvent('topo2navRegion', {
- rid: rid
- });
- }
-
- function doTmpCurrentLayout(data) {
- var topdiv = d3.select('#topo2tmp');
- var parentRegion = data.parent;
- var span = topdiv.select('.parentRegion').select('span');
- span.text(parentRegion || '[no parent]');
- span.classed('nav-me', Boolean(parentRegion));
- }
-
- function doTmpCurrentRegion(data) {
- var topdiv = d3.select('#topo2tmp');
- var span = topdiv.select('.thisRegion').select('span');
- var div;
-
- span.text(data.id);
-
- div = topdiv.select('.subRegions').select('div');
- data.subregions.forEach(function (r) {
-
- function nav() {
- request('down', r.id);
- }
-
- div.append('p')
- .classed('nav-me', true)
- .text(r.id)
- .on('click', nav);
- });
-
- div = topdiv.select('.devices').select('div');
- data.layerOrder.forEach(function (tag, idx) {
- var devs = data.devices[idx];
- devs.forEach(function (d) {
- div.append('p')
- .text('[' + tag + '] ' + d.id);
+ function navToBookmarkedRegion(regionId) {
+ $log.debug('navToBookmarkedRegion:', regionId);
+ if (regionId) {
+ wss.sendEvent('topo2navRegion', {
+ rid: regionId
});
- });
-
- div = topdiv.select('.hosts').select('div');
- data.layerOrder.forEach(function (tag, idx) {
- var hosts = data.hosts[idx];
- hosts.forEach(function (h) {
- div.append('p')
- .text('[' + tag + '] ' + h.id);
- });
- });
-
- div = topdiv.select('.links').select('div');
- var links = data.links;
- links.forEach(function (lnk) {
- div.append('p')
- .text(lnk.id);
- });
- }
-
- function doTmpPeerRegions(data) {
-
+ t2ls.createForceElements();
+ t2ls.transitionDownRegion();
+ }
}
// ========================== Event Handlers
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2SubRegion.js b/web/gui/src/main/webapp/app/view/topo2/topo2SubRegion.js
index 0852788..b3259d4 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2SubRegion.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2SubRegion.js
@@ -40,10 +40,10 @@
angular.module('ovTopo2')
.factory('Topo2SubRegionService', [
- 'WebSocketService', 'Topo2Collection', 'Topo2NodeModel',
+ '$location', 'WebSocketService', 'Topo2Collection', 'Topo2NodeModel',
'Topo2SubRegionPanelService',
- function (wss, _c_, NodeModel, t2srp) {
+ function ($loc, wss, _c_, NodeModel, t2srp) {
Collection = _c_;
@@ -85,6 +85,8 @@
rid: this.get('id')
});
+ $loc.search('regionId', this.get('id'));
+
var layout = this.collection.region.layout;
layout.createForceElements();
layout.transitionDownRegion();
diff --git a/web/gui/src/main/webapp/onos.js b/web/gui/src/main/webapp/onos.js
index 631ef84..2e893d3 100644
--- a/web/gui/src/main/webapp/onos.js
+++ b/web/gui/src/main/webapp/onos.js
@@ -152,6 +152,10 @@
controller: viewCtrlName(vid),
controllerAs: 'ctrl',
templateUrl: viewTemplateUrl(vid)
+
+ // Disable reload on $loc.hash() changes for bookmarked topo regions
+ // reloadOnSearch: (vid !== 'topo2')
+ // <SDH> assume this is not needed for ?regionId=... query string
});
}
});