b2bf37ff0caa9981e202410a46d328e6c471d547
[portal/ric-dashboard.git] / dashboard / webapp-frontend / src / app / rd.component.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 { Component, OnInit } from '@angular/core';
21 import { Subscription } from 'rxjs';
22 import { RicInstance } from './interfaces/dashboard.types';
23 import { InstanceSelectorService } from './services/instance-selector/instance-selector.service';
24 import { InstanceSelectorDialogService } from './services/ui/instance-selector-dialog.service';
25 import { UiService } from './services/ui/ui.service';
26
27 @Component({
28   selector: 'rd-root',
29   templateUrl: './rd.component.html',
30   styleUrls: ['./rd.component.scss']
31 })
32 export class RdComponent implements OnInit {
33   showMenu = false;
34   darkModeActive: boolean;
35   selectedInstanceName: string = 'Select RIC instance';
36   private instanceChange: Subscription;
37
38   constructor(
39     public ui: UiService,
40     private instanceSelectorDialogService: InstanceSelectorDialogService,
41     private instanceSelectorService: InstanceSelectorService) {
42   }
43
44   ngOnInit() {
45     this.ui.darkModeState.subscribe((value) => {
46       this.darkModeActive = value;
47     });
48
49     this.instanceChange = this.instanceSelectorService.getSelectedInstance().subscribe((instance: RicInstance) => {
50       if (instance.name) {
51         this.selectedInstanceName = instance.name;
52       } else {
53         this.openInstanceSelectorDialog()
54       }
55     });
56   }
57
58   ngOnDestroy() {
59     this.instanceChange.unsubscribe();
60   }
61
62   modeToggleSwitch() {
63     this.ui.darkModeState.next(!this.darkModeActive);
64   }
65
66   openInstanceSelectorDialog() {
67     this.instanceSelectorDialogService.openInstanceSelectorDialog();
68   }
69
70 }