Notifications progress method (#2193)
* Added progress method to notifications so no longer dependent on reactive properties * Updated notification launch controller to use new progress method * Added progress function to Notifications API. Introduced NotificationService compatibility layer for legacy code
This commit is contained in:
committed by
Deep Tailor
parent
c3b7e7869e
commit
6f1b5b4ae3
@@ -2,31 +2,14 @@
|
||||
ng-class="'message-severity-' + ngModel.severity">
|
||||
<div class="w-message-contents">
|
||||
<div class="top-bar">
|
||||
<div class="title">{{ngModel.title}}</div>
|
||||
</div>
|
||||
<div class="hint" ng-hide="ngModel.hint === undefined">
|
||||
{{ngModel.hint}}
|
||||
<span ng-if="ngModel.timestamp !== undefined">[{{ngModel.timestamp}}]</span>
|
||||
<div class="title">{{ngModel.message}}</div>
|
||||
</div>
|
||||
<div class="message-body">
|
||||
<div class="message-action">
|
||||
{{ngModel.actionText}}
|
||||
</div>
|
||||
<mct-include key="'progress-bar'"
|
||||
ng-model="ngModel"
|
||||
ng-show="ngModel.progress !== undefined || ngModel.unknownProgress"></mct-include>
|
||||
ng-show="ngModel.progressPerc !== undefined"></mct-include>
|
||||
</div>
|
||||
<div class="bottom-bar">
|
||||
<a ng-repeat="dialogOption in ngModel.options"
|
||||
class="s-button"
|
||||
ng-click="dialogOption.callback()">
|
||||
{{dialogOption.label}}
|
||||
</a>
|
||||
<a class="s-button major"
|
||||
ng-if="ngModel.primaryOption"
|
||||
ng-click="ngModel.primaryOption.callback()">
|
||||
{{ngModel.primaryOption.label}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<span class="l-progress-bar s-progress-bar"
|
||||
ng-class="{ indeterminate:ngModel.unknownProgress }">
|
||||
ng-class="{ indeterminate:ngModel.progressPerc === 'unknown' }">
|
||||
<span class="progress-amt-holder">
|
||||
<span class="progress-amt" style="width: {{ngModel.progress}}%"></span>
|
||||
<span class="progress-amt" style="width: {{ngModel.progressPerc === 'unknown' ? 100 : ngModel.progressPerc}}%"></span>
|
||||
</span>
|
||||
</span>
|
||||
<div class="progress-info hint" ng-hide="ngModel.progressText === undefined">
|
||||
<span class="progress-amt-text" ng-show="ngModel.progress > 0">{{ngModel.progress}}% complete. </span>
|
||||
<span class="progress-amt-text" ng-show="ngModel.progressPerc !== 'unknown' && ngModel.progressPerc > 0">{{ngModel.progressPerc}}% complete. </span>
|
||||
{{ngModel.progressText}}
|
||||
</div>
|
||||
|
||||
@@ -50,7 +50,7 @@ define(
|
||||
};
|
||||
$scope.dismiss = function (notification, $event) {
|
||||
$event.stopPropagation();
|
||||
notification.dismissOrMinimize();
|
||||
notification.dismiss();
|
||||
};
|
||||
$scope.maximize = function (notification) {
|
||||
if (notification.model.severity !== "info") {
|
||||
|
||||
@@ -23,11 +23,13 @@
|
||||
define([
|
||||
"./src/NotificationIndicatorController",
|
||||
"./src/NotificationIndicator",
|
||||
"./src/NotificationService",
|
||||
"./res/notification-indicator.html",
|
||||
'legacyRegistry'
|
||||
], function (
|
||||
NotificationIndicatorController,
|
||||
NotificationIndicator,
|
||||
NotificationService,
|
||||
notificationIndicatorTemplate,
|
||||
legacyRegistry
|
||||
) {
|
||||
@@ -46,7 +48,7 @@ define([
|
||||
"implementation": NotificationIndicatorController,
|
||||
"depends": [
|
||||
"$scope",
|
||||
"notificationService",
|
||||
"openmct",
|
||||
"dialogService"
|
||||
]
|
||||
}
|
||||
@@ -61,7 +63,7 @@ define([
|
||||
{
|
||||
"key": "notificationService",
|
||||
"implementation": function (openmct) {
|
||||
return openmct.notifications;
|
||||
return new NotificationService.default(openmct);
|
||||
},
|
||||
"depends": [
|
||||
"openmct"
|
||||
|
||||
@@ -35,9 +35,9 @@ define(
|
||||
* @param dialogService
|
||||
* @constructor
|
||||
*/
|
||||
function NotificationIndicatorController($scope, notificationService, dialogService) {
|
||||
$scope.notifications = notificationService.notifications;
|
||||
$scope.highest = notificationService.highest;
|
||||
function NotificationIndicatorController($scope, openmct, dialogService) {
|
||||
$scope.notifications = openmct.notifications.notifications;
|
||||
$scope.highest = openmct.notifications.highest;
|
||||
|
||||
/**
|
||||
* Launch a dialog showing a list of current notifications.
|
||||
@@ -48,7 +48,7 @@ define(
|
||||
title: "Messages",
|
||||
//Launch the message list dialog with the models
|
||||
// from the notifications
|
||||
messages: notificationService.notifications
|
||||
messages: openmct.notifications.notifications
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
64
platform/commonUI/notification/src/NotificationService.js
Normal file
64
platform/commonUI/notification/src/NotificationService.js
Normal file
@@ -0,0 +1,64 @@
|
||||
/*****************************************************************************
|
||||
* Open MCT, Copyright (c) 2014-2018, United States Government
|
||||
* as represented by the Administrator of the National Aeronautics and Space
|
||||
* Administration. All rights reserved.
|
||||
*
|
||||
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Open MCT includes source code licensed under additional open source
|
||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||
* this source code distribution or the Licensing information page available
|
||||
* at runtime from the About dialog for additional information.
|
||||
*****************************************************************************/
|
||||
export default class NotificationService {
|
||||
constructor(openmct) {
|
||||
this.openmct = openmct;
|
||||
}
|
||||
info(message) {
|
||||
if (typeof message === 'string') {
|
||||
return this.openmct.notifications.info(message);
|
||||
} else {
|
||||
if (message.hasOwnProperty('progress')) {
|
||||
return this.openmct.notifications.progress(message.title, message.progress, message.progressText);
|
||||
} else {
|
||||
return this.openmct.notifications.info(message.title);
|
||||
}
|
||||
}
|
||||
}
|
||||
alert(message) {
|
||||
if (typeof message === 'string') {
|
||||
return this.openmct.notifications.alert(message);
|
||||
} else {
|
||||
return this.openmct.notifications.alert(message.title);
|
||||
}
|
||||
}
|
||||
error(message) {
|
||||
if (typeof message === 'string') {
|
||||
return this.openmct.notifications.error(message);
|
||||
} else {
|
||||
return this.openmct.notifications.error(message.title);
|
||||
}
|
||||
}
|
||||
notify(options) {
|
||||
switch (options.severity) {
|
||||
case 'info':
|
||||
return this.info(options);
|
||||
case 'alert':
|
||||
return this.alert(options);
|
||||
case 'error':
|
||||
return this.error(options);
|
||||
}
|
||||
}
|
||||
getAllNotifications() {
|
||||
return this.openmct.notifications.notifications;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user