From 9ed0faf04c7b65d86796aff901c5793dda581d43 Mon Sep 17 00:00:00 2001 From: jh245g Date: Fri, 21 Jun 2019 15:59:28 -0400 Subject: [PATCH] rework admin table Change-Id: Ie7f475c2fc4254e6b6c7cfcf1f9143b8be9d455c Signed-off-by: Jun (Nicolas) Hu Issue-ID: RICPLT-1375 --- docs/release-notes.rst | 1 + .../add-dashboard-user-dialog.component.html | 44 +++++++++++ .../add-dashboard-user-dialog.component.scss | 23 ++++++ .../add-dashboard-user-dialog.component.ts | 61 +++++++++++++++ webapp-frontend/src/app/admin/admin.component.html | 24 ------ webapp-frontend/src/app/admin/admin.component.ts | 70 ----------------- .../edit-dashboard-user-dialog.component.html | 44 +++++++++++ .../edit-dashboard-user-dialog.component.scss | 23 ++++++ .../edit-dashboard-user-dialog.component.ts | 63 ++++++++++++++++ .../{admin.component.css => user.component.css} | 25 ++++-- webapp-frontend/src/app/admin/user.component.html | 67 ++++++++++++++++ ...in.component.spec.ts => user.component.spec.ts} | 10 +-- webapp-frontend/src/app/admin/user.component.ts | 81 ++++++++++++++++++++ webapp-frontend/src/app/admin/user.datasource.ts | 88 ++++++++++++++++++++++ webapp-frontend/src/app/app-routing.module.ts | 4 +- webapp-frontend/src/app/app.module.ts | 15 +++- 16 files changed, 532 insertions(+), 111 deletions(-) create mode 100644 webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.html create mode 100644 webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.scss create mode 100644 webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.ts delete mode 100644 webapp-frontend/src/app/admin/admin.component.html delete mode 100644 webapp-frontend/src/app/admin/admin.component.ts create mode 100644 webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.html create mode 100644 webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.scss create mode 100644 webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.ts rename webapp-frontend/src/app/admin/{admin.component.css => user.component.css} (73%) create mode 100644 webapp-frontend/src/app/admin/user.component.html rename webapp-frontend/src/app/admin/{admin.component.spec.ts => user.component.spec.ts} (83%) create mode 100644 webapp-frontend/src/app/admin/user.component.ts create mode 100644 webapp-frontend/src/app/admin/user.datasource.ts diff --git a/docs/release-notes.rst b/docs/release-notes.rst index c1d2e00c..91a71d05 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -39,6 +39,7 @@ Version 1.0.4, 21 June 2019 * Add build number to dashboard version string * Move mock admin screen user data to backend * Update App manager client to spec version 0.1.5 +* Rework admin table Version 1.0.3, 28 May 2019 -------------------------- diff --git a/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.html b/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.html new file mode 100644 index 00000000..c58c0227 --- /dev/null +++ b/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.html @@ -0,0 +1,44 @@ + +
+ Add Dashboard User +
+ +
+
+ + + + + + +
+
+ + + Active + Inactive + +
+ +
diff --git a/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.scss b/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.scss new file mode 100644 index 00000000..284be7b4 --- /dev/null +++ b/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.scss @@ -0,0 +1,23 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * %% + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ + +.input-display-block { + display: block; +} \ No newline at end of file diff --git a/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.ts b/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.ts new file mode 100644 index 00000000..00e295ef --- /dev/null +++ b/webapp-frontend/src/app/admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component.ts @@ -0,0 +1,61 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * %% + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ + +import { Component, OnInit } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { MatDialogRef } from '@angular/material/dialog'; +import { DashboardService } from '../../services/dashboard/dashboard.service'; +import { ErrorDialogService } from '../../services/ui/error-dialog.service'; + +@Component({ + selector: 'add-dashboard-user-dialog', + templateUrl: './add-dashboard-user-dialog.component.html', + styleUrls: ['./add-dashboard-user-dialog.component.scss'] +}) +export class AddDashboardUserDialogComponent implements OnInit { + + public addUserDialogForm: FormGroup; + + constructor( + private dialogRef: MatDialogRef, + private dashSvc: DashboardService, + private errorService: ErrorDialogService) { } + + ngOnInit() { + this.addUserDialogForm = new FormGroup({ + firstName: new FormControl('', [Validators.required]), + lastName: new FormControl('', [Validators.required]), + status: new FormControl('', [Validators.required]) + }); + } + + onCancel() { + this.dialogRef.close(false); + } + + public addUser = (FormValue) => { + if (this.addUserDialogForm.valid) { + // send the request to backend when it's ready + const aboutError = 'Not implemented yet'; + this.errorService.displayError(aboutError); + } + } + +} diff --git a/webapp-frontend/src/app/admin/admin.component.html b/webapp-frontend/src/app/admin/admin.component.html deleted file mode 100644 index 1cc91738..00000000 --- a/webapp-frontend/src/app/admin/admin.component.html +++ /dev/null @@ -1,24 +0,0 @@ - -
-

Users

- - -
diff --git a/webapp-frontend/src/app/admin/admin.component.ts b/webapp-frontend/src/app/admin/admin.component.ts deleted file mode 100644 index 8f8a2629..00000000 --- a/webapp-frontend/src/app/admin/admin.component.ts +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ========================LICENSE_START================================= - * O-RAN-SC - * %% - * Copyright (C) 2019 AT&T Intellectual Property and Nokia - * %% - * 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. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================LICENSE_END=================================== - */ -import { Component, OnInit } from '@angular/core'; -import { LocalDataSource } from 'ng2-smart-table'; -import { DashboardService } from '../services/dashboard/dashboard.service'; -import { DashboardUser } from '../interfaces/dashboard.types'; - -@Component({ - selector: 'app-admin', - templateUrl: './admin.component.html', - styleUrls: ['./admin.component.css'] -}) -export class AdminComponent implements OnInit { - - usersettings = { - columns: { - id: { - title: 'ID', - type: 'number', - }, - firstName: { - title: 'First Name', - type: 'string', - }, - lastName: { - title: 'Last Name', - type: 'string', - }, - status: { - title: 'Status', - type: 'string', - }, - }, - }; - - usersource: LocalDataSource = new LocalDataSource(); - - constructor(private service: DashboardService) { - } - - ngOnInit() { - this.service.getUsers().subscribe((res: DashboardUser[]) => this.usersource.load(res)); - } - - onDeleteUserConfirm(event): void { - if (window.confirm('Are you sure you want to delete?')) { - event.confirm.resolve(); - } else { - event.confirm.reject(); - } - } - -} diff --git a/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.html b/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.html new file mode 100644 index 00000000..3dc8a4b3 --- /dev/null +++ b/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.html @@ -0,0 +1,44 @@ + +
+ Edit Dashboard User +
+ +
+
+ + + + + + +
+
+ + + Active + Inactive + +
+ +
diff --git a/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.scss b/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.scss new file mode 100644 index 00000000..284be7b4 --- /dev/null +++ b/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.scss @@ -0,0 +1,23 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * %% + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ + +.input-display-block { + display: block; +} \ No newline at end of file diff --git a/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.ts b/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.ts new file mode 100644 index 00000000..f8f50de8 --- /dev/null +++ b/webapp-frontend/src/app/admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component.ts @@ -0,0 +1,63 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * %% + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ + +import { Component, Inject, OnInit } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { DashboardService } from '../../services/dashboard/dashboard.service'; +import { ErrorDialogService } from '../../services/ui/error-dialog.service'; + + +@Component({ + selector: 'edit-app-dashboard-user-dialog', + templateUrl: './edit-dashboard-user-dialog.component.html', + styleUrls: ['./edit-dashboard-user-dialog.component.scss'] +}) +export class EditDashboardUserDialogComponent implements OnInit { + + public editUserDialogForm: FormGroup; + + constructor( + @Inject(MAT_DIALOG_DATA) public data, + private dialogRef: MatDialogRef, + private dashSvc: DashboardService, + private errorService: ErrorDialogService) { } + + ngOnInit() { + this.editUserDialogForm = new FormGroup({ + firstName: new FormControl(this.data.firstName , [Validators.required]), + lastName: new FormControl(this.data.lastName, [Validators.required]), + status: new FormControl(this.data.status, [Validators.required]) + }); + } + + onCancel() { + this.dialogRef.close(false); + } + + public editUser = (FormValue) => { + if (this.editUserDialogForm.valid) { + // send the request to backend when it's ready + const aboutError = 'Not implemented yet'; + this.errorService.displayError(aboutError); + } + } + +} diff --git a/webapp-frontend/src/app/admin/admin.component.css b/webapp-frontend/src/app/admin/user.component.css similarity index 73% rename from webapp-frontend/src/app/admin/admin.component.css rename to webapp-frontend/src/app/admin/user.component.css index 380dd352..4d06c6d9 100644 --- a/webapp-frontend/src/app/admin/admin.component.css +++ b/webapp-frontend/src/app/admin/user.component.css @@ -17,10 +17,10 @@ * limitations under the License. * ========================LICENSE_END=================================== */ - .admin__section { +.user__section { } -.admin__header { +.user__header { text-align: center; color: #432c85; font-size: 50px; @@ -29,10 +29,23 @@ transform: translate(149 56); } -:host /deep/ ng2-smart-table tbody > tr > td{ - text-align: center; +.spinner-container { + height: 360px; + width: 390px; + position: fixed; } -:host /deep/ ng2-smart-table thead th{ - text-align: center; +.spinner-container mat-spinner { + margin: 130px auto 0 auto; +} + +.user-table { + width: 99%; + min-height: 150px; + margin-top: 10px; + background-color: transparent; +} + +.user-button-row button { + margin-right: 5px; } diff --git a/webapp-frontend/src/app/admin/user.component.html b/webapp-frontend/src/app/admin/user.component.html new file mode 100644 index 00000000..e4b30474 --- /dev/null +++ b/webapp-frontend/src/app/admin/user.component.html @@ -0,0 +1,67 @@ + +
+

Users

+ +
+ +
+ + + + ID + {{element.id}} + + + + First Name + {{element.firstName}} + + + + Last Name + {{element.lastName}} + + + + Status + {{element.status}} + + + + Action + +
+ + +
+
+
+ + + +
+
diff --git a/webapp-frontend/src/app/admin/admin.component.spec.ts b/webapp-frontend/src/app/admin/user.component.spec.ts similarity index 83% rename from webapp-frontend/src/app/admin/admin.component.spec.ts rename to webapp-frontend/src/app/admin/user.component.spec.ts index 2bfc0c5b..1cc97c58 100644 --- a/webapp-frontend/src/app/admin/admin.component.spec.ts +++ b/webapp-frontend/src/app/admin/user.component.spec.ts @@ -19,21 +19,21 @@ */ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { AdminComponent } from './admin.component'; +import { UserComponent } from './user.component'; -describe('AdminComponent', () => { +describe('UserComponent', () => { let component: AdminComponent; - let fixture: ComponentFixture; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ AdminComponent ] + declarations: [UserComponent] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(AdminComponent); + fixture = TestBed.createComponent(UserComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/webapp-frontend/src/app/admin/user.component.ts b/webapp-frontend/src/app/admin/user.component.ts new file mode 100644 index 00000000..a0bd89b4 --- /dev/null +++ b/webapp-frontend/src/app/admin/user.component.ts @@ -0,0 +1,81 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * %% + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSort } from '@angular/material/sort'; +import { DashboardService } from '../services/dashboard/dashboard.service'; +import { ErrorDialogService } from '../services/ui/error-dialog.service'; +import { DashboardUser } from './../interfaces/dashboard.types'; +import { ConfirmDialogService } from './../services/ui/confirm-dialog.service'; +import { NotificationService } from './../services/ui/notification.service'; +import { UserDataSource } from './user.datasource'; +import { AddDashboardUserDialogComponent } from './add-dashboard-user-dialog/add-dashboard-user-dialog.component'; +import { EditDashboardUserDialogComponent } from './edit-dashboard-user-dialog/edit-dashboard-user-dialog.component'; + +@Component({ + selector: 'app-user', + templateUrl: './user.component.html', + styleUrls: ['./user.component.css'] +}) + +export class UserComponent implements OnInit { + + displayedColumns: string[] = ['id', 'firstName', 'lastName', 'status','action']; + dataSource: UserDataSource; + @ViewChild(MatSort) sort: MatSort; + + constructor( + private dashboardSvc: DashboardService, + private confirmDialogService: ConfirmDialogService, + private errorService: ErrorDialogService, + private notification: NotificationService, + public dialog: MatDialog) { } + + ngOnInit() { + this.dataSource = new UserDataSource(this.dashboardSvc, this.sort); + this.dataSource.loadTable(); + } + + editUser(user: DashboardUser) { + const dialogRef = this.dialog.open(EditDashboardUserDialogComponent, { + width: '450px', + data: user + }); + dialogRef.afterClosed().subscribe(result => { + this.dataSource.loadTable(); + }); + } + + + deleteUser() { + const aboutError = 'Not implemented yet'; + this.errorService.displayError(aboutError); + } + + addUser() { + const dialogRef = this.dialog.open(AddDashboardUserDialogComponent, { + width: '450px' + }); + dialogRef.afterClosed().subscribe(result => { + this.dataSource.loadTable(); + }); + } +} + diff --git a/webapp-frontend/src/app/admin/user.datasource.ts b/webapp-frontend/src/app/admin/user.datasource.ts new file mode 100644 index 00000000..5b57d6b2 --- /dev/null +++ b/webapp-frontend/src/app/admin/user.datasource.ts @@ -0,0 +1,88 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * %% + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================LICENSE_END=================================== + */ + +import { CollectionViewer, DataSource } from '@angular/cdk/collections'; +import { MatSort } from '@angular/material'; +import { merge } from 'rxjs'; +import { BehaviorSubject } from 'rxjs/BehaviorSubject'; +import { Observable } from 'rxjs/Observable'; +import { of } from 'rxjs/observable/of'; +import { catchError, finalize, map } from 'rxjs/operators'; +import { DashboardUser } from '../interfaces/dashboard.types'; +import { DashboardService } from '../services/dashboard/dashboard.service'; + +export class UserDataSource extends DataSource { + + private usersSubject = new BehaviorSubject([]); + + private loadingSubject = new BehaviorSubject(false); + + public loading$ = this.loadingSubject.asObservable(); + + constructor(private dashboardSvc: DashboardService, private sort: MatSort) { + super(); + }; + + loadTable() { + this.loadingSubject.next(true); + this.dashboardSvc.getUsers() + .pipe( + catchError(() => of([])), + finalize(() => this.loadingSubject.next(false)) + ) + .subscribe(Users => this.usersSubject.next(Users)) + } + + connect(collectionViewer: CollectionViewer): Observable { + const dataMutations = [ + this.usersSubject.asObservable(), + this.sort.sortChange + ]; + return merge(...dataMutations).pipe(map(() => { + return this.getSortedData([...this.usersSubject.getValue()]); + })); + } + + disconnect(collectionViewer: CollectionViewer): void { + this.usersSubject.complete(); + this.loadingSubject.complete(); + } + + private getSortedData(data: DashboardUser[]) { + if (!this.sort.active || this.sort.direction === '') { + return data; + } + + return data.sort((a: DashboardUser, b: DashboardUser) => { + const isAsc = this.sort.direction === 'asc'; + switch (this.sort.active) { + case 'id': return compare(a.id, b.id, isAsc); + case 'firstName': return compare(a.firstName, b.firstName, isAsc); + case 'lastName': return compare(a.lastName, b.lastName, isAsc); + case 'status': return compare(a.status, b.status, isAsc); + default: return 0; + } + }); + } +} + +function compare(a, b, isAsc: boolean) { + return (a < b ? -1 : 1) * (isAsc ? 1 : -1); +} diff --git a/webapp-frontend/src/app/app-routing.module.ts b/webapp-frontend/src/app/app-routing.module.ts index 10f329e2..fc104e40 100644 --- a/webapp-frontend/src/app/app-routing.module.ts +++ b/webapp-frontend/src/app/app-routing.module.ts @@ -25,7 +25,7 @@ import { CatalogComponent } from './catalog/catalog.component'; import { ControlComponent } from './control/control.component'; import { RANConnectionComponent } from './ran-connection/ran-connection.component'; import { StatsComponent } from './stats/stats.component'; -import { AdminComponent } from './admin/admin.component'; +import { UserComponent } from './admin/user.component'; import { AcXappComponent } from './ac-xapp/ac-xapp.component'; import { AnrXappComponent } from './anr-xapp/anr-xapp.component'; @@ -36,7 +36,7 @@ const routes: Routes = [ {path: 'control', component: ControlComponent}, {path: 'ran-connection', component: RANConnectionComponent}, {path: 'stats', component: StatsComponent}, - {path: 'admin', component: AdminComponent}, + {path: 'admin', component: UserComponent}, {path: 'ac', component: AcXappComponent}, {path: 'anr', component: AnrXappComponent}, ]; diff --git a/webapp-frontend/src/app/app.module.ts b/webapp-frontend/src/app/app.module.ts index 35a2fa93..d1ab4556 100644 --- a/webapp-frontend/src/app/app.module.ts +++ b/webapp-frontend/src/app/app.module.ts @@ -49,7 +49,7 @@ import { RANConnectionDialogComponent } from './ran-connection/ran-connection-di import { RANConnectionComponent } from './ran-connection/ran-connection.component'; import { ANREditNCRDialogComponent } from './anr-xapp/anr-edit-ncr-dialog.component'; import { StatsComponent } from './stats/stats.component'; -import { AdminComponent } from './admin/admin.component'; +import { UserComponent } from './admin/user.component'; import { CatalogCardComponent } from './ui/catalog-card/catalog-card.component'; import { ControlCardComponent } from './ui/control-card/control-card.component'; import { StatCardComponent } from './ui/stat-card/stat-card.component'; @@ -61,11 +61,14 @@ import { AnrXappComponent } from './anr-xapp/anr-xapp.component'; import { ErrorDialogComponent } from './ui/error-dialog/error-dialog.component'; import { ErrorDialogService } from './services/ui/error-dialog.service'; import { AcXappComponent } from './ac-xapp/ac-xapp.component'; +import { AddDashboardUserDialogComponent } from './admin/add-dashboard-user-dialog/add-dashboard-user-dialog.component'; +import { EditDashboardUserDialogComponent } from './admin/edit-dashboard-user-dialog/edit-dashboard-user-dialog.component'; + @NgModule({ declarations: [ AcXappComponent, - AdminComponent, + UserComponent, ANREditNCRDialogComponent, AnrXappComponent, AppComponent, @@ -83,7 +86,9 @@ import { AcXappComponent } from './ac-xapp/ac-xapp.component'; RANConnectionDialogComponent, SidenavListComponent, StatCardComponent, - StatsComponent + StatsComponent, + AddDashboardUserDialogComponent, + EditDashboardUserDialogComponent ], imports: [ AppRoutingModule, @@ -140,7 +145,9 @@ import { AcXappComponent } from './ac-xapp/ac-xapp.component'; RANConnectionDialogComponent, ANREditNCRDialogComponent, ConfirmDialogComponent, - ErrorDialogComponent + ErrorDialogComponent, + AddDashboardUserDialogComponent, + EditDashboardUserDialogComponent ], providers: [ UiService, -- 2.16.6