X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dashboard%2Fwebapp-frontend%2Fsrc%2Fapp%2Fapp-control%2Fapp-control.component.ts;h=9a5d0724a70d97f171a05c037880f1a2ba807c60;hb=8139455dc6a9db3958ececed5a54f5dc3541d429;hp=fd2b26c0f6d7479aeaf31968e0f8fb8ed2da5623;hpb=64a5e9470799236f0af4ce2df98f77c94eb1bed3;p=portal%2Fric-dashboard.git diff --git a/dashboard/webapp-frontend/src/app/app-control/app-control.component.ts b/dashboard/webapp-frontend/src/app/app-control/app-control.component.ts index fd2b26c0..9a5d0724 100644 --- a/dashboard/webapp-frontend/src/app/app-control/app-control.component.ts +++ b/dashboard/webapp-frontend/src/app/app-control/app-control.component.ts @@ -19,6 +19,7 @@ */ import { HttpErrorResponse, HttpResponse } from '@angular/common/http'; import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; import { MatSort } from '@angular/material/sort'; import { Router } from '@angular/router'; import { Subscription } from 'rxjs'; @@ -31,6 +32,8 @@ import { ConfirmDialogService } from '../services/ui/confirm-dialog.service'; import { ErrorDialogService } from '../services/ui/error-dialog.service'; import { LoadingDialogService } from '../services/ui/loading-dialog.service'; import { NotificationService } from '../services/ui/notification.service'; +import { UiService } from '../services/ui/ui.service'; +import { AppConfigurationComponent } from './../app-configuration/app-configuration.component'; import { AppControlAnimations } from './app-control.animations'; import { AppControlDataSource } from './app-control.datasource'; @@ -42,6 +45,8 @@ import { AppControlDataSource } from './app-control.datasource'; }) export class AppControlComponent implements OnInit, OnDestroy { + darkMode: boolean; + panelClass: string; displayedColumns: string[] = ['xapp', 'name', 'status', 'ip', 'port', 'action']; dataSource: AppControlDataSource; @ViewChild(MatSort, { static: true }) sort: MatSort; @@ -51,15 +56,21 @@ export class AppControlComponent implements OnInit, OnDestroy { constructor( private appMgrSvc: AppMgrService, private router: Router, + private dialog: MatDialog, private confirmDialogService: ConfirmDialogService, private errorDialogService: ErrorDialogService, private loadingDialogService: LoadingDialogService, public instanceSelectorService: InstanceSelectorService, - private notificationService: NotificationService) { } + private notificationService: NotificationService, + public ui: UiService + ) { } ngOnInit() { this.dataSource = new AppControlDataSource(this.appMgrSvc, this.sort, this.notificationService); + this.ui.darkModeState.subscribe((isDark) => { + this.darkMode = isDark; + }); this.instanceChange = this.instanceSelectorService.getSelectedInstance().subscribe((instance: RicInstance) => { if (instance.key) { this.instanceKey = instance.key; @@ -74,13 +85,28 @@ export class AppControlComponent implements OnInit, OnDestroy { controlApp(app: XappControlRow): void { // TODO: identify apps without hardcoding to names - const acAppPattern0 = /[Aa][Dd][Mm][Ii][Nn]/; - const acAppPattern1 = /[Aa][Dd][Mm][Ii][Ss]{2}[Ii][Oo][Nn]/; - if (acAppPattern0.test(app.xapp) || acAppPattern1.test(app.xapp)) { - this.router.navigate(['/ac']); + this.errorDialogService.displayError('No control available for ' + app.xapp + ' (yet)'); + } + + onConfigureApp(xappRow: XappControlRow): void { + if (this.darkMode) { + this.panelClass = 'dark-theme'; } else { - this.errorDialogService.displayError('No control available for ' + app.xapp + ' (yet)'); + this.panelClass = ''; } + const dialogRef = this.dialog.open(AppConfigurationComponent, { + panelClass: this.panelClass, + width: '80%', + maxHeight: '70%', + position: { + top: '10%' + }, + data: { + xapp: xappRow.xapp, + instanceKey: this.instanceKey + } + + }); } onUndeployApp(app: XappControlRow): void {