1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
/*-
* ============LICENSE_START==========================================
* ONAP Portal
* ===================================================================
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
* ===================================================================
*
* Unless otherwise specified, all software contained herein is licensed
* under the Apache License, Version 2.0 (the "License");
* you may not use this software 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.
*
* Unless otherwise specified, all documentation contained herein is licensed
* under the Creative Commons License, Attribution 4.0 Intl. (the "License");
* you may not use this documentation except in compliance with the License.
* You may obtain a copy of the License at
*
* https://creativecommons.org/licenses/by/4.0/
*
* Unless required by applicable law or agreed to in writing, documentation
* 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, Input, ViewChild, Output, EventEmitter } from '@angular/core';
import { UsersService } from 'src/app/shared/services';
import { MatTableDataSource, MatPaginator, MatSort } from '@angular/material';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
import { PortalAdmin } from 'src/app/shared/model/PortalAdmin';
@Component({
selector: 'app-search-users',
templateUrl: './search-users.component.html',
styleUrls: ['./search-users.component.scss']
})
export class SearchUsersComponent implements OnInit {
constructor(private userService: UsersService, private ngModal: NgbModal) { }
@Input() searchTitle: string;
@Input() placeHolder: string;
@Input() isSystemUser: boolean;
@ViewChild(MatSort) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
@Output() passBackSelectedUser: EventEmitter<any> = new EventEmitter();
@Output() userNotFoundFlag = new EventEmitter<boolean>();
searchString: string;
txtResults = 'result';
searchUsersResults: any;
selected: any;
isLoading: boolean;
showUserTable: boolean;
selectedUser: any;
displayedColumns: string[] = ['firstName'];
dataSourceMap = new MatTableDataSource(this.searchUsersResults);
submitted = false;
message = " No users found with your query. Please change your search and try again.";
ngOnInit() {
this.searchString = '';
this.showUserTable = false;
this.isSystemUser = false;
}
passSystemUserInfo(systemUser: string) {
if (this.isSystemUser)
this.passBackSelectedUser.emit(systemUser);
}
noUserFlag: boolean = false;
searchUsers() {
if (!this.isSystemUser) {
this.isLoading = true;
this.showUserTable = false;
this.passBackSelectedUser.emit(this.selectedUser = '');
this.userService.searchUsers(this.searchString).subscribe((_data: PortalAdmin) => {
this.searchUsersResults = _data;
if (this.searchUsersResults == null || this.searchUsersResults.length == 0) {
this.noUserFlag = true;
this.isLoading = false;
} else {
this.noUserFlag = false;
this.showUserTable = true;
this.isLoading = false;
this.dataSourceMap = new MatTableDataSource(this.searchUsersResults);
this.txtResults = (this.searchUsersResults && this.searchUsersResults.length > 1) ? 'results' : 'result';
}
});
}
}
setSelectedUser(user: PortalAdmin) {
this.selectedUser = user;
this.passBackSelectedUser.emit(this.selectedUser);
}
addNewUser() {
console.log("Emit the value to parent");
this.userNotFoundFlag.emit(true);
}
}
|