mirror of
https://github.com/nasa/openmct.git
synced 2025-01-23 21:08:00 +00:00
[About] Provide default cancel for overlays
For overlays that do not need to do special things when a window is dismissed, provide a default cancel function. This simplifies implementation of the information-only dialogs, such as the About dialog, WTD-667.
This commit is contained in:
parent
97d4f34ae2
commit
553eb2dd75
@ -76,8 +76,8 @@ define(
|
|||||||
// Add the overlay using the OverlayService, which
|
// Add the overlay using the OverlayService, which
|
||||||
// will handle actual insertion into the DOM
|
// will handle actual insertion into the DOM
|
||||||
overlay = overlayService.createOverlay(
|
overlay = overlayService.createOverlay(
|
||||||
overlayModel,
|
"overlay-dialog",
|
||||||
"overlay-dialog"
|
overlayModel
|
||||||
);
|
);
|
||||||
|
|
||||||
// Track that a dialog is already visible, to
|
// Track that a dialog is already visible, to
|
||||||
|
@ -25,11 +25,21 @@ define(
|
|||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function OverlayService($document, $compile, $rootScope) {
|
function OverlayService($document, $compile, $rootScope) {
|
||||||
function createOverlay(overlayModel, key) {
|
function createOverlay(key, overlayModel) {
|
||||||
// Create a new scope for this overlay
|
// Create a new scope for this overlay
|
||||||
var scope = $rootScope.$new(),
|
var scope = $rootScope.$new(),
|
||||||
element;
|
element;
|
||||||
|
|
||||||
|
// Stop showing the overlay; additionally, release the scope
|
||||||
|
// that it uses.
|
||||||
|
function dismiss() {
|
||||||
|
scope.$destroy();
|
||||||
|
element.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no model is supplied, just fill in a default "cancel"
|
||||||
|
overlayModel = overlayModel || { cancel: dismiss };
|
||||||
|
|
||||||
// Populate the scope; will be passed directly to the template
|
// Populate the scope; will be passed directly to the template
|
||||||
scope.overlay = overlayModel;
|
scope.overlay = overlayModel;
|
||||||
scope.key = key;
|
scope.key = key;
|
||||||
@ -38,12 +48,7 @@ define(
|
|||||||
element = $compile(TEMPLATE)(scope);
|
element = $compile(TEMPLATE)(scope);
|
||||||
$document.find('body').prepend(element);
|
$document.find('body').prepend(element);
|
||||||
|
|
||||||
// Stop showing the overlay; additionally, release the scope
|
|
||||||
// that it uses.
|
|
||||||
function dismiss() {
|
|
||||||
scope.$destroy();
|
|
||||||
element.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
dismiss: dismiss
|
dismiss: dismiss
|
||||||
@ -57,11 +62,12 @@ define(
|
|||||||
* template (as pointed to by the `key` argument) is
|
* template (as pointed to by the `key` argument) is
|
||||||
* responsible for having a useful z-order, and for
|
* responsible for having a useful z-order, and for
|
||||||
* blocking user interactions if appropriate.
|
* blocking user interactions if appropriate.
|
||||||
|
*
|
||||||
|
* @param {string} key the symbolic key which identifies
|
||||||
|
* the template of the overlay to be shown
|
||||||
* @param {object} overlayModel the model to pass to the
|
* @param {object} overlayModel the model to pass to the
|
||||||
* included overlay template (this will be passed
|
* included overlay template (this will be passed
|
||||||
* in via ng-model)
|
* in via ng-model)
|
||||||
* @param {string} key the symbolic key which identifies
|
|
||||||
* the template of the overlay to be shown
|
|
||||||
*/
|
*/
|
||||||
createOverlay: createOverlay
|
createOverlay: createOverlay
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user