diff options
author | Arundathi Patil <arundpil@in.ibm.com> | 2019-06-04 15:35:52 +0530 |
---|---|---|
committer | Arundathi Patil <arundpil@in.ibm.com> | 2019-06-04 15:36:17 +0530 |
commit | 8566f046b1dc454b8773d4f94a72fc80f0496e98 (patch) | |
tree | 612eedfade0df00ec05c3c1ebb34cdfb19e4d3e6 /cds-ui/client/src/app/common/shared/components/notification/notification.service.ts | |
parent | 184c1b55dd7bd01b2d2033ce960cb7179f0ca33c (diff) |
CCSDK-1377- Notification Implementation
Implemented notification component
Issue-ID: CCSDK-1377
Change-Id: Ib2dbcf425de9fc279072bb45c99634fbe94496e3
Signed-off-by: Arundathi Patil <arundpil@in.ibm.com>
Diffstat (limited to 'cds-ui/client/src/app/common/shared/components/notification/notification.service.ts')
-rw-r--r-- | cds-ui/client/src/app/common/shared/components/notification/notification.service.ts | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/cds-ui/client/src/app/common/shared/components/notification/notification.service.ts b/cds-ui/client/src/app/common/shared/components/notification/notification.service.ts new file mode 100644 index 000000000..83c0504ac --- /dev/null +++ b/cds-ui/client/src/app/common/shared/components/notification/notification.service.ts @@ -0,0 +1,77 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software 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. +============LICENSE_END============================================ +*/ + +import { Injectable } from '@angular/core'; +import { Router, NavigationStart } from '@angular/router'; +import { Observable, Subject } from 'rxjs'; +// import { Subject } from 'rxjs/Subject'; + +import { Notification, NotificationType} from './notification'; + +@Injectable({ + providedIn: 'root' +}) +export class NotificationService { + + private subject = new Subject<Notification>(); + private keepAfterRouteChange = false; + + constructor(private router: Router) { + router.events.subscribe(event => { + if (event instanceof NavigationStart) { + if (this.keepAfterRouteChange) { + this.keepAfterRouteChange = false; + } else { + this.clear(); + } + } + }); + } + + getAlert(alertId?: string): Observable<any> { + return this.subject.asObservable(); + } + + success(message: string) { + this.alert(new Notification({ message, type: NotificationType.Success })); + } + + error(message: string) { + this.alert(new Notification({ message, type: NotificationType.Error })); + } + + info(message: string) { + this.alert(new Notification({ message, type: NotificationType.Info })); + } + + warn(message: string) { + this.alert(new Notification({ message, type: NotificationType.Warning })); + } + + alert(alert: Notification) { + this.keepAfterRouteChange = alert.keepAfterRouteChange; + this.subject.next(alert); + } + + clear(alertId?: string) { + this.subject.next(new Notification({ alertId })); + } +} |