Simon Hunt
Committed by Gerrit Code Review

GUI -- toggle state for some of the topo buttons, now persisted via cookie.

Change-Id: Ie80c840635fcc7b87705d73abf77b7bc6df03f18
...@@ -125,6 +125,7 @@ ...@@ -125,6 +125,7 @@
125 } else { 125 } else {
126 showPanel(cb); 126 showPanel(cb);
127 } 127 }
128 + return p.on;
128 } 129 }
129 130
130 function emptyPanel() { 131 function emptyPanel() {
......
...@@ -45,8 +45,8 @@ ...@@ -45,8 +45,8 @@
45 // thus, deferred to here... 45 // thus, deferred to here...
46 actionMap = { 46 actionMap = {
47 I: [toggleInstances, 'Toggle ONOS instances panel'], 47 I: [toggleInstances, 'Toggle ONOS instances panel'],
48 - O: [tps.toggleSummary, 'Toggle ONOS summary panel'], 48 + O: [toggleSummary, 'Toggle ONOS summary panel'],
49 - D: [tps.toggleDetails, 'Disable / enable details panel'], 49 + D: [toggleDetails, 'Disable / enable details panel'],
50 50
51 H: [tfs.toggleHosts, 'Toggle host visibility'], 51 H: [tfs.toggleHosts, 'Toggle host visibility'],
52 M: [tfs.toggleOffline, 'Toggle offline visibility'], 52 M: [tfs.toggleOffline, 'Toggle offline visibility'],
...@@ -95,28 +95,27 @@ ...@@ -95,28 +95,27 @@
95 95
96 // --- Keystroke functions ------------------------------------------- 96 // --- Keystroke functions -------------------------------------------
97 97
98 - // NOTE: this really belongs in the TopoPanelService -- but how to
99 - // cleanly link in the updateDeviceColors() call? To be fixed later.
100 function toggleInstances(x) { 98 function toggleInstances(x) {
101 - if (x === 'keyev') { 99 + updatePrefsState('insts', tis.toggle(x));
102 - tis.toggle();
103 - updatePrefsState('insts', tis.isVisible());
104 - } else if (x) {
105 - tis.show();
106 - } else {
107 - tis.hide();
108 - }
109 tfs.updateDeviceColors(); 100 tfs.updateDeviceColors();
110 } 101 }
111 102
103 + function toggleSummary(x) {
104 + updatePrefsState('summary', tps.toggleSummary(x));
105 + }
106 +
107 + function toggleDetails(x) {
108 + updatePrefsState('detail', tps.toggleDetails(x));
109 + }
110 +
112 function toggleMap(x) { 111 function toggleMap(x) {
113 - var on = (x === 'keyev') ? !sus.visible(mapG) : !!x; 112 + var on = (x === 'keyev') ? !sus.visible(mapG) : !!x,
113 + verb = on ? 'Show' : 'Hide';
114 sus.visible(mapG, on); 114 sus.visible(mapG, on);
115 updatePrefsState('bg', on); 115 updatePrefsState('bg', on);
116 + flash.flash(verb + ' background map');
116 } 117 }
117 118
118 - // TODO: need wrapper functions for state changes needed in cookies
119 -
120 function resetZoom() { 119 function resetZoom() {
121 zoomer.reset(); 120 zoomer.reset();
122 } 121 }
...@@ -250,20 +249,8 @@ ...@@ -250,20 +249,8 @@
250 249
251 // --- User Preferemces ---------------------------------------------- 250 // --- User Preferemces ----------------------------------------------
252 251
253 - var defaultPrefsState = {
254 - bg: 1,
255 - insts: 1,
256 - summary: 1,
257 - detail: 1,
258 - hosts: 0
259 - };
260 -
261 var prefsState = {}; 252 var prefsState = {};
262 253
263 - function topoDefPrefs() {
264 - return angular.extend({}, defaultPrefsState);
265 - }
266 -
267 function updatePrefsState(what, b) { 254 function updatePrefsState(what, b) {
268 prefsState[what] = b ? 1 : 0; 255 prefsState[what] = b ? 1 : 0;
269 ps.setPrefs('topo_prefs', prefsState); 256 ps.setPrefs('topo_prefs', prefsState);
...@@ -277,8 +264,8 @@ ...@@ -277,8 +264,8 @@
277 $log.debug('TOPO---- Prefs State:', prefsState); 264 $log.debug('TOPO---- Prefs State:', prefsState);
278 265
279 toggleInstances(prefsState.insts); 266 toggleInstances(prefsState.insts);
280 - tps.toggleSummary(prefsState.summary); 267 + toggleSummary(prefsState.summary);
281 - tps.toggleDetails(prefsState.detail); 268 + toggleDetails(prefsState.detail);
282 } 269 }
283 270
284 271
......
...@@ -86,7 +86,6 @@ ...@@ -86,7 +86,6 @@
86 openListener = wss.addOpenListener(wsOpen); 86 openListener = wss.addOpenListener(wsOpen);
87 wss.bindHandlers(handlerMap); 87 wss.bindHandlers(handlerMap);
88 wss.sendEvent('topoStart'); 88 wss.sendEvent('topoStart');
89 - wss.sendEvent('requestSummary');
90 $log.debug('topo comms started'); 89 $log.debug('topo comms started');
91 } 90 }
92 91
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
23 'use strict'; 23 'use strict';
24 24
25 // injected refs 25 // injected refs
26 - var $log, ps, sus, gs, ts, fs; 26 + var $log, ps, sus, gs, ts, fs, flash;
27 27
28 // api from topo 28 // api from topo
29 var api; 29 var api;
...@@ -309,20 +309,49 @@ ...@@ -309,20 +309,49 @@
309 oiShowMaster = false; 309 oiShowMaster = false;
310 } 310 }
311 311
312 + function showInsts() {
313 + oiBox.show();
314 + }
315 +
316 + function hideInsts() {
317 + oiBox.hide();
318 + }
319 +
320 + function toggleInsts(x) {
321 + var kev = (x === 'keyev'),
322 + on,
323 + verb;
324 +
325 + if (kev) {
326 + on = oiBox.toggle();
327 + } else {
328 + on = !!x;
329 + if (on) {
330 + showInsts();
331 + } else {
332 + hideInsts();
333 + }
334 + }
335 + verb = on ? 'Show' : 'Hide';
336 + flash.flash(verb + ' instances panel');
337 + return on;
338 + }
339 +
312 // ========================== 340 // ==========================
313 341
314 angular.module('ovTopo') 342 angular.module('ovTopo')
315 .factory('TopoInstService', 343 .factory('TopoInstService',
316 ['$log', 'PanelService', 'SvgUtilService', 'GlyphService', 344 ['$log', 'PanelService', 'SvgUtilService', 'GlyphService',
317 - 'ThemeService', 'FnService', 345 + 'ThemeService', 'FnService', 'FlashService',
318 346
319 - function (_$log_, _ps_, _sus_, _gs_, _ts_, _fs_) { 347 + function (_$log_, _ps_, _sus_, _gs_, _ts_, _fs_, _flash_) {
320 $log = _$log_; 348 $log = _$log_;
321 ps = _ps_; 349 ps = _ps_;
322 sus = _sus_; 350 sus = _sus_;
323 gs = _gs_; 351 gs = _gs_;
324 ts = _ts_; 352 ts = _ts_;
325 fs = _fs_; 353 fs = _fs_;
354 + flash = _flash_;
326 355
327 return { 356 return {
328 initInst: initInst, 357 initInst: initInst,
...@@ -335,9 +364,9 @@ ...@@ -335,9 +364,9 @@
335 cancelAffinity: cancelAffinity, 364 cancelAffinity: cancelAffinity,
336 365
337 isVisible: function () { return oiBox.isVisible(); }, 366 isVisible: function () { return oiBox.isVisible(); },
338 - show: function () { oiBox.show(); }, 367 + show: showInsts,
339 - hide: function () { oiBox.hide(); }, 368 + hide: hideInsts,
340 - toggle: function () { oiBox.toggle(); }, 369 + toggle: toggleInsts,
341 showMaster: function () { return oiShowMaster; } 370 showMaster: function () { return oiShowMaster; }
342 }; 371 };
343 }]); 372 }]);
......
...@@ -226,7 +226,9 @@ ...@@ -226,7 +226,9 @@
226 } 226 }
227 227
228 function toggleSummary(x) { 228 function toggleSummary(x) {
229 - var on = (x === 'keyev') ? !summaryPanel.isVisible() : !!x; 229 + var kev = (x === 'keyev'),
230 + on = kev ? !summaryPanel.isVisible() : !!x,
231 + verb = on ? 'Show' : 'Hide';
230 232
231 if (on) { 233 if (on) {
232 // ask server to start sending summary data. 234 // ask server to start sending summary data.
...@@ -235,6 +237,8 @@ ...@@ -235,6 +237,8 @@
235 } else { 237 } else {
236 hideSummaryPanel(); 238 hideSummaryPanel();
237 } 239 }
240 + flash.flash(verb + ' summary panel');
241 + return on;
238 } 242 }
239 243
240 // === ----------------------------------------------------- 244 // === -----------------------------------------------------
...@@ -292,16 +296,21 @@ ...@@ -292,16 +296,21 @@
292 } 296 }
293 297
294 function toggleDetails(x) { 298 function toggleDetails(x) {
295 - useDetails = (x === 'keyev') ? !useDetails : !!x; 299 + var kev = (x === 'keyev'),
300 + verb;
301 +
302 + useDetails = kev ? !useDetails : !!x;
303 + verb = useDetails ? 'Enable' : 'Disable';
304 +
296 if (useDetails) { 305 if (useDetails) {
297 - flash.flash('Enable details panel');
298 if (haveDetails) { 306 if (haveDetails) {
299 showDetailPanel(); 307 showDetailPanel();
300 } 308 }
301 } else { 309 } else {
302 - flash.flash('Disable details panel');
303 hideDetailPanel(); 310 hideDetailPanel();
304 } 311 }
312 + flash.flash(verb + ' details panel');
313 + return useDetails;
305 } 314 }
306 315
307 // ========================== 316 // ==========================
......