ONOS-4805: Choice of selected overlay persisted server side -- restored across login sessions.
Change-Id: I17e0e06a2fcc33958ffd42cd51acb42a302de57e
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 b45205b..33353b0 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -652,9 +652,8 @@
tis.initInst({ showMastership: tfs.showMastership });
tps.initPanels();
- // temporary solution for persisting user settings
restoreConfigFromPrefs();
- ttbs.setDefaultOverlay();
+ ttbs.setDefaultOverlay(prefsState.ovidx);
$log.debug('registered overlays...', tov.list());
$log.log('OvTopoCtrl has been created');
diff --git a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
index 85062ef..136e7d8 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
@@ -80,6 +80,7 @@
porthl: 1,
bg: 0,
spr: 0,
+ ovidx: 1, // default to traffic overlay
toolbar: 0
},
prefsMap = {
@@ -199,6 +200,9 @@
tds.closeDialog();
thirdRow.clear();
+ // persist our choice of overlay...
+ persistTopoPrefs('ovidx', ovIndex[oid] || 0);
+
if (!order.length) {
thirdRow.setText(selOver);
thirdRow.classed('right', true);
@@ -264,15 +268,22 @@
}
}
- function toggleToolbar() {
- toolbar.toggle();
+ function persistTopoPrefs(key, val) {
var prefs = ps.getPrefs(cooktag, defaultPrefsState);
- prefs.toolbar = !prefs.toolbar;
+ prefs[key] = val === undefined ? !prefs[key] : val;
ps.setPrefs('topo_prefs', prefs);
}
- function setDefaultOverlay() {
+ function toggleToolbar() {
+ toolbar.toggle();
+ persistTopoPrefs('toolbar');
+ }
+
+ function setDefaultOverlay(prefsIdx) {
var idx = ovIndex[defaultOverlay] || 0;
+ if (prefsIdx >= 0 && prefsIdx < ovRset.size()) {
+ idx = prefsIdx;
+ }
ovRset.selectedIndex(idx);
}