Committed by
Brian O'Connor
ONOS-4359: continued work on theming UI
- topo view: fixed vertical spacing (and interactions) of summary and details panels. - added bbox() to panel API. Change-Id: I84544cc558020582c95d33096b92ac5756e68628 (cherry picked from commit e8c54dbe)
Showing
3 changed files
with
21 additions
and
11 deletions
... | @@ -81,6 +81,7 @@ | ... | @@ -81,6 +81,7 @@ |
81 | append: appendPanel, | 81 | append: appendPanel, |
82 | width: panelWidth, | 82 | width: panelWidth, |
83 | height: panelHeight, | 83 | height: panelHeight, |
84 | + bbox: panelBBox, | ||
84 | isVisible: panelIsVisible, | 85 | isVisible: panelIsVisible, |
85 | classed: classed, | 86 | classed: classed, |
86 | el: panelEl | 87 | el: panelEl |
... | @@ -150,6 +151,10 @@ | ... | @@ -150,6 +151,10 @@ |
150 | p.el.style('height', h + 'px'); | 151 | p.el.style('height', h + 'px'); |
151 | } | 152 | } |
152 | 153 | ||
154 | + function panelBBox() { | ||
155 | + return p.el.node().getBoundingClientRect(); | ||
156 | + } | ||
157 | + | ||
153 | function panelIsVisible() { | 158 | function panelIsVisible() { |
154 | return p.on; | 159 | return p.on; |
155 | } | 160 | } | ... | ... |
... | @@ -30,10 +30,11 @@ | ... | @@ -30,10 +30,11 @@ |
30 | idSum = 'topo-p-summary', | 30 | idSum = 'topo-p-summary', |
31 | idDet = 'topo-p-detail', | 31 | idDet = 'topo-p-detail', |
32 | panelOpts = { | 32 | panelOpts = { |
33 | - width: 268 | 33 | + width: 290 // summary and detail panel width |
34 | }, | 34 | }, |
35 | - sumMax = 262, | 35 | + sumMax = 262, // summary panel max height |
36 | - padTop = 20, | 36 | + padTop = 16, // summary panel padding below masthead |
37 | + padFudge = padTop + 6, | ||
37 | devPath = 'device'; | 38 | devPath = 'device'; |
38 | 39 | ||
39 | // internal state | 40 | // internal state |
... | @@ -90,8 +91,7 @@ | ... | @@ -90,8 +91,7 @@ |
90 | // only adjusts if the body content would be 10px or larger | 91 | // only adjusts if the body content would be 10px or larger |
91 | function adjustHeight(fromTop, max) { | 92 | function adjustHeight(fromTop, max) { |
92 | var totalPHeight, avSpace, | 93 | var totalPHeight, avSpace, |
93 | - overflow = 0, | 94 | + overflow = 0; |
94 | - pdg = 30; | ||
95 | 95 | ||
96 | if (!fromTop) { | 96 | if (!fromTop) { |
97 | $log.warn('adjustHeight: height from top of page not given'); | 97 | $log.warn('adjustHeight: height from top of page not given'); |
... | @@ -103,11 +103,12 @@ | ... | @@ -103,11 +103,12 @@ |
103 | return null; | 103 | return null; |
104 | } | 104 | } |
105 | 105 | ||
106 | + p.el().style('top', fromTop + 'px'); | ||
106 | p.el().style('height', null); | 107 | p.el().style('height', null); |
107 | body.style('height', null); | 108 | body.style('height', null); |
108 | 109 | ||
109 | totalPHeight = fromTop + p.height(); | 110 | totalPHeight = fromTop + p.height(); |
110 | - avSpace = fs.windowSize(pdg).height; | 111 | + avSpace = fs.windowSize(padFudge).height; |
111 | 112 | ||
112 | if (totalPHeight >= avSpace) { | 113 | if (totalPHeight >= avSpace) { |
113 | overflow = totalPHeight - avSpace; | 114 | overflow = totalPHeight - avSpace; |
... | @@ -123,12 +124,13 @@ | ... | @@ -123,12 +124,13 @@ |
123 | } | 124 | } |
124 | 125 | ||
125 | if (!_adjustBody(fs.noPxStyle(body, 'height') - overflow)) { | 126 | if (!_adjustBody(fs.noPxStyle(body, 'height') - overflow)) { |
126 | - return; | 127 | + return p.height(); |
127 | } | 128 | } |
128 | 129 | ||
129 | if (max && p.height() > max) { | 130 | if (max && p.height() > max) { |
130 | _adjustBody(fs.noPxStyle(body, 'height') - (p.height() - max)); | 131 | _adjustBody(fs.noPxStyle(body, 'height') - (p.height() - max)); |
131 | } | 132 | } |
133 | + return p.height(); | ||
132 | } | 134 | } |
133 | 135 | ||
134 | return { | 136 | return { |
... | @@ -188,8 +190,11 @@ | ... | @@ -188,8 +190,11 @@ |
188 | w: $window.innerWidth | 190 | w: $window.innerWidth |
189 | }; | 191 | }; |
190 | }, function () { | 192 | }, function () { |
191 | - summary.adjustHeight(sumFromTop, sumMax); | 193 | + var h = summary.adjustHeight(sumFromTop, sumMax), |
192 | - detail.adjustHeight(detail.ypos.current); | 194 | + ss = summary.panel().isVisible(), |
195 | + dtop = h && ss ? sumFromTop + h + padFudge : 0, | ||
196 | + dy = dtop || ss ? detail.ypos.current : sumFromTop; | ||
197 | + detail.adjustHeight(dy); | ||
193 | } | 198 | } |
194 | ); | 199 | ); |
195 | } | 200 | } |
... | @@ -431,7 +436,7 @@ | ... | @@ -431,7 +436,7 @@ |
431 | 436 | ||
432 | function augmentDetailPanel() { | 437 | function augmentDetailPanel() { |
433 | var d = detail, | 438 | var d = detail, |
434 | - downPos = sumFromTop + sumMax + 20; | 439 | + downPos = sumFromTop + sumMax + padFudge; |
435 | d.ypos = { up: sumFromTop, down: downPos, current: downPos}; | 440 | d.ypos = { up: sumFromTop, down: downPos, current: downPos}; |
436 | 441 | ||
437 | d._move = function (y, cb) { | 442 | d._move = function (y, cb) { | ... | ... |
... | @@ -92,7 +92,7 @@ describe('factory: fw/layer/panel.js', function () { | ... | @@ -92,7 +92,7 @@ describe('factory: fw/layer/panel.js', function () { |
92 | var p = ps.createPanel('foo'); | 92 | var p = ps.createPanel('foo'); |
93 | expect(fs.areFunctions(p, [ | 93 | expect(fs.areFunctions(p, [ |
94 | 'show', 'hide', 'toggle', 'empty', 'append', | 94 | 'show', 'hide', 'toggle', 'empty', 'append', |
95 | - 'width', 'height', 'isVisible', 'classed', 'el' | 95 | + 'width', 'height', 'bbox', 'isVisible', 'classed', 'el' |
96 | ])).toBeTruthy(); | 96 | ])).toBeTruthy(); |
97 | }); | 97 | }); |
98 | 98 | ... | ... |
-
Please register or login to post a comment