Drop Nokia from file header copyright line
[portal/ric-dashboard.git] / webapp-frontend / src / app / user / user.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, ViewChild } from '@angular/core';
21 import { MatDialog } from '@angular/material/dialog';
22 import { MatSort } from '@angular/material/sort';
23 import { DashboardService } from '../services/dashboard/dashboard.service';
24 import { ErrorDialogService } from '../services/ui/error-dialog.service';
25 import { DashboardUser } from './../interfaces/dashboard.types';
26 import { NotificationService } from './../services/ui/notification.service';
27 import { UserDataSource } from './user.datasource';
28 import { AddDashboardUserDialogComponent } from './add-dashboard-user-dialog/add-dashboard-user-dialog.component';
29 import { EditDashboardUserDialogComponent } from './edit-dashboard-user-dialog/edit-dashboard-user-dialog.component';
30
31 @Component({
32   selector: 'rd-user',
33   templateUrl: './user.component.html',
34   styleUrls: ['./user.component.scss']
35 })
36
37 export class UserComponent implements OnInit {
38
39   displayedColumns: string[] = ['id', 'firstName', 'lastName', 'status', 'action'];
40   dataSource: UserDataSource;
41   @ViewChild(MatSort, {static: true}) sort: MatSort;
42
43   constructor(
44     private dashboardSvc: DashboardService,
45     private errorService: ErrorDialogService,
46     private notificationService: NotificationService,
47     public dialog: MatDialog) { }
48
49   ngOnInit() {
50     this.dataSource = new UserDataSource(this.dashboardSvc, this.sort, this.notificationService);
51     this.dataSource.loadTable();
52   }
53
54   editUser(user: DashboardUser) {
55     const dialogRef = this.dialog.open(EditDashboardUserDialogComponent, {
56       width: '450px',
57       data: user
58     });
59     dialogRef.afterClosed().subscribe(result => {
60       this.dataSource.loadTable();
61     });
62   }
63
64   deleteUser() {
65     const aboutError = 'Not implemented (yet).';
66     this.errorService.displayError(aboutError);
67   }
68
69   addUser() {
70     const dialogRef = this.dialog.open(AddDashboardUserDialogComponent, {
71       width: '450px'
72     });
73     dialogRef.afterClosed().subscribe(result => {
74       this.dataSource.loadTable();
75     });
76   }
77 }
78