Simon Hunt

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
......@@ -30,7 +30,7 @@
// references to injected services etc.
var $scope, $log, $cookies, fs, ks, zs, gs, ms, sus, flash, wss, ps,
tes, tfs, tps, tis, tss, tls, tts, tos, fltr, ttbs, ttip, tov;
tds, tes, tfs, tps, tis, tss, tls, tts, tos, fltr, ttbs, ttip, tov;
// DOM elements
var ovtopo, svg, defs, zoomLayer, mapG, spriteG, forceG, noDevsLayer;
......@@ -425,7 +425,7 @@
.controller('OvTopoCtrl', ['$scope', '$log', '$location', '$timeout',
'$cookies', 'FnService', 'MastService', 'KeyService', 'ZoomService',
'GlyphService', 'MapService', 'SvgUtilService', 'FlashService',
'WebSocketService', 'PrefsService',
'WebSocketService', 'PrefsService', 'TopoDialogService',
'TopoEventService', 'TopoForceService', 'TopoPanelService',
'TopoInstService', 'TopoSelectService', 'TopoLinkService',
'TopoTrafficService', 'TopoObliqueService', 'TopoFilterService',
......@@ -433,9 +433,9 @@
'TopoOverlayService',
function (_$scope_, _$log_, $loc, $timeout, _$cookies_, _fs_, mast, _ks_,
_zs_, _gs_, _ms_, _sus_, _flash_, _wss_, _ps_, _tes_, _tfs_,
_tps_, _tis_, _tss_, _tls_, _tts_, _tos_, _fltr_, _ttbs_, tspr,
_ttip_, _tov_) {
_zs_, _gs_, _ms_, _sus_, _flash_, _wss_, _ps_, _tds_, _tes_,
_tfs_, _tps_, _tis_, _tss_, _tls_, _tts_, _tos_, _fltr_,
_ttbs_, tspr, _ttip_, _tov_) {
var params = $loc.search(),
projection,
dim,
......@@ -461,6 +461,7 @@
flash = _flash_;
wss = _wss_;
ps = _ps_;
tds = _tds_;
tes = _tes_;
tfs = _tfs_;
// TODO: consider funnelling actions through TopoForceService...
......@@ -495,6 +496,7 @@
tes.stop();
ks.unbindKeys();
tps.destroyPanels();
tds.closeDialog();
tis.destroyInst();
tfs.destroyForce();
ttbs.destroyToolbar();
......
......@@ -106,6 +106,13 @@
.on('click', invoke);
}
function setTitle(title) {
if (pApi) {
pApi.appendHeader('h2').text(title);
}
return dApi;
}
function addContent(content) {
if (pApi) {
pApi.appendBody(content);
......@@ -127,11 +134,11 @@
pApi = createDialog();
}
pApi.reset();
pApi.appendHeader('h2').text('=dialog=');
panel.show();
// return the dialog object API
dApi = {
setTitle: setTitle,
addContent: addContent,
addButton: addButton
};
......
......@@ -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,
......