@cauca-911/management 3.0.1 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +4 -4
  3. package/assets/i18n/cauca/en-management.json +16 -16
  4. package/assets/i18n/cauca/fr-management.json +16 -16
  5. package/bundles/cauca-911-management.umd.js +466 -465
  6. package/bundles/cauca-911-management.umd.js.map +1 -1
  7. package/bundles/cauca-911-management.umd.min.js +1 -1
  8. package/bundles/cauca-911-management.umd.min.js.map +1 -1
  9. package/cauca-911-management.d.ts +5 -5
  10. package/cauca-911-management.metadata.json +1 -1
  11. package/esm2015/cauca-911-management.js +6 -6
  12. package/esm2015/lib/cauca-management-group/cauca-management-group.component.js +212 -212
  13. package/esm2015/lib/cauca-management-user/cauca-management-user.component.js +57 -57
  14. package/esm2015/lib/cauca-management.component.js +14 -14
  15. package/esm2015/lib/cauca-management.module.js +35 -35
  16. package/esm2015/lib/cauca-management.service.js +13 -13
  17. package/esm2015/lib/shared/models/group-model.js +8 -8
  18. package/esm2015/lib/shared/models/group-permission-model.js +9 -9
  19. package/esm2015/lib/shared/models/permission-model.js +8 -8
  20. package/esm2015/lib/shared/models/user-group-model.js +8 -8
  21. package/esm2015/lib/shared/models/user-model.js +12 -11
  22. package/esm2015/lib/shared/models/user-permission-model.js +9 -9
  23. package/esm2015/lib/shared/services/management-group.service.js +38 -38
  24. package/esm2015/lib/shared/services/management-permission.service.js +35 -35
  25. package/esm2015/lib/shared/services/management-user.service.js +53 -53
  26. package/esm2015/public-api.js +16 -16
  27. package/fesm2015/cauca-911-management.js +439 -438
  28. package/fesm2015/cauca-911-management.js.map +1 -1
  29. package/lib/cauca-management-group/cauca-management-group.component.d.ts +42 -42
  30. package/lib/cauca-management-user/cauca-management-user.component.d.ts +17 -17
  31. package/lib/cauca-management.component.d.ts +5 -5
  32. package/lib/cauca-management.module.d.ts +2 -2
  33. package/lib/cauca-management.service.d.ts +3 -3
  34. package/lib/shared/models/group-model.d.ts +9 -9
  35. package/lib/shared/models/group-permission-model.d.ts +7 -7
  36. package/lib/shared/models/permission-model.d.ts +7 -7
  37. package/lib/shared/models/user-group-model.d.ts +6 -6
  38. package/lib/shared/models/user-model.d.ts +15 -14
  39. package/lib/shared/models/user-permission-model.d.ts +7 -7
  40. package/lib/shared/services/management-group.service.d.ts +14 -14
  41. package/lib/shared/services/management-permission.service.d.ts +13 -13
  42. package/lib/shared/services/management-user.service.d.ts +20 -20
  43. package/package.json +4 -4
  44. package/public-api.d.ts +12 -12
@@ -9,472 +9,473 @@ import { map } from 'rxjs/operators';
9
9
  import { HttpClient } from '@angular/common/http';
10
10
  import { CommonModule } from '@angular/common';
11
11
 
12
- class CaucaManagementService {
13
- constructor() { }
14
- }
15
- CaucaManagementService.ɵprov = ɵɵdefineInjectable({ factory: function CaucaManagementService_Factory() { return new CaucaManagementService(); }, token: CaucaManagementService, providedIn: "root" });
16
- CaucaManagementService.decorators = [
17
- { type: Injectable, args: [{
18
- providedIn: 'root'
19
- },] }
20
- ];
12
+ class CaucaManagementService {
13
+ constructor() { }
14
+ }
15
+ CaucaManagementService.ɵprov = ɵɵdefineInjectable({ factory: function CaucaManagementService_Factory() { return new CaucaManagementService(); }, token: CaucaManagementService, providedIn: "root" });
16
+ CaucaManagementService.decorators = [
17
+ { type: Injectable, args: [{
18
+ providedIn: 'root'
19
+ },] }
20
+ ];
21
21
  CaucaManagementService.ctorParameters = () => [];
22
22
 
23
- class CaucaManagementComponent {
24
- constructor() { }
25
- ngOnInit() {
26
- }
27
- }
28
- CaucaManagementComponent.decorators = [
29
- { type: Component, args: [{
30
- selector: 'cauca-management',
31
- template: "<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>"
32
- },] }
33
- ];
23
+ class CaucaManagementComponent {
24
+ constructor() { }
25
+ ngOnInit() {
26
+ }
27
+ }
28
+ CaucaManagementComponent.decorators = [
29
+ { type: Component, args: [{
30
+ selector: 'cauca-management',
31
+ template: "<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>"
32
+ },] }
33
+ ];
34
34
  CaucaManagementComponent.ctorParameters = () => [];
35
35
 
36
- class ManagementGroupService {
37
- constructor(coreService, http) {
38
- this.http = http;
39
- this.config = coreService.getConfig();
40
- }
41
- getAll() {
42
- return this.http.get(`${this.config.apiUrl}GroupManagement`);
43
- }
44
- get(idGroup) {
45
- return this.http.get(`${this.config.apiUrl}GroupManagement/${idGroup}`);
46
- }
47
- save(group) {
48
- return this.http.post(`${this.config.apiUrl}GroupManagement`, group);
49
- }
50
- delete(idGroup) {
51
- return this.http.delete(`${this.config.apiUrl}GroupManagement/${idGroup}`);
52
- }
53
- hasExistingGroupName(group) {
54
- return this.http.post(`${this.config.apiUrl}GroupManagement/GroupNameAlreadyExist`, group);
55
- }
56
- }
57
- ManagementGroupService.ɵprov = ɵɵdefineInjectable({ factory: function ManagementGroupService_Factory() { return new ManagementGroupService(ɵɵinject(CaucaCoreService), ɵɵinject(HttpClient)); }, token: ManagementGroupService, providedIn: "root" });
58
- ManagementGroupService.decorators = [
59
- { type: Injectable, args: [{
60
- providedIn: 'root'
61
- },] }
62
- ];
63
- ManagementGroupService.ctorParameters = () => [
64
- { type: CaucaCoreService },
65
- { type: HttpClient }
36
+ class ManagementGroupService {
37
+ constructor(coreService, http) {
38
+ this.http = http;
39
+ this.config = coreService.getConfig();
40
+ }
41
+ getAll() {
42
+ return this.http.get(`${this.config.apiUrl}GroupManagement`);
43
+ }
44
+ get(idGroup) {
45
+ return this.http.get(`${this.config.apiUrl}GroupManagement/${idGroup}`);
46
+ }
47
+ save(group) {
48
+ return this.http.post(`${this.config.apiUrl}GroupManagement`, group);
49
+ }
50
+ delete(idGroup) {
51
+ return this.http.delete(`${this.config.apiUrl}GroupManagement/${idGroup}`);
52
+ }
53
+ hasExistingGroupName(group) {
54
+ return this.http.post(`${this.config.apiUrl}GroupManagement/GroupNameAlreadyExist`, group);
55
+ }
56
+ }
57
+ ManagementGroupService.ɵprov = ɵɵdefineInjectable({ factory: function ManagementGroupService_Factory() { return new ManagementGroupService(ɵɵinject(CaucaCoreService), ɵɵinject(HttpClient)); }, token: ManagementGroupService, providedIn: "root" });
58
+ ManagementGroupService.decorators = [
59
+ { type: Injectable, args: [{
60
+ providedIn: 'root'
61
+ },] }
62
+ ];
63
+ ManagementGroupService.ctorParameters = () => [
64
+ { type: CaucaCoreService },
65
+ { type: HttpClient }
66
66
  ];
67
67
 
68
- class ManagementUserService {
69
- constructor(coreService, http) {
70
- this.http = http;
71
- this.config = coreService.getConfig();
72
- }
73
- getAll() {
74
- return this.http.get(`${this.config.apiUrl}UserManagement`);
75
- }
76
- get(idUser) {
77
- return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}`);
78
- }
79
- getGroup(idUser) {
80
- return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}/groups`);
81
- }
82
- addGroup(userGroup) {
83
- return this.http.post(`${this.config.apiUrl}UserManagement/group`, userGroup);
84
- }
85
- deleteGroup(idUserGroup) {
86
- return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserGroup}`);
87
- }
88
- addPermission(userPermission) {
89
- return this.http.post(`${this.config.apiUrl}UserManagement/permission`, userPermission);
90
- }
91
- deletePermission(idUserPermission) {
92
- return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserPermission}`);
93
- }
94
- save(user) {
95
- return this.http.post(`${this.config.apiUrl}UserManagement`, user);
96
- }
97
- delete(idUser) {
98
- return this.http.delete(`${this.config.apiUrl}UserManagement/${idUser}`);
99
- }
100
- hasExistingUserName(user) {
101
- return this.http.post(`${this.config.apiUrl}UserManagement/UserNameAlreadyExist`, user);
102
- }
103
- }
104
- ManagementUserService.ɵprov = ɵɵdefineInjectable({ factory: function ManagementUserService_Factory() { return new ManagementUserService(ɵɵinject(CaucaCoreService), ɵɵinject(HttpClient)); }, token: ManagementUserService, providedIn: "root" });
105
- ManagementUserService.decorators = [
106
- { type: Injectable, args: [{
107
- providedIn: 'root'
108
- },] }
109
- ];
110
- ManagementUserService.ctorParameters = () => [
111
- { type: CaucaCoreService },
112
- { type: HttpClient }
68
+ class ManagementUserService {
69
+ constructor(coreService, http) {
70
+ this.http = http;
71
+ this.config = coreService.getConfig();
72
+ }
73
+ getAll() {
74
+ return this.http.get(`${this.config.apiUrl}UserManagement`);
75
+ }
76
+ get(idUser) {
77
+ return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}`);
78
+ }
79
+ getGroup(idUser) {
80
+ return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}/groups`);
81
+ }
82
+ addGroup(userGroup) {
83
+ return this.http.post(`${this.config.apiUrl}UserManagement/group`, userGroup);
84
+ }
85
+ deleteGroup(idUserGroup) {
86
+ return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserGroup}`);
87
+ }
88
+ addPermission(userPermission) {
89
+ return this.http.post(`${this.config.apiUrl}UserManagement/permission`, userPermission);
90
+ }
91
+ deletePermission(idUserPermission) {
92
+ return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserPermission}`);
93
+ }
94
+ save(user) {
95
+ return this.http.post(`${this.config.apiUrl}UserManagement`, user);
96
+ }
97
+ delete(idUser) {
98
+ return this.http.delete(`${this.config.apiUrl}UserManagement/${idUser}`);
99
+ }
100
+ hasExistingUserName(user) {
101
+ return this.http.post(`${this.config.apiUrl}UserManagement/UserNameAlreadyExist`, user);
102
+ }
103
+ }
104
+ ManagementUserService.ɵprov = ɵɵdefineInjectable({ factory: function ManagementUserService_Factory() { return new ManagementUserService(ɵɵinject(CaucaCoreService), ɵɵinject(HttpClient)); }, token: ManagementUserService, providedIn: "root" });
105
+ ManagementUserService.decorators = [
106
+ { type: Injectable, args: [{
107
+ providedIn: 'root'
108
+ },] }
109
+ ];
110
+ ManagementUserService.ctorParameters = () => [
111
+ { type: CaucaCoreService },
112
+ { type: HttpClient }
113
113
  ];
114
114
 
115
- class ManagementPermissionService {
116
- constructor(coreService, http) {
117
- this.http = http;
118
- this.config = coreService.getConfig();
119
- }
120
- getAll() {
121
- return this.http.get(`${this.config.apiUrl}PermissionManagement`);
122
- }
123
- get(idPermission) {
124
- return this.http.get(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
125
- }
126
- save(permission) {
127
- return this.http.post(`${this.config.apiUrl}PermissionManagement`, permission);
128
- }
129
- delete(idPermission) {
130
- return this.http.delete(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
131
- }
132
- }
133
- ManagementPermissionService.ɵprov = ɵɵdefineInjectable({ factory: function ManagementPermissionService_Factory() { return new ManagementPermissionService(ɵɵinject(CaucaCoreService), ɵɵinject(HttpClient)); }, token: ManagementPermissionService, providedIn: "root" });
134
- ManagementPermissionService.decorators = [
135
- { type: Injectable, args: [{
136
- providedIn: 'root'
137
- },] }
138
- ];
139
- ManagementPermissionService.ctorParameters = () => [
140
- { type: CaucaCoreService },
141
- { type: HttpClient }
115
+ class ManagementPermissionService {
116
+ constructor(coreService, http) {
117
+ this.http = http;
118
+ this.config = coreService.getConfig();
119
+ }
120
+ getAll() {
121
+ return this.http.get(`${this.config.apiUrl}PermissionManagement`);
122
+ }
123
+ get(idPermission) {
124
+ return this.http.get(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
125
+ }
126
+ save(permission) {
127
+ return this.http.post(`${this.config.apiUrl}PermissionManagement`, permission);
128
+ }
129
+ delete(idPermission) {
130
+ return this.http.delete(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
131
+ }
132
+ }
133
+ ManagementPermissionService.ɵprov = ɵɵdefineInjectable({ factory: function ManagementPermissionService_Factory() { return new ManagementPermissionService(ɵɵinject(CaucaCoreService), ɵɵinject(HttpClient)); }, token: ManagementPermissionService, providedIn: "root" });
134
+ ManagementPermissionService.decorators = [
135
+ { type: Injectable, args: [{
136
+ providedIn: 'root'
137
+ },] }
138
+ ];
139
+ ManagementPermissionService.ctorParameters = () => [
140
+ { type: CaucaCoreService },
141
+ { type: HttpClient }
142
142
  ];
143
143
 
144
- class CaucaManagementGroupComponent {
145
- constructor(managementGroupService, managementUserService, managementPermissionService, breakpointObserver) {
146
- this.managementGroupService = managementGroupService;
147
- this.managementUserService = managementUserService;
148
- this.managementPermissionService = managementPermissionService;
149
- this.showPrintButton = true;
150
- this.hoverStatePermission = true;
151
- this.groups = [];
152
- this.users = [];
153
- this.permissions = [];
154
- this.userFullName = {};
155
- this.showColumn = true;
156
- this.showColumnXS = true;
157
- this.translations = [];
158
- this.calculateUsersCellValue = (e) => {
159
- const users = (e.users ? e.users : []);
160
- let usersNames = [];
161
- users.forEach(user => {
162
- const userGroup = this.users.filter(u => u.id === user.idUser);
163
- if (userGroup && userGroup[0]) {
164
- usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);
165
- }
166
- });
167
- usersNames = usersNames.sort((one, two) => (one < two ? -1 : 1));
168
- return usersNames.join(', ');
169
- };
170
- this.groupNameAlreadyUsedValidation = (e) => {
171
- return this.managementGroupService.hasExistingGroupName(e.data).pipe(map((exist) => {
172
- return !exist;
173
- })).toPromise();
174
- };
175
- breakpointObserver.observe(['(max-width: 1000px)']).subscribe(result => {
176
- this.showColumn = !result.matches;
177
- });
178
- breakpointObserver.observe(['(max-width: 600px)']).subscribe(result => {
179
- this.showColumnXS = !result.matches;
180
- });
181
- }
182
- ngOnInit() {
183
- this.managementUserService.getAll().subscribe(data => {
184
- this.users = data;
185
- this.users.forEach(user => {
186
- if (user.isActive) {
187
- if (user.firstName !== '' && user.lastName !== '') {
188
- this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;
189
- }
190
- }
191
- });
192
- });
193
- this.managementPermissionService.getAll().subscribe(permissions => {
194
- const permissionIndex = permissions.findIndex(c => {
195
- return c.tag === 'CanAccessPermissions';
196
- });
197
- if (permissionIndex !== -1) {
198
- permissions.splice(permissionIndex, 1);
199
- }
200
- permissions.sort((a, b) => {
201
- if (a.name < b.name) {
202
- return -1;
203
- }
204
- if (a.name > b.name) {
205
- return 1;
206
- }
207
- return 0;
208
- });
209
- this.permissions = permissions;
210
- });
211
- this.getGroups();
212
- }
213
- fullName(data) {
214
- if (!data) {
215
- return '';
216
- }
217
- return `${data.firstName} ${data.lastName}`;
218
- }
219
- getGroupUser(field, e) {
220
- const users = [];
221
- if (this.groupUsers) {
222
- this.groupUsers.forEach(user => {
223
- users.push(user.idUser);
224
- });
225
- }
226
- e.component.option('value', users);
227
- }
228
- setGroupUser(field, e) {
229
- const groupUser = [];
230
- e.value.forEach(idUser => {
231
- const groupIndex = (field.data.users || []).findIndex(g => g.idUser === idUser);
232
- if (groupIndex === -1) {
233
- groupUser.push({ idUser, });
234
- }
235
- else {
236
- groupUser.push(field.data.users[groupIndex]);
237
- }
238
- });
239
- field.setValue(JSON.parse(JSON.stringify(groupUser)));
240
- }
241
- setGroupPermission(field, e) {
242
- const groupUser = [];
243
- e.value.forEach(idUser => {
244
- groupUser.push({
245
- idUser,
246
- });
247
- });
248
- field.setValue(JSON.parse(JSON.stringify(groupUser)));
249
- }
250
- getPermissionStatus(field, permission, e) {
251
- const groupPermission = (field.value || []).find(p => p.idModulePermission === permission.id);
252
- if (groupPermission) {
253
- e.component.option('value', groupPermission.isAllowed);
254
- }
255
- else {
256
- e.component.option('value', undefined);
257
- }
258
- }
259
- checkBoxToggled(field, permission, e) {
260
- if (e.component.skipOnValueChanged) {
261
- e.component.skipOnValueChanged = false;
262
- return;
263
- }
264
- if (e.component.setUndefinedNextTime) {
265
- e.component.setUndefinedNextTime = false;
266
- e.component.skipOnValueChanged = true;
267
- e.component.option('value', undefined);
268
- this.setPermissionStatus(field, permission, undefined);
269
- return;
270
- }
271
- if (e.value === false) {
272
- e.component.setUndefinedNextTime = true;
273
- }
274
- this.setPermissionStatus(field, permission, e.value);
275
- }
276
- onRowInserted(e) {
277
- this.saveGroup(e.data);
278
- }
279
- onRowUpdated(e) {
280
- this.saveGroup(e.data);
281
- }
282
- onRowRemoved(e) {
283
- const group = e.data;
284
- this.managementGroupService.delete(group.id).subscribe(data => {
285
- this.getGroups();
286
- });
287
- }
288
- onEditingStart(e) {
289
- this.groupUsers = e.data.users;
290
- }
291
- onInitNewRow() {
292
- this.groupUsers = [];
293
- }
294
- setPermissionStatus(field, permission, value) {
295
- const groupPermissions = field.value || [];
296
- const groupIndex = groupPermissions.findIndex(p => p.idModulePermission === permission.id);
297
- if (groupIndex > -1) {
298
- groupPermissions[groupIndex].isAllowed = value;
299
- }
300
- else {
301
- groupPermissions.push({
302
- idModulePermission: permission.id,
303
- isAllowed: value,
304
- });
305
- }
306
- field.setValue(JSON.parse(JSON.stringify(groupPermissions)));
307
- }
308
- saveGroup(group) {
309
- this.removePermissionUndefined(group);
310
- if (group.users) {
311
- group.users.forEach((userGroup) => {
312
- userGroup.idGroup = group.id;
313
- });
314
- }
315
- if (group.permissions) {
316
- group.permissions.forEach((groupPermission) => {
317
- groupPermission.idGroup = group.id;
318
- });
319
- }
320
- this.managementGroupService.save(group).subscribe(() => {
321
- this.getGroups();
322
- });
323
- this.groupUsers = [];
324
- }
325
- removePermissionUndefined(group) {
326
- group.permissions = group.permissions.filter((permission) => permission.isAllowed !== undefined);
327
- }
328
- getGroups() {
329
- this.managementGroupService.getAll().subscribe(data => this.groups = data);
330
- }
331
- }
332
- CaucaManagementGroupComponent.decorators = [
333
- { type: Component, args: [{
334
- selector: 'cauca-management-group',
335
- template: "<cauca-dx-data-grid [allowPrint]=\"showPrintButton\" keyExpr=\"id\" [dataSource]=\"groups\"\n (onRowInserted)=\"onRowInserted($event)\" (onInitNewRow)=\"onInitNewRow()\" (onRowUpdated)=\"onRowUpdated($event)\"\n (onEditingStart)=\"onEditingStart($event)\" (onRowRemoved)=\"onRowRemoved($event)\">\n\n <dxi-column dataField=\"name\" [caption]=\"'management.name' | translate\">\n <dxi-validation-rule type=\"async\" [message]=\"'management.groupNameAlreadyUsed' | translate\"\n [validationCallback]=\"groupNameAlreadyUsedValidation\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"users\" [caption]=\"'management.users' | translate\" editCellTemplate=\"usersEditTemplate\"\n [calculateCellValue]=\"calculateUsersCellValue\">\n </dxi-column>\n <dxi-column dataField=\"permissions\" [caption]=\"'management.permissions' | translate\" [visible]=\"false\"\n editCellTemplate=\"permissionsEditTemplate\">\n </dxi-column>\n <dxo-export [enabled]=\"false\"></dxo-export>\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\" [fullScreen]=\"!showColumn\"></dxo-popup>\n <dxo-form colCount=\"1\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\n <dxi-item dataField=\"name\" [isRequired]=\"true\"></dxi-item>\n <dxi-item dataField=\"users\"></dxi-item>\n <dxi-item dataField=\"permissions\"></dxi-item>\n </dxo-form>\n </dxo-editing>\n\n <div *dxTemplate=\"let field of 'usersEditTemplate'\">\n <dx-tag-box valueExpr=\"id\" [displayExpr]=\"fullName\" [dataSource]=\"users\" [searchEnabled]=\"true\"\n [searchExpr]=\"fullName\" (onInitialized)=\"getGroupUser(field, $event)\"\n (onValueChanged)=\"setGroupUser(field, $event)\">\n </dx-tag-box>\n </div>\n <div *dxTemplate=\"let field of 'permissionsEditTemplate'\">\n <dx-list [dataSource]=\"permissions\" itemTemplate=\"rowTemplate\" [searchEnabled]=\"true\"\n [searchExpr]=\"['name', 'tag']\" [hoverStateEnabled]=\"hoverStatePermission\">\n <div *dxTemplate=\"let permission of 'rowTemplate'\">\n <dx-check-box [text]=\"permission.name\" (onInitialized)=\"getPermissionStatus(field, permission, $event)\"\n (onValueChanged)=\"checkBoxToggled(field, permission, $event)\">\n </dx-check-box>\n </div>\n </dx-list>\n </div>\n</cauca-dx-data-grid>",
336
- styles: [""]
337
- },] }
338
- ];
339
- CaucaManagementGroupComponent.ctorParameters = () => [
340
- { type: ManagementGroupService },
341
- { type: ManagementUserService },
342
- { type: ManagementPermissionService },
343
- { type: BreakpointObserver }
344
- ];
345
- CaucaManagementGroupComponent.propDecorators = {
346
- showPrintButton: [{ type: Input }],
347
- hoverStatePermission: [{ type: Input }]
144
+ class CaucaManagementGroupComponent {
145
+ constructor(managementGroupService, managementUserService, managementPermissionService, breakpointObserver) {
146
+ this.managementGroupService = managementGroupService;
147
+ this.managementUserService = managementUserService;
148
+ this.managementPermissionService = managementPermissionService;
149
+ this.showPrintButton = true;
150
+ this.hoverStatePermission = true;
151
+ this.groups = [];
152
+ this.users = [];
153
+ this.permissions = [];
154
+ this.userFullName = {};
155
+ this.showColumn = true;
156
+ this.showColumnXS = true;
157
+ this.translations = [];
158
+ this.calculateUsersCellValue = (e) => {
159
+ const users = (e.users ? e.users : []);
160
+ let usersNames = [];
161
+ users.forEach(user => {
162
+ const userGroup = this.users.filter(u => u.id === user.idUser);
163
+ if (userGroup && userGroup[0]) {
164
+ usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);
165
+ }
166
+ });
167
+ usersNames = usersNames.sort((one, two) => (one < two ? -1 : 1));
168
+ return usersNames.join(', ');
169
+ };
170
+ this.groupNameAlreadyUsedValidation = (e) => {
171
+ return this.managementGroupService.hasExistingGroupName(e.data).pipe(map((exist) => {
172
+ return !exist;
173
+ })).toPromise();
174
+ };
175
+ breakpointObserver.observe(['(max-width: 1000px)']).subscribe(result => {
176
+ this.showColumn = !result.matches;
177
+ });
178
+ breakpointObserver.observe(['(max-width: 600px)']).subscribe(result => {
179
+ this.showColumnXS = !result.matches;
180
+ });
181
+ }
182
+ ngOnInit() {
183
+ this.managementUserService.getAll().subscribe(data => {
184
+ this.users = data;
185
+ this.users.forEach(user => {
186
+ if (user.isActive) {
187
+ if (user.firstName !== '' && user.lastName !== '') {
188
+ this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;
189
+ }
190
+ }
191
+ });
192
+ });
193
+ this.managementPermissionService.getAll().subscribe(permissions => {
194
+ const permissionIndex = permissions.findIndex(c => {
195
+ return c.tag === 'CanAccessPermissions';
196
+ });
197
+ if (permissionIndex !== -1) {
198
+ permissions.splice(permissionIndex, 1);
199
+ }
200
+ permissions.sort((a, b) => {
201
+ if (a.name < b.name) {
202
+ return -1;
203
+ }
204
+ if (a.name > b.name) {
205
+ return 1;
206
+ }
207
+ return 0;
208
+ });
209
+ this.permissions = permissions;
210
+ });
211
+ this.getGroups();
212
+ }
213
+ fullName(data) {
214
+ if (!data) {
215
+ return '';
216
+ }
217
+ return `${data.firstName} ${data.lastName}`;
218
+ }
219
+ getGroupUser(field, e) {
220
+ const users = [];
221
+ if (this.groupUsers) {
222
+ this.groupUsers.forEach(user => {
223
+ users.push(user.idUser);
224
+ });
225
+ }
226
+ e.component.option('value', users);
227
+ }
228
+ setGroupUser(field, e) {
229
+ const groupUser = [];
230
+ e.value.forEach(idUser => {
231
+ const groupIndex = (field.data.users || []).findIndex(g => g.idUser === idUser);
232
+ if (groupIndex === -1) {
233
+ groupUser.push({ idUser, });
234
+ }
235
+ else {
236
+ groupUser.push(field.data.users[groupIndex]);
237
+ }
238
+ });
239
+ field.setValue(JSON.parse(JSON.stringify(groupUser)));
240
+ }
241
+ setGroupPermission(field, e) {
242
+ const groupUser = [];
243
+ e.value.forEach(idUser => {
244
+ groupUser.push({
245
+ idUser,
246
+ });
247
+ });
248
+ field.setValue(JSON.parse(JSON.stringify(groupUser)));
249
+ }
250
+ getPermissionStatus(field, permission, e) {
251
+ const groupPermission = (field.value || []).find(p => p.idModulePermission === permission.id);
252
+ if (groupPermission) {
253
+ e.component.option('value', groupPermission.isAllowed);
254
+ }
255
+ else {
256
+ e.component.option('value', undefined);
257
+ }
258
+ }
259
+ checkBoxToggled(field, permission, e) {
260
+ if (e.component.skipOnValueChanged) {
261
+ e.component.skipOnValueChanged = false;
262
+ return;
263
+ }
264
+ if (e.component.setUndefinedNextTime) {
265
+ e.component.setUndefinedNextTime = false;
266
+ e.component.skipOnValueChanged = true;
267
+ e.component.option('value', undefined);
268
+ this.setPermissionStatus(field, permission, undefined);
269
+ return;
270
+ }
271
+ if (e.value === false) {
272
+ e.component.setUndefinedNextTime = true;
273
+ }
274
+ this.setPermissionStatus(field, permission, e.value);
275
+ }
276
+ onRowInserted(e) {
277
+ this.saveGroup(e.data);
278
+ }
279
+ onRowUpdated(e) {
280
+ this.saveGroup(e.data);
281
+ }
282
+ onRowRemoved(e) {
283
+ const group = e.data;
284
+ this.managementGroupService.delete(group.id).subscribe(data => {
285
+ this.getGroups();
286
+ });
287
+ }
288
+ onEditingStart(e) {
289
+ this.groupUsers = e.data.users;
290
+ }
291
+ onInitNewRow() {
292
+ this.groupUsers = [];
293
+ }
294
+ setPermissionStatus(field, permission, value) {
295
+ const groupPermissions = field.value || [];
296
+ const groupIndex = groupPermissions.findIndex(p => p.idModulePermission === permission.id);
297
+ if (groupIndex > -1) {
298
+ groupPermissions[groupIndex].isAllowed = value;
299
+ }
300
+ else {
301
+ groupPermissions.push({
302
+ idModulePermission: permission.id,
303
+ isAllowed: value,
304
+ });
305
+ }
306
+ field.setValue(JSON.parse(JSON.stringify(groupPermissions)));
307
+ }
308
+ saveGroup(group) {
309
+ this.removePermissionUndefined(group);
310
+ if (group.users) {
311
+ group.users.forEach((userGroup) => {
312
+ userGroup.idGroup = group.id;
313
+ });
314
+ }
315
+ if (group.permissions) {
316
+ group.permissions.forEach((groupPermission) => {
317
+ groupPermission.idGroup = group.id;
318
+ });
319
+ }
320
+ this.managementGroupService.save(group).subscribe(() => {
321
+ this.getGroups();
322
+ });
323
+ this.groupUsers = [];
324
+ }
325
+ removePermissionUndefined(group) {
326
+ group.permissions = group.permissions.filter((permission) => permission.isAllowed !== undefined);
327
+ }
328
+ getGroups() {
329
+ this.managementGroupService.getAll().subscribe(data => this.groups = data);
330
+ }
331
+ }
332
+ CaucaManagementGroupComponent.decorators = [
333
+ { type: Component, args: [{
334
+ selector: 'cauca-management-group',
335
+ template: "<cauca-dx-data-grid [allowPrint]=\"showPrintButton\" keyExpr=\"id\" [dataSource]=\"groups\"\r\n (onRowInserted)=\"onRowInserted($event)\" (onInitNewRow)=\"onInitNewRow()\" (onRowUpdated)=\"onRowUpdated($event)\"\r\n (onEditingStart)=\"onEditingStart($event)\" (onRowRemoved)=\"onRowRemoved($event)\">\r\n\r\n <dxi-column dataField=\"name\" [caption]=\"'management.name' | translate\">\r\n <dxi-validation-rule type=\"async\" [message]=\"'management.groupNameAlreadyUsed' | translate\"\r\n [validationCallback]=\"groupNameAlreadyUsedValidation\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"users\" [caption]=\"'management.users' | translate\" editCellTemplate=\"usersEditTemplate\"\r\n [calculateCellValue]=\"calculateUsersCellValue\">\r\n </dxi-column>\r\n <dxi-column dataField=\"permissions\" [caption]=\"'management.permissions' | translate\" [visible]=\"false\"\r\n editCellTemplate=\"permissionsEditTemplate\">\r\n </dxi-column>\r\n <dxo-export [enabled]=\"false\"></dxo-export>\r\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\r\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\" [fullScreen]=\"!showColumn\"></dxo-popup>\r\n <dxo-form colCount=\"1\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\r\n <dxi-item dataField=\"name\" [isRequired]=\"true\"></dxi-item>\r\n <dxi-item dataField=\"users\"></dxi-item>\r\n <dxi-item dataField=\"permissions\"></dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n\r\n <div *dxTemplate=\"let field of 'usersEditTemplate'\">\r\n <dx-tag-box valueExpr=\"id\" [displayExpr]=\"fullName\" [dataSource]=\"users\" [searchEnabled]=\"true\"\r\n [searchExpr]=\"fullName\" (onInitialized)=\"getGroupUser(field, $event)\"\r\n (onValueChanged)=\"setGroupUser(field, $event)\">\r\n </dx-tag-box>\r\n </div>\r\n <div *dxTemplate=\"let field of 'permissionsEditTemplate'\">\r\n <dx-list [dataSource]=\"permissions\" itemTemplate=\"rowTemplate\" [searchEnabled]=\"true\"\r\n [searchExpr]=\"['name', 'tag']\" [hoverStateEnabled]=\"hoverStatePermission\">\r\n <div *dxTemplate=\"let permission of 'rowTemplate'\">\r\n <dx-check-box [text]=\"permission.name\" (onInitialized)=\"getPermissionStatus(field, permission, $event)\"\r\n (onValueChanged)=\"checkBoxToggled(field, permission, $event)\">\r\n </dx-check-box>\r\n </div>\r\n </dx-list>\r\n </div>\r\n</cauca-dx-data-grid>",
336
+ styles: [""]
337
+ },] }
338
+ ];
339
+ CaucaManagementGroupComponent.ctorParameters = () => [
340
+ { type: ManagementGroupService },
341
+ { type: ManagementUserService },
342
+ { type: ManagementPermissionService },
343
+ { type: BreakpointObserver }
344
+ ];
345
+ CaucaManagementGroupComponent.propDecorators = {
346
+ showPrintButton: [{ type: Input }],
347
+ hoverStatePermission: [{ type: Input }]
348
348
  };
349
349
 
350
- class UserModel {
351
- constructor() {
352
- this.userName = '';
353
- this.firstName = '';
354
- this.lastName = '';
355
- this.password = '';
356
- this.email = '';
357
- this.isActive = true;
358
- }
350
+ class UserModel {
351
+ constructor() {
352
+ this.userName = '';
353
+ this.firstName = '';
354
+ this.lastName = '';
355
+ this.password = '';
356
+ this.email = '';
357
+ this.isActive = true;
358
+ this.twoFactorAuthenticatorEnabled = false;
359
+ }
359
360
  }
360
361
 
361
- class CaucaManagementUserComponent {
362
- constructor(managementUserService, breakpointObserver) {
363
- this.managementUserService = managementUserService;
364
- this.users = [
365
- new UserModel()
366
- ];
367
- this.showColumnXS = true;
368
- this.userNameAlreadyUsedValidation = (e) => {
369
- return this.managementUserService.hasExistingUserName(e.data).pipe(map((exist) => {
370
- return !exist;
371
- })).toPromise();
372
- };
373
- breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
374
- this.showColumnXS = !result.matches;
375
- });
376
- }
377
- ngOnInit() {
378
- this.getUsers();
379
- }
380
- onRowInserted(e) {
381
- this.saveGroup(e.data);
382
- }
383
- onRowUpdated(e) {
384
- this.saveGroup(e.key);
385
- }
386
- onRowRemoved(e) {
387
- const user = e.data;
388
- this.managementUserService.delete(user.id).subscribe((data) => {
389
- this.getUsers();
390
- });
391
- }
392
- saveGroup(user) {
393
- this.managementUserService.save(user).subscribe(() => {
394
- this.getUsers();
395
- });
396
- }
397
- getUsers() {
398
- this.managementUserService.getAll().subscribe((data) => this.users = data);
399
- }
400
- }
401
- CaucaManagementUserComponent.decorators = [
402
- { type: Component, args: [{
403
- selector: 'cauca-management-user',
404
- template: "<cauca-dx-data-grid\n keyExpr=\"id\"\n [dataSource]=\"users\"\n (onRowInserted)=\"onRowInserted($event)\"\n (onRowUpdated)=\"onRowUpdated($event)\"\n (onRowRemoved)=\"onRowRemoved($event)\">\n\n <dxi-column dataField=\"userName\" [caption]=\"'management.userName' | translate\">\n <dxi-validation-rule type=\"async\" [message]=\"'management.userNameAlreadyUsed' | translate\" [validationCallback]=\"userNameAlreadyUsedValidation\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'management.isActive' | translate\" [visible]=\"false\"></dxi-column>\n <dxi-column dataField=\"firstName\" [caption]=\"'management.firstName' | translate\"></dxi-column>\n <dxi-column dataField=\"lastName\" [caption]=\"'management.lastName' | translate\"></dxi-column>\n <dxi-column dataField=\"groups\" [caption]=\"'management.group' | translate\"></dxi-column>\n\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\"></dxo-popup>\n <dxo-form colCount=\"2\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\n <dxi-item dataField=\"userName\" [isRequired]=\"true\"></dxi-item>\n <dxi-item dataField=\"isActive\"></dxi-item>\n <dxi-item dataField=\"firstName\"></dxi-item>\n <dxi-item dataField=\"lastName\"></dxi-item>\n <dxi-item dataField=\"group\"></dxi-item>\n </dxo-form>\n </dxo-editing>\n</cauca-dx-data-grid>\n",
405
- styles: [""]
406
- },] }
407
- ];
408
- CaucaManagementUserComponent.ctorParameters = () => [
409
- { type: ManagementUserService },
410
- { type: BreakpointObserver }
362
+ class CaucaManagementUserComponent {
363
+ constructor(managementUserService, breakpointObserver) {
364
+ this.managementUserService = managementUserService;
365
+ this.users = [
366
+ new UserModel()
367
+ ];
368
+ this.showColumnXS = true;
369
+ this.userNameAlreadyUsedValidation = (e) => {
370
+ return this.managementUserService.hasExistingUserName(e.data).pipe(map((exist) => {
371
+ return !exist;
372
+ })).toPromise();
373
+ };
374
+ breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
375
+ this.showColumnXS = !result.matches;
376
+ });
377
+ }
378
+ ngOnInit() {
379
+ this.getUsers();
380
+ }
381
+ onRowInserted(e) {
382
+ this.saveGroup(e.data);
383
+ }
384
+ onRowUpdated(e) {
385
+ this.saveGroup(e.key);
386
+ }
387
+ onRowRemoved(e) {
388
+ const user = e.data;
389
+ this.managementUserService.delete(user.id).subscribe((data) => {
390
+ this.getUsers();
391
+ });
392
+ }
393
+ saveGroup(user) {
394
+ this.managementUserService.save(user).subscribe(() => {
395
+ this.getUsers();
396
+ });
397
+ }
398
+ getUsers() {
399
+ this.managementUserService.getAll().subscribe((data) => this.users = data);
400
+ }
401
+ }
402
+ CaucaManagementUserComponent.decorators = [
403
+ { type: Component, args: [{
404
+ selector: 'cauca-management-user',
405
+ template: "<cauca-dx-data-grid\r\n keyExpr=\"id\"\r\n [dataSource]=\"users\"\r\n (onRowInserted)=\"onRowInserted($event)\"\r\n (onRowUpdated)=\"onRowUpdated($event)\"\r\n (onRowRemoved)=\"onRowRemoved($event)\">\r\n\r\n <dxi-column dataField=\"userName\" [caption]=\"'management.userName' | translate\">\r\n <dxi-validation-rule type=\"async\" [message]=\"'management.userNameAlreadyUsed' | translate\" [validationCallback]=\"userNameAlreadyUsedValidation\"></dxi-validation-rule>\r\n </dxi-column>\r\n <dxi-column dataField=\"isActive\" [caption]=\"'management.isActive' | translate\" [visible]=\"false\"></dxi-column>\r\n <dxi-column dataField=\"firstName\" [caption]=\"'management.firstName' | translate\"></dxi-column>\r\n <dxi-column dataField=\"lastName\" [caption]=\"'management.lastName' | translate\"></dxi-column>\r\n <dxi-column dataField=\"groups\" [caption]=\"'management.group' | translate\"></dxi-column>\r\n\r\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\r\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\"></dxo-popup>\r\n <dxo-form colCount=\"2\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\r\n <dxi-item dataField=\"userName\" [isRequired]=\"true\"></dxi-item>\r\n <dxi-item dataField=\"isActive\"></dxi-item>\r\n <dxi-item dataField=\"firstName\"></dxi-item>\r\n <dxi-item dataField=\"lastName\"></dxi-item>\r\n <dxi-item dataField=\"group\"></dxi-item>\r\n </dxo-form>\r\n </dxo-editing>\r\n</cauca-dx-data-grid>\r\n",
406
+ styles: [""]
407
+ },] }
408
+ ];
409
+ CaucaManagementUserComponent.ctorParameters = () => [
410
+ { type: ManagementUserService },
411
+ { type: BreakpointObserver }
411
412
  ];
412
413
 
413
- class CaucaManagementModule {
414
- }
415
- CaucaManagementModule.decorators = [
416
- { type: NgModule, args: [{
417
- declarations: [
418
- CaucaManagementComponent,
419
- CaucaManagementGroupComponent,
420
- CaucaManagementUserComponent
421
- ],
422
- imports: [
423
- CommonModule,
424
- DxCheckBoxModule,
425
- DxListModule,
426
- DxTagBoxModule,
427
- CaucaCoreForChildModule,
428
- CaucaDevextremeModule,
429
- ],
430
- exports: [
431
- CaucaManagementComponent,
432
- CaucaManagementUserComponent,
433
- CaucaManagementGroupComponent,
434
- ]
435
- },] }
414
+ class CaucaManagementModule {
415
+ }
416
+ CaucaManagementModule.decorators = [
417
+ { type: NgModule, args: [{
418
+ declarations: [
419
+ CaucaManagementComponent,
420
+ CaucaManagementGroupComponent,
421
+ CaucaManagementUserComponent
422
+ ],
423
+ imports: [
424
+ CommonModule,
425
+ DxCheckBoxModule,
426
+ DxListModule,
427
+ DxTagBoxModule,
428
+ CaucaCoreForChildModule,
429
+ CaucaDevextremeModule,
430
+ ],
431
+ exports: [
432
+ CaucaManagementComponent,
433
+ CaucaManagementUserComponent,
434
+ CaucaManagementGroupComponent,
435
+ ]
436
+ },] }
436
437
  ];
437
438
 
438
- class UserGroupModel {
439
- constructor() {
440
- this.idUserGroup = '';
441
- this.idGroup = '';
442
- this.idUser = '';
443
- }
439
+ class UserGroupModel {
440
+ constructor() {
441
+ this.idUserGroup = '';
442
+ this.idGroup = '';
443
+ this.idUser = '';
444
+ }
444
445
  }
445
446
 
446
- class UserPermissionModel {
447
- constructor() {
448
- this.idUserPermission = '';
449
- this.isAllowed = false;
450
- this.idUser = '';
451
- this.idModulePermission = '';
452
- }
447
+ class UserPermissionModel {
448
+ constructor() {
449
+ this.idUserPermission = '';
450
+ this.isAllowed = false;
451
+ this.idUser = '';
452
+ this.idModulePermission = '';
453
+ }
453
454
  }
454
455
 
455
- class GroupModel {
456
- constructor() {
457
- this.name = '';
458
- this.users = [];
459
- this.permissions = [];
460
- }
456
+ class GroupModel {
457
+ constructor() {
458
+ this.name = '';
459
+ this.users = [];
460
+ this.permissions = [];
461
+ }
461
462
  }
462
463
 
463
- class GroupPermissionModel {
464
- constructor() {
465
- this.idGroupPermission = '';
466
- this.isAllowed = false;
467
- this.idGroup = '';
468
- this.idModulePermission = '';
469
- }
464
+ class GroupPermissionModel {
465
+ constructor() {
466
+ this.idGroupPermission = '';
467
+ this.isAllowed = false;
468
+ this.idGroup = '';
469
+ this.idModulePermission = '';
470
+ }
470
471
  }
471
472
 
472
- /*
473
- * Public API Surface of cauca-management
473
+ /*
474
+ * Public API Surface of cauca-management
474
475
  */
475
476
 
476
- /**
477
- * Generated bundle index. Do not edit.
477
+ /**
478
+ * Generated bundle index. Do not edit.
478
479
  */
479
480
 
480
481
  export { CaucaManagementComponent, CaucaManagementGroupComponent, CaucaManagementModule, CaucaManagementService, CaucaManagementUserComponent, GroupModel, GroupPermissionModel, ManagementGroupService, ManagementUserService, UserGroupModel, UserModel, UserPermissionModel, ManagementPermissionService as ɵa };