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