improve the dark theme
[portal/ric-dashboard.git] / webapp-frontend / src / app / catalog / catalog.component.ts
index 7f8cb68..07e0e02 100644 (file)
@@ -2,14 +2,14 @@
  * ========================LICENSE_START=================================
  * O-RAN-SC
  * %%
- * Copyright (C) 2019 AT&T Intellectual Property and Nokia
+ * Copyright (C) 2019 AT&T Intellectual Property
  * %%
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,6 +30,7 @@ import { AppConfigurationComponent } from './../app-configuration/app-configurat
 import { ConfirmDialogService } from './../services/ui/confirm-dialog.service';
 import { NotificationService } from './../services/ui/notification.service';
 import { CatalogDataSource } from './catalog.datasource';
+import { UiService } from '../services/ui/ui.service';
 
 @Component({
   selector: 'rd-app-catalog',
@@ -38,9 +39,11 @@ import { CatalogDataSource } from './catalog.datasource';
 })
 export class CatalogComponent implements OnInit {
 
+  darkMode: boolean;
+  panelClass: string = "";
   displayedColumns: string[] = ['name', 'version', 'action'];
   dataSource: CatalogDataSource;
-  @ViewChild(MatSort, {static: true}) sort: MatSort;
+  @ViewChild(MatSort, { static: true }) sort: MatSort;
 
   constructor(
     private appMgrService: AppMgrService,
@@ -48,50 +51,59 @@ export class CatalogComponent implements OnInit {
     private dialog: MatDialog,
     private errorDiaglogService: ErrorDialogService,
     private loadingDialogService: LoadingDialogService,
-    private notificationService: NotificationService) { }
+    private notificationService: NotificationService,
+    public ui: UiService) { }
 
   ngOnInit() {
-    this.dataSource = new CatalogDataSource(this.appMgrService, this.sort, this.notificationService );
+    this.dataSource = new CatalogDataSource(this.appMgrService, this.sort, this.notificationService);
     this.dataSource.loadTable();
+    this.ui.darkModeState.subscribe((isDark) => {
+      this.darkMode = isDark;
+    });
   }
 
   onConfigureApp(xapp: XMDeployableApp): void {
+    if (this.darkMode) {
+      this.panelClass = "dark-theme";
+    } else {
+      this.panelClass = "";
+    }
     const dialogRef = this.dialog.open(AppConfigurationComponent, {
+      panelClass: this.panelClass,
       width: '40%',
-      maxHeight:'500px',
+      maxHeight: '500px',
       position: {
-        top:'10%'
+        top: '10%'
       },
       data: xapp
-    });
-
+    })
   }
 
   onDeployApp(app: XMDeployableApp): void {
     this.confirmDialogService.openConfirmDialog('Deploy application ' + app.name + '?')
-      .afterClosed().subscribe( (res: boolean) => {
+      .afterClosed().subscribe((res: boolean) => {
         if (res) {
-          this.loadingDialogService.startLoading("Deploying " + app.name);
+          this.loadingDialogService.startLoading('Deploying ' + app.name);
           this.appMgrService.deployXapp(app.name)
             .pipe(
               finalize(() => this.loadingDialogService.stopLoading())
             )
             .subscribe(
-            (response: HttpResponse<Object>) => {
-              this.notificationService.success('App deploy succeeded!');
-            },
-            (her: HttpErrorResponse) => {
-              // the error field should have an ErrorTransport object
-              let msg = her.message;
-              if (her.error && her.error.message) {
-                msg = her.error.message;
-              }
-              this.notificationService.warn('App deploy failed: ' + msg);
-            })
-          );
+              (response: HttpResponse<Object>) => {
+                this.notificationService.success('App deploy succeeded!');
+              },
+              ((her: HttpErrorResponse) => {
+                // the error field should have an ErrorTransport object
+                let msg = her.message;
+                if (her.error && her.error.message) {
+                  msg = her.error.message;
+                }
+                this.notificationService.warn('App deploy failed: ' + msg);
+              })
+            );
         }
       }
-    );
+      );
   }
 
 }