improve dashboard UI
[portal/ric-dashboard.git] / webapp-frontend / src / app / rd.component.ts
index 1673280..31bd764 100644 (file)
  * ========================LICENSE_END===================================
  */
 import { Component, OnInit } from '@angular/core';
+import { Subscription } from 'rxjs';
+import { RicInstance } from './interfaces/dashboard.types';
+import { InstanceSelectorService } from './services/instance-selector/instance-selector.service';
+import { InstanceSelectorDialogService } from './services/ui/instance-selector-dialog.service';
 import { UiService } from './services/ui/ui.service';
 
 @Component({
@@ -29,21 +33,39 @@ export class RdComponent implements OnInit {
   showMenu = false;
   darkModeActive: boolean;
 
-  constructor(public ui: UiService) {
+  private selectedInstanceName: string = 'Select RIC instance';
+  private instanceChange: Subscription;
+
+  constructor(
+    public ui: UiService,
+    private instanceSelectorDialogService: InstanceSelectorDialogService,
+    private instanceSelectorService: InstanceSelectorService) {
   }
 
   ngOnInit() {
     this.ui.darkModeState.subscribe((value) => {
       this.darkModeActive = value;
     });
+
+    this.instanceChange = this.instanceSelectorService.getSelectedInstance().subscribe((instance: RicInstance) => {
+      if (instance.name) {
+        this.selectedInstanceName = instance.name;
+      } else {
+        this.openInstanceSelectorDialog()
+      }
+    });
   }
 
-  toggleMenu() {
-    this.showMenu = !this.showMenu;
+  ngOnDestroy() {
+    this.instanceChange.unsubscribe();
   }
 
   modeToggleSwitch() {
     this.ui.darkModeState.next(!this.darkModeActive);
   }
 
+  openInstanceSelectorDialog() {
+    this.instanceSelectorDialogService.openInstanceSelectorDialog();
+  }
+
 }