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
|
/*-
* ============LICENSE_START=======================================================
* SDC
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* 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=========================================================
*/
'use strict';
import * as _ from "lodash";
import { User, IUserProperties, IUser, IAppConfigurtaion } from "app/models";
import { UserService } from "../../../ng2/services/user.service";
import { SdcUiCommon, SdcUiServices, SdcUiComponents } from "onap-ui-angular";
import { AuthenticationService } from "app/ng2/services/authentication.service";
interface IUserManagementViewModelScope extends ng.IScope {
usersList:Array<IUserProperties>;
isLoading:boolean;
sortBy:string;
reverse:boolean;
tableHeadersList:any;
getAllUsers():void;
sort(sortBy:string):void;
getTitle(role:string):string;
}
export class UserManagementViewModel {
static '$inject' = [
'$scope',
'UserServiceNg2',
'AuthenticationServiceNg2',
'$filter',
'ModalServiceSdcUI'
];
constructor(private $scope:IUserManagementViewModelScope,
private userService:UserService,
private authService:AuthenticationService,
private $filter:ng.IFilterService,
private modalService:SdcUiServices.ModalService) {
setTimeout(this.initScope, 1000);
}
private getAllUsers = ():void => {
this.$scope.isLoading = true;
let onError = (response) => {
this.$scope.isLoading = false;
console.info('onFaild', response);
};
let onSuccess = (response:Array<IUserProperties>) => {
this.$scope.usersList = response;
_.forEach(this.$scope.usersList, (user:any, i:number)=> {
user.index = i;
});
this.$scope.isLoading = false;
};
this.userService.getAllUsers().subscribe(onSuccess, onError);
};
private initScope = ():void => {
let self = this;
this.$scope.tableHeadersList = [{title: "First Name", property: 'firstName'}, {
title: "Last Name",
property: 'lastName'
},
{
title: this.$filter('translate')("USER_MANAGEMENT_TABLE_HEADER_USER_ID"),
property: 'userId'
}, {title: "Email", property: 'email'}, {title: "Role", property: 'role'}, {
title: "Last Active",
property: 'lastLoginTime'
}];
this.$scope.sortBy = 'lastLoginTime';
this.$scope.reverse = false;
this.getAllUsers();
this.$scope.sort = (sortBy:string):void => {//default sort by descending last update. default for alphabetical = ascending
this.$scope.reverse = (this.$scope.sortBy === sortBy) ? ( !this.$scope.reverse) : this.$scope.reverse = false;
this.$scope.sortBy = sortBy;
};
this.$scope.getTitle = (role:string):string => {
return role.toLowerCase().replace('governor', 'governance_Rep').replace('_', ' ');
};
}
}
|