82faeac378692eb4e3661bf2f5ed51cbb3b08660
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / services / ui / error-dialog.service.ts
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2019 AT&T Intellectual Property
6  * %%
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================LICENSE_END===================================
19  */
20 import { ErrorDialogComponent } from '../../ui/error-dialog/error-dialog.component';
21 import { MatDialog } from '@angular/material/dialog';
22 import { Injectable } from '@angular/core';
23 import { UiService } from './ui.service';
24
25 @Injectable()
26 export class ErrorDialogService {
27
28   darkMode: boolean;
29   panelClass = '';
30   public errorMessage = '';
31
32   constructor(private dialog: MatDialog,
33     private ui: UiService) { }
34
35   public displayError(error: string) {
36     this.ui.darkModeState.subscribe((isDark) => {
37       this.darkMode = isDark;
38     });
39     if (this.darkMode) {
40       this.panelClass = 'dark-theme';
41     } else {
42       this.panelClass = '';
43     }
44     return this.dialog.open(ErrorDialogComponent, {
45       panelClass: this.panelClass,
46       width: '400px',
47       position: { top: '100px' },
48       disableClose: true,
49       data: { 'errorMessage': error }
50     });
51   }
52 }