Bri Prebilic Cole
Committed by Gerrit Code Review

GUI -- Device details panel work - Panel resizes on window resize, DOM manipulat…

…ion moved out of controller into directive.

Change-Id: I680984343ee550a3cf7c76183c257b69785750c4
...@@ -59,4 +59,6 @@ ...@@ -59,4 +59,6 @@
59 59
60 </div> 60 </div>
61 61
62 + <device-details-panel></device-details-panel>
63 +
62 </div> 64 </div>
......
...@@ -203,8 +203,7 @@ ...@@ -203,8 +203,7 @@
203 203
204 function respDetailsCb(data) { 204 function respDetailsCb(data) {
205 $scope.panelData = data.details; 205 $scope.panelData = data.details;
206 - populateDetails($scope.panelData); 206 + $scope.$apply();
207 - detailsPanel.show();
208 } 207 }
209 208
210 function createDetailsPane() { 209 function createDetailsPane() {
...@@ -240,10 +239,6 @@ ...@@ -240,10 +239,6 @@
240 ttip = _ttip_; 239 ttip = _ttip_;
241 var handlers = {}; 240 var handlers = {};
242 $scope.panelData = []; 241 $scope.panelData = [];
243 - pStartY = fs.noPxStyle(d3.select('.tabular-header'), 'height')
244 - + mast.mastHeight() + topPdg;
245 - wSize = fs.windowSize(pStartY);
246 - pHeight = wSize.height;
247 242
248 function selCb($event, row) { 243 function selCb($event, row) {
249 selRow = angular.element($event.currentTarget); 244 selRow = angular.element($event.currentTarget);
...@@ -260,17 +255,56 @@ ...@@ -260,17 +255,56 @@
260 tag: 'device', 255 tag: 'device',
261 selCb: selCb 256 selCb: selCb
262 }); 257 });
263 - createDetailsPane();
264 258
265 // details panel handlers 259 // details panel handlers
266 handlers[detailsResp] = respDetailsCb; 260 handlers[detailsResp] = respDetailsCb;
267 wss.bindHandlers(handlers); 261 wss.bindHandlers(handlers);
268 262
269 $scope.$on('$destroy', function () { 263 $scope.$on('$destroy', function () {
270 - ps.destroyPanel(pName);
271 wss.unbindHandlers(handlers); 264 wss.unbindHandlers(handlers);
272 }); 265 });
273 266
274 $log.log('OvDeviceCtrl has been created'); 267 $log.log('OvDeviceCtrl has been created');
268 + }])
269 +
270 + .directive('deviceDetailsPanel', ['$rootScope', '$window',
271 + function ($rootScope, $window) {
272 + return function (scope) {
273 +
274 + function heightCalc() {
275 + pStartY = fs.noPxStyle(d3.select('.tabular-header'), 'height')
276 + + mast.mastHeight() + topPdg;
277 + wSize = fs.windowSize(pStartY);
278 + pHeight = wSize.height;
279 + }
280 + heightCalc();
281 +
282 + createDetailsPane();
283 +
284 + scope.$watch('panelData', function () {
285 + if (!fs.isEmptyObject(scope.panelData)) {
286 + populateDetails(scope.panelData);
287 + detailsPanel.show();
288 + }
289 + });
290 +
291 + $rootScope.$watchCollection(
292 + function () {
293 + return {
294 + h: $window.innerHeight,
295 + w: $window.innerWidth
296 + }
297 + }, function () {
298 + if (!fs.isEmptyObject(scope.panelData)) {
299 + heightCalc();
300 + populateDetails(scope.panelData);
301 + }
302 + }
303 + );
304 +
305 + scope.$on('$destroy', function () {
306 + ps.destroyPanel(pName);
307 + });
308 + };
275 }]); 309 }]);
276 }()); 310 }());
......