Committed by
Gerrit Code Review
GUI -- toggle state for some of the topo buttons, now persisted via cookie.
Change-Id: Ie80c840635fcc7b87705d73abf77b7bc6df03f18
Showing
5 changed files
with
65 additions
and
40 deletions
... | @@ -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 | // ========================== | ... | ... |
-
Please register or login to post a comment