[onos-3264]: Close the gap between summary and details panel

Change-Id: I3921da4a3d9e9e3f6c127692e62815a8d54a28a4
diff --git a/tools/gui/gulp-tasks/bundles/bundle-js/index.js b/tools/gui/gulp-tasks/bundles/bundle-js/index.js
index e994d30..25e0aed 100644
--- a/tools/gui/gulp-tasks/bundles/bundle-js/index.js
+++ b/tools/gui/gulp-tasks/bundles/bundle-js/index.js
@@ -60,7 +60,7 @@
     // gulp.task('bundle-vendor', () => bundle(vendor, 'vendor.js'));
     gulp.task('bundle-js', () => bundle(bundleFiles, 'onos.js'));
     gulp.task('watch-js', () => {
-        gulp.watch([GUI_BASE + '**/*.js', `!${GUI_BASE}/dist/**/*`], ['bundle-js']);
+        gulp.watch([GUI_BASE + 'app/**/*.js'], ['bundle-js']);
     }).on('change', (event) => {
         console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
     });
diff --git a/web/gui/src/main/webapp/app/view/topo/topoPanel.js b/web/gui/src/main/webapp/app/view/topo/topoPanel.js
index 3301e5b..72e3f67 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoPanel.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoPanel.js
@@ -231,6 +231,8 @@
 
         title.text(data.title);
         listProps(tbody, data);
+
+        augmentDetailPanel();
     }
 
     // === -----------------------------------------------------
@@ -365,6 +367,10 @@
         }
     }
 
+    function summaryBBox() {
+        return d3.select('#' + idSum).node().getBoundingClientRect();
+    }
+
     function hideDetailPanel() {
         detail.panel().hide();
     }
@@ -373,7 +379,8 @@
 
     function augmentDetailPanel() {
         var d = detail,
-            downPos = sumFromTop + sumMax + padFudge;
+            downPos = summaryBBox().bottom + padTop;
+
         d.ypos = { up: sumFromTop, down: downPos, current: downPos };
 
         d._move = function (y, cb) {
diff --git a/web/gui/src/main/webapp/tests/app/view/topo/topo-spec.js b/web/gui/src/main/webapp/tests/app/view/topo/topo-spec.js
index cb7fcde..e7412a8 100644
--- a/web/gui/src/main/webapp/tests/app/view/topo/topo-spec.js
+++ b/web/gui/src/main/webapp/tests/app/view/topo/topo-spec.js
@@ -31,6 +31,9 @@
         d3Topo = d3.select('body').append('div').attr('id', 'ov-topo');
         d3Topo.append('svg');
 
+        d3.select('body').append('div').attr('id', 'topo-p-summary');
+        d3.select('body').append('div').attr('id', 'topo-p-details');
+
         createController = function () {
             return $controller('OvTopoCtrl', {
                 '$scope': $scope,