GUI -- TopoView - implemented show/hide background map ('B' keystroke)
- reworked SvgUtilService.makeVisible() to be dual-purpose .visible(el, [b]) method. Change-Id: I8e68994627d1022066cdc9dcbed006675431d91a
Showing
4 changed files
with
33 additions
and
17 deletions
| ... | @@ -235,12 +235,16 @@ | ... | @@ -235,12 +235,16 @@ |
| 235 | return s.replace(/px$/,''); | 235 | return s.replace(/px$/,''); |
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | + function safeId(s) { | ||
| 239 | + return s.replace(/[^a-z0-9]/gi, '-'); | ||
| 240 | + } | ||
| 241 | + | ||
| 238 | function makeVisible(el, b) { | 242 | function makeVisible(el, b) { |
| 239 | el.style('visibility', (b ? 'visible' : 'hidden')); | 243 | el.style('visibility', (b ? 'visible' : 'hidden')); |
| 240 | } | 244 | } |
| 241 | 245 | ||
| 242 | - function safeId(s) { | 246 | + function isVisible(el) { |
| 243 | - return s.replace(/[^a-z0-9]/gi, '-'); | 247 | + return el.style('visibility') === 'visible'; |
| 244 | } | 248 | } |
| 245 | 249 | ||
| 246 | return { | 250 | return { |
| ... | @@ -249,8 +253,14 @@ | ... | @@ -249,8 +253,14 @@ |
| 249 | cat7: cat7, | 253 | cat7: cat7, |
| 250 | translate: translate, | 254 | translate: translate, |
| 251 | stripPx: stripPx, | 255 | stripPx: stripPx, |
| 252 | - makeVisible: makeVisible, | 256 | + safeId: safeId, |
| 253 | - safeId: safeId | 257 | + visible: function (el, x) { |
| 258 | + if (x === undefined) { | ||
| 259 | + return isVisible(el); | ||
| 260 | + } else { | ||
| 261 | + makeVisible(el, x); | ||
| 262 | + } | ||
| 263 | + } | ||
| 254 | }; | 264 | }; |
| 255 | }]); | 265 | }]); |
| 256 | }()); | 266 | }()); | ... | ... |
| ... | @@ -48,7 +48,7 @@ | ... | @@ -48,7 +48,7 @@ |
| 48 | 48 | ||
| 49 | H: [tfs.toggleHosts, 'Toggle host visibility'], | 49 | H: [tfs.toggleHosts, 'Toggle host visibility'], |
| 50 | M: [tfs.toggleOffline, 'Toggle offline visibility'], | 50 | M: [tfs.toggleOffline, 'Toggle offline visibility'], |
| 51 | - //B: [toggleBg, 'Toggle background image'], | 51 | + B: [toggleMap, 'Toggle background map'], |
| 52 | //P: togglePorts, | 52 | //P: togglePorts, |
| 53 | 53 | ||
| 54 | //X: [toggleNodeLock, 'Lock / unlock node positions'], | 54 | //X: [toggleNodeLock, 'Lock / unlock node positions'], |
| ... | @@ -94,6 +94,10 @@ | ... | @@ -94,6 +94,10 @@ |
| 94 | tfs.updateDeviceColors(); | 94 | tfs.updateDeviceColors(); |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | + function toggleMap() { | ||
| 98 | + sus.visible(mapG, !sus.visible(mapG)); | ||
| 99 | + } | ||
| 100 | + | ||
| 97 | function resetZoom() { | 101 | function resetZoom() { |
| 98 | zoomer.reset(); | 102 | zoomer.reset(); |
| 99 | } | 103 | } |
| ... | @@ -184,7 +188,7 @@ | ... | @@ -184,7 +188,7 @@ |
| 184 | } | 188 | } |
| 185 | 189 | ||
| 186 | function showNoDevs(b) { | 190 | function showNoDevs(b) { |
| 187 | - sus.makeVisible(noDevsLayer, b); | 191 | + sus.visible(noDevsLayer, b); |
| 188 | } | 192 | } |
| 189 | 193 | ||
| 190 | function showCallibrationPoints() { | 194 | function showCallibrationPoints() { | ... | ... |
| ... | @@ -365,21 +365,21 @@ | ... | @@ -365,21 +365,21 @@ |
| 365 | } | 365 | } |
| 366 | 366 | ||
| 367 | function updateHostVisibility() { | 367 | function updateHostVisibility() { |
| 368 | - sus.makeVisible(nodeG.selectAll('.host'), showHosts); | 368 | + sus.visible(nodeG.selectAll('.host'), showHosts); |
| 369 | - sus.makeVisible(linkG.selectAll('.hostLink'), showHosts); | 369 | + sus.visible(linkG.selectAll('.hostLink'), showHosts); |
| 370 | } | 370 | } |
| 371 | 371 | ||
| 372 | function updateOfflineVisibility(dev) { | 372 | function updateOfflineVisibility(dev) { |
| 373 | function updDev(d, show) { | 373 | function updDev(d, show) { |
| 374 | - sus.makeVisible(d.el, show); | 374 | + sus.visible(d.el, show); |
| 375 | 375 | ||
| 376 | tms.findAttachedLinks(d.id).forEach(function (link) { | 376 | tms.findAttachedLinks(d.id).forEach(function (link) { |
| 377 | b = show && ((link.type() !== 'hostLink') || showHosts); | 377 | b = show && ((link.type() !== 'hostLink') || showHosts); |
| 378 | - sus.makeVisible(link.el, b); | 378 | + sus.visible(link.el, b); |
| 379 | }); | 379 | }); |
| 380 | tms.findAttachedHosts(d.id).forEach(function (host) { | 380 | tms.findAttachedHosts(d.id).forEach(function (host) { |
| 381 | b = show && showHosts; | 381 | b = show && showHosts; |
| 382 | - sus.makeVisible(host.el, b); | 382 | + sus.visible(host.el, b); |
| 383 | }); | 383 | }); |
| 384 | } | 384 | } |
| 385 | 385 | ||
| ... | @@ -721,7 +721,7 @@ | ... | @@ -721,7 +721,7 @@ |
| 721 | textDy = r + 10; | 721 | textDy = r + 10; |
| 722 | 722 | ||
| 723 | d.el = node; | 723 | d.el = node; |
| 724 | - sus.makeVisible(node, showHosts); | 724 | + sus.visible(node, showHosts); |
| 725 | 725 | ||
| 726 | is.addHostIcon(node, r, gid); | 726 | is.addHostIcon(node, r, gid); |
| 727 | 727 | ||
| ... | @@ -849,7 +849,7 @@ | ... | @@ -849,7 +849,7 @@ |
| 849 | d.el = link; | 849 | d.el = link; |
| 850 | restyleLinkElement(d); | 850 | restyleLinkElement(d); |
| 851 | if (d.type() === 'hostLink') { | 851 | if (d.type() === 'hostLink') { |
| 852 | - sus.makeVisible(link, showHosts); | 852 | + sus.visible(link, showHosts); |
| 853 | } | 853 | } |
| 854 | } | 854 | } |
| 855 | 855 | ... | ... |
| ... | @@ -41,7 +41,7 @@ describe('factory: fw/svg/svgUtil.js', function() { | ... | @@ -41,7 +41,7 @@ describe('factory: fw/svg/svgUtil.js', function() { |
| 41 | it('should define api functions', function () { | 41 | it('should define api functions', function () { |
| 42 | expect(fs.areFunctions(sus, [ | 42 | expect(fs.areFunctions(sus, [ |
| 43 | 'createDragBehavior', 'loadGlow', 'cat7', 'translate', 'stripPx', | 43 | 'createDragBehavior', 'loadGlow', 'cat7', 'translate', 'stripPx', |
| 44 | - 'makeVisible', 'safeId' | 44 | + 'safeId', 'visible' |
| 45 | ])).toBeTruthy(); | 45 | ])).toBeTruthy(); |
| 46 | }); | 46 | }); |
| 47 | 47 | ||
| ... | @@ -114,15 +114,17 @@ describe('factory: fw/svg/svgUtil.js', function() { | ... | @@ -114,15 +114,17 @@ describe('factory: fw/svg/svgUtil.js', function() { |
| 114 | expect(sus.stripPx('4px')).toEqual('4'); | 114 | expect(sus.stripPx('4px')).toEqual('4'); |
| 115 | }); | 115 | }); |
| 116 | 116 | ||
| 117 | - // === makeVisible() | 117 | + // === visible() |
| 118 | 118 | ||
| 119 | it('should hide and show an element', function () { | 119 | it('should hide and show an element', function () { |
| 120 | var r = svg.append('rect'); | 120 | var r = svg.append('rect'); |
| 121 | 121 | ||
| 122 | - sus.makeVisible(r, false); | 122 | + sus.visible(r, false); |
| 123 | expect(r.style('visibility')).toEqual('hidden'); | 123 | expect(r.style('visibility')).toEqual('hidden'); |
| 124 | + expect(sus.visible(r)).toBe(false); | ||
| 124 | 125 | ||
| 125 | - sus.makeVisible(r, true); | 126 | + sus.visible(r, true); |
| 126 | expect(r.style('visibility')).toEqual('visible'); | 127 | expect(r.style('visibility')).toEqual('visible'); |
| 128 | + expect(sus.visible(r)).toBe(true); | ||
| 127 | }); | 129 | }); |
| 128 | }); | 130 | }); | ... | ... |
-
Please register or login to post a comment