GUI -- Ensure that topology view dialog is closed if we navigate away from the view,
  or if we switch overlays.
 - also add setTitle() function to dialog API.

Change-Id: I68bf1ff3f329e61bcf41512a9ebdefb1be7a0f95
diff --git a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
index 0628544..804e2a3 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
@@ -23,7 +23,7 @@
     'use strict';
 
     // injected references
-    var $log, fs, tbs, ps, tov, api;
+    var $log, fs, tbs, ps, tov, tds, api;
 
     // API:
     //  getActionEntry
@@ -192,6 +192,8 @@
             });
         }
 
+        // ensure dialog has closed (if opened by outgoing overlay)
+        tds.closeDialog();
         thirdRow.clear();
 
         if (!order.length) {
@@ -271,14 +273,15 @@
     angular.module('ovTopo')
         .factory('TopoToolbarService',
         ['$log', 'FnService', 'ToolbarService', 'PrefsService',
-            'TopoOverlayService',
+            'TopoOverlayService', 'TopoDialogService',
 
-        function (_$log_, _fs_, _tbs_, _ps_, _tov_) {
+        function (_$log_, _fs_, _tbs_, _ps_, _tov_, _tds_) {
             $log = _$log_;
             fs = _fs_;
             tbs = _tbs_;
             ps = _ps_;
             tov = _tov_;
+            tds = _tds_;
 
             return {
                 init: init,