Add multi-layer RIC instance selector
[portal/ric-dashboard.git] / dashboard / 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 { HttpErrorResponse } from '@angular/common/http';
22 import { MatDialog } from '@angular/material/dialog';
23 import { Injectable } from '@angular/core';
24 import { UiService } from './ui.service';
25
26 @Injectable()
27 export class ErrorDialogService {
28
29   darkMode: boolean;
30   panelClass: string;
31   public errorMessage: string;
32
33   constructor(private dialog: MatDialog,
34     public ui: UiService) { }
35
36   public displayError(error: string) {
37     this.ui.darkModeState.subscribe((isDark) => {
38       this.darkMode = isDark;
39     });
40     if (this.darkMode) {
41       this.panelClass = 'dark-theme';
42     } else {
43       this.panelClass = '';
44     }
45     return this.dialog.open(ErrorDialogComponent, {
46       panelClass: this.panelClass,
47       width: '400px',
48       position: { top: '100px' },
49       disableClose: true,
50       data: { 'errorMessage': error }
51     });
52   }
53 }