@cauca-911/management 12.0.0 → 12.0.2

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 (42) 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 +671 -477
  6. package/bundles/cauca-911-management.umd.js.map +1 -1
  7. package/cauca-911-management.d.ts +5 -5
  8. package/esm2015/cauca-911-management.js +5 -6
  9. package/esm2015/lib/cauca-management-group/cauca-management-group.component.js +298 -212
  10. package/esm2015/lib/cauca-management-user/cauca-management-user.component.js +106 -57
  11. package/esm2015/lib/cauca-management.component.js +27 -14
  12. package/esm2015/lib/cauca-management.module.js +57 -35
  13. package/esm2015/lib/cauca-management.service.js +14 -13
  14. package/esm2015/lib/shared/models/group-model.js +8 -8
  15. package/esm2015/lib/shared/models/group-permission-model.js +9 -9
  16. package/esm2015/lib/shared/models/permission-model.js +8 -8
  17. package/esm2015/lib/shared/models/user-group-model.js +8 -8
  18. package/esm2015/lib/shared/models/user-model.js +12 -11
  19. package/esm2015/lib/shared/models/user-permission-model.js +9 -9
  20. package/esm2015/lib/shared/services/management-group.service.js +34 -38
  21. package/esm2015/lib/shared/services/management-permission.service.js +31 -35
  22. package/esm2015/lib/shared/services/management-user.service.js +49 -53
  23. package/esm2015/public-api.js +16 -16
  24. package/fesm2015/cauca-911-management.js +608 -451
  25. package/fesm2015/cauca-911-management.js.map +1 -1
  26. package/lib/cauca-management-group/cauca-management-group.component.d.ts +45 -42
  27. package/lib/cauca-management-user/cauca-management-user.component.d.ts +20 -17
  28. package/lib/cauca-management.component.d.ts +8 -5
  29. package/lib/cauca-management.module.d.ts +15 -2
  30. package/lib/cauca-management.service.d.ts +6 -3
  31. package/lib/shared/models/group-model.d.ts +9 -9
  32. package/lib/shared/models/group-permission-model.d.ts +7 -7
  33. package/lib/shared/models/permission-model.d.ts +7 -7
  34. package/lib/shared/models/user-group-model.d.ts +6 -6
  35. package/lib/shared/models/user-model.d.ts +15 -14
  36. package/lib/shared/models/user-permission-model.d.ts +7 -7
  37. package/lib/shared/services/management-group.service.d.ts +17 -14
  38. package/lib/shared/services/management-permission.service.d.ts +16 -13
  39. package/lib/shared/services/management-user.service.d.ts +23 -20
  40. package/package.json +5 -3
  41. package/public-api.d.ts +12 -12
  42. package/cauca-911-management.metadata.json +0 -1
@@ -1,484 +1,641 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, Input, NgModule } from '@angular/core';
3
+ import * as i1 from '@ngx-translate/core';
4
+ import * as i10 from 'devextreme-angular/ui/check-box';
3
5
  import { DxCheckBoxModule } from 'devextreme-angular/ui/check-box';
6
+ import * as i9 from 'devextreme-angular/ui/list';
4
7
  import { DxListModule } from 'devextreme-angular/ui/list';
8
+ import * as i8 from 'devextreme-angular/ui/tag-box';
5
9
  import { DxTagBoxModule } from 'devextreme-angular/ui/tag-box';
6
- import * as i1 from '@cauca-911/core';
7
- import { CaucaCoreService, CaucaCoreForChildModule } from '@cauca-911/core';
10
+ import * as i1$1 from '@cauca-911/core';
11
+ import { CaucaCoreForChildModule } from '@cauca-911/core';
12
+ import * as i5 from '@cauca-911/devextreme';
8
13
  import { CaucaDevextremeModule } from '@cauca-911/devextreme';
9
- import { BreakpointObserver } from '@angular/cdk/layout';
10
14
  import { map } from 'rxjs/operators';
11
15
  import * as i2 from '@angular/common/http';
12
- import { HttpClient } from '@angular/common/http';
16
+ import * as i4 from '@angular/cdk/layout';
17
+ import * as i6 from 'devextreme-angular/ui/nested';
18
+ import * as i7 from 'devextreme-angular/core';
13
19
  import { CommonModule } from '@angular/common';
14
20
 
15
- class CaucaManagementService {
16
- constructor() { }
17
- }
18
- CaucaManagementService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CaucaManagementService_Factory() { return new CaucaManagementService(); }, token: CaucaManagementService, providedIn: "root" });
19
- CaucaManagementService.decorators = [
20
- { type: Injectable, args: [{
21
- providedIn: 'root'
22
- },] }
23
- ];
24
- CaucaManagementService.ctorParameters = () => [];
21
+ class CaucaManagementService {
22
+ constructor() { }
23
+ }
24
+ CaucaManagementService.ɵfac = function CaucaManagementService_Factory(t) { return new (t || CaucaManagementService)(); };
25
+ CaucaManagementService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaucaManagementService, factory: CaucaManagementService.ɵfac, providedIn: 'root' });
26
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaManagementService, [{
27
+ type: Injectable,
28
+ args: [{
29
+ providedIn: 'root'
30
+ }]
31
+ }], function () { return []; }, null); })();
25
32
 
26
- class CaucaManagementComponent {
27
- constructor() { }
28
- ngOnInit() {
29
- }
30
- }
31
- CaucaManagementComponent.decorators = [
32
- { type: Component, args: [{
33
- selector: 'cauca-management',
34
- template: "<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>"
35
- },] }
36
- ];
37
- CaucaManagementComponent.ctorParameters = () => [];
33
+ class CaucaManagementComponent {
34
+ constructor() { }
35
+ ngOnInit() {
36
+ }
37
+ }
38
+ CaucaManagementComponent.ɵfac = function CaucaManagementComponent_Factory(t) { return new (t || CaucaManagementComponent)(); };
39
+ CaucaManagementComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaucaManagementComponent, selectors: [["cauca-management"]], decls: 3, vars: 3, template: function CaucaManagementComponent_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementStart(0, "div");
41
+ i0.ɵɵtext(1);
42
+ i0.ɵɵpipe(2, "translate");
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ i0.ɵɵadvance(1);
46
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "core.noGenericComponentOnThisLibrary"));
47
+ } }, pipes: [i1.TranslatePipe], encapsulation: 2 });
48
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaManagementComponent, [{
49
+ type: Component,
50
+ args: [{
51
+ selector: 'cauca-management',
52
+ templateUrl: './cauca-management.component.html',
53
+ styles: []
54
+ }]
55
+ }], function () { return []; }, null); })();
38
56
 
39
- class ManagementGroupService {
40
- constructor(coreService, http) {
41
- this.http = http;
42
- this.config = coreService.getConfig();
43
- }
44
- getAll() {
45
- return this.http.get(`${this.config.apiUrl}GroupManagement`);
46
- }
47
- get(idGroup) {
48
- return this.http.get(`${this.config.apiUrl}GroupManagement/${idGroup}`);
49
- }
50
- save(group) {
51
- return this.http.post(`${this.config.apiUrl}GroupManagement`, group);
52
- }
53
- delete(idGroup) {
54
- return this.http.delete(`${this.config.apiUrl}GroupManagement/${idGroup}`);
55
- }
56
- hasExistingGroupName(group) {
57
- return this.http.post(`${this.config.apiUrl}GroupManagement/GroupNameAlreadyExist`, group);
58
- }
59
- }
60
- ManagementGroupService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ManagementGroupService_Factory() { return new ManagementGroupService(i0.ɵɵinject(i1.CaucaCoreService), i0.ɵɵinject(i2.HttpClient)); }, token: ManagementGroupService, providedIn: "root" });
61
- ManagementGroupService.decorators = [
62
- { type: Injectable, args: [{
63
- providedIn: 'root'
64
- },] }
65
- ];
66
- ManagementGroupService.ctorParameters = () => [
67
- { type: CaucaCoreService },
68
- { type: HttpClient }
69
- ];
57
+ class ManagementGroupService {
58
+ constructor(coreService, http) {
59
+ this.http = http;
60
+ this.config = coreService.getConfig();
61
+ }
62
+ getAll() {
63
+ return this.http.get(`${this.config.apiUrl}GroupManagement`);
64
+ }
65
+ get(idGroup) {
66
+ return this.http.get(`${this.config.apiUrl}GroupManagement/${idGroup}`);
67
+ }
68
+ save(group) {
69
+ return this.http.post(`${this.config.apiUrl}GroupManagement`, group);
70
+ }
71
+ delete(idGroup) {
72
+ return this.http.delete(`${this.config.apiUrl}GroupManagement/${idGroup}`);
73
+ }
74
+ hasExistingGroupName(group) {
75
+ return this.http.post(`${this.config.apiUrl}GroupManagement/GroupNameAlreadyExist`, group);
76
+ }
77
+ }
78
+ ManagementGroupService.ɵfac = function ManagementGroupService_Factory(t) { return new (t || ManagementGroupService)(i0.ɵɵinject(i1$1.CaucaCoreService), i0.ɵɵinject(i2.HttpClient)); };
79
+ ManagementGroupService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ManagementGroupService, factory: ManagementGroupService.ɵfac, providedIn: 'root' });
80
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManagementGroupService, [{
81
+ type: Injectable,
82
+ args: [{
83
+ providedIn: 'root'
84
+ }]
85
+ }], function () { return [{ type: i1$1.CaucaCoreService }, { type: i2.HttpClient }]; }, null); })();
70
86
 
71
- class ManagementUserService {
72
- constructor(coreService, http) {
73
- this.http = http;
74
- this.config = coreService.getConfig();
75
- }
76
- getAll() {
77
- return this.http.get(`${this.config.apiUrl}UserManagement`);
78
- }
79
- get(idUser) {
80
- return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}`);
81
- }
82
- getGroup(idUser) {
83
- return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}/groups`);
84
- }
85
- addGroup(userGroup) {
86
- return this.http.post(`${this.config.apiUrl}UserManagement/group`, userGroup);
87
- }
88
- deleteGroup(idUserGroup) {
89
- return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserGroup}`);
90
- }
91
- addPermission(userPermission) {
92
- return this.http.post(`${this.config.apiUrl}UserManagement/permission`, userPermission);
93
- }
94
- deletePermission(idUserPermission) {
95
- return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserPermission}`);
96
- }
97
- save(user) {
98
- return this.http.post(`${this.config.apiUrl}UserManagement`, user);
99
- }
100
- delete(idUser) {
101
- return this.http.delete(`${this.config.apiUrl}UserManagement/${idUser}`);
102
- }
103
- hasExistingUserName(user) {
104
- return this.http.post(`${this.config.apiUrl}UserManagement/UserNameAlreadyExist`, user);
105
- }
106
- }
107
- ManagementUserService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ManagementUserService_Factory() { return new ManagementUserService(i0.ɵɵinject(i1.CaucaCoreService), i0.ɵɵinject(i2.HttpClient)); }, token: ManagementUserService, providedIn: "root" });
108
- ManagementUserService.decorators = [
109
- { type: Injectable, args: [{
110
- providedIn: 'root'
111
- },] }
112
- ];
113
- ManagementUserService.ctorParameters = () => [
114
- { type: CaucaCoreService },
115
- { type: HttpClient }
116
- ];
87
+ class ManagementUserService {
88
+ constructor(coreService, http) {
89
+ this.http = http;
90
+ this.config = coreService.getConfig();
91
+ }
92
+ getAll() {
93
+ return this.http.get(`${this.config.apiUrl}UserManagement`);
94
+ }
95
+ get(idUser) {
96
+ return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}`);
97
+ }
98
+ getGroup(idUser) {
99
+ return this.http.get(`${this.config.apiUrl}UserManagement/${idUser}/groups`);
100
+ }
101
+ addGroup(userGroup) {
102
+ return this.http.post(`${this.config.apiUrl}UserManagement/group`, userGroup);
103
+ }
104
+ deleteGroup(idUserGroup) {
105
+ return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserGroup}`);
106
+ }
107
+ addPermission(userPermission) {
108
+ return this.http.post(`${this.config.apiUrl}UserManagement/permission`, userPermission);
109
+ }
110
+ deletePermission(idUserPermission) {
111
+ return this.http.delete(`${this.config.apiUrl}UserManagement/groups/${idUserPermission}`);
112
+ }
113
+ save(user) {
114
+ return this.http.post(`${this.config.apiUrl}UserManagement`, user);
115
+ }
116
+ delete(idUser) {
117
+ return this.http.delete(`${this.config.apiUrl}UserManagement/${idUser}`);
118
+ }
119
+ hasExistingUserName(user) {
120
+ return this.http.post(`${this.config.apiUrl}UserManagement/UserNameAlreadyExist`, user);
121
+ }
122
+ }
123
+ ManagementUserService.ɵfac = function ManagementUserService_Factory(t) { return new (t || ManagementUserService)(i0.ɵɵinject(i1$1.CaucaCoreService), i0.ɵɵinject(i2.HttpClient)); };
124
+ ManagementUserService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ManagementUserService, factory: ManagementUserService.ɵfac, providedIn: 'root' });
125
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManagementUserService, [{
126
+ type: Injectable,
127
+ args: [{
128
+ providedIn: 'root'
129
+ }]
130
+ }], function () { return [{ type: i1$1.CaucaCoreService }, { type: i2.HttpClient }]; }, null); })();
117
131
 
118
- class ManagementPermissionService {
119
- constructor(coreService, http) {
120
- this.http = http;
121
- this.config = coreService.getConfig();
122
- }
123
- getAll() {
124
- return this.http.get(`${this.config.apiUrl}PermissionManagement`);
125
- }
126
- get(idPermission) {
127
- return this.http.get(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
128
- }
129
- save(permission) {
130
- return this.http.post(`${this.config.apiUrl}PermissionManagement`, permission);
131
- }
132
- delete(idPermission) {
133
- return this.http.delete(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
134
- }
135
- }
136
- ManagementPermissionService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ManagementPermissionService_Factory() { return new ManagementPermissionService(i0.ɵɵinject(i1.CaucaCoreService), i0.ɵɵinject(i2.HttpClient)); }, token: ManagementPermissionService, providedIn: "root" });
137
- ManagementPermissionService.decorators = [
138
- { type: Injectable, args: [{
139
- providedIn: 'root'
140
- },] }
141
- ];
142
- ManagementPermissionService.ctorParameters = () => [
143
- { type: CaucaCoreService },
144
- { type: HttpClient }
145
- ];
132
+ class ManagementPermissionService {
133
+ constructor(coreService, http) {
134
+ this.http = http;
135
+ this.config = coreService.getConfig();
136
+ }
137
+ getAll() {
138
+ return this.http.get(`${this.config.apiUrl}PermissionManagement`);
139
+ }
140
+ get(idPermission) {
141
+ return this.http.get(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
142
+ }
143
+ save(permission) {
144
+ return this.http.post(`${this.config.apiUrl}PermissionManagement`, permission);
145
+ }
146
+ delete(idPermission) {
147
+ return this.http.delete(`${this.config.apiUrl}PermissionManagement/${idPermission}`);
148
+ }
149
+ }
150
+ ManagementPermissionService.ɵfac = function ManagementPermissionService_Factory(t) { return new (t || ManagementPermissionService)(i0.ɵɵinject(i1$1.CaucaCoreService), i0.ɵɵinject(i2.HttpClient)); };
151
+ ManagementPermissionService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ManagementPermissionService, factory: ManagementPermissionService.ɵfac, providedIn: 'root' });
152
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManagementPermissionService, [{
153
+ type: Injectable,
154
+ args: [{
155
+ providedIn: 'root'
156
+ }]
157
+ }], function () { return [{ type: i1$1.CaucaCoreService }, { type: i2.HttpClient }]; }, null); })();
146
158
 
147
- class CaucaManagementGroupComponent {
148
- constructor(managementGroupService, managementUserService, managementPermissionService, breakpointObserver) {
149
- this.managementGroupService = managementGroupService;
150
- this.managementUserService = managementUserService;
151
- this.managementPermissionService = managementPermissionService;
152
- this.showPrintButton = true;
153
- this.hoverStatePermission = true;
154
- this.groups = [];
155
- this.users = [];
156
- this.permissions = [];
157
- this.userFullName = {};
158
- this.showColumn = true;
159
- this.showColumnXS = true;
160
- this.translations = [];
161
- this.calculateUsersCellValue = (e) => {
162
- const users = (e.users ? e.users : []);
163
- let usersNames = [];
164
- users.forEach((user) => {
165
- const userGroup = this.users.filter((u) => u.id === user.idUser);
166
- if (userGroup && userGroup[0]) {
167
- usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);
168
- }
169
- });
170
- usersNames = usersNames.sort((one, two) => (one < two ? -1 : 1));
171
- return usersNames.join(', ');
172
- };
173
- this.groupNameAlreadyUsedValidation = (e) => {
174
- return this.managementGroupService.hasExistingGroupName(e.data).pipe(map((exist) => {
175
- return !exist;
176
- })).toPromise();
177
- };
178
- breakpointObserver.observe(['(max-width: 1000px)']).subscribe((result) => {
179
- this.showColumn = !result.matches;
180
- });
181
- breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
182
- this.showColumnXS = !result.matches;
183
- });
184
- }
185
- ngOnInit() {
186
- this.managementUserService.getAll().subscribe((data) => {
187
- this.users = data;
188
- this.users.forEach((user) => {
189
- if (user.isActive) {
190
- if (user.firstName !== '' && user.lastName !== '') {
191
- this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;
192
- }
193
- }
194
- });
195
- });
196
- this.managementPermissionService.getAll().subscribe((permissions) => {
197
- const permissionIndex = permissions.findIndex((c) => {
198
- return c.tag === 'CanAccessPermissions';
199
- });
200
- if (permissionIndex !== -1) {
201
- permissions.splice(permissionIndex, 1);
202
- }
203
- permissions.sort((a, b) => {
204
- if (a.name < b.name) {
205
- return -1;
206
- }
207
- if (a.name > b.name) {
208
- return 1;
209
- }
210
- return 0;
211
- });
212
- this.permissions = permissions;
213
- });
214
- this.getGroups();
215
- }
216
- fullName(data) {
217
- if (!data) {
218
- return '';
219
- }
220
- return `${data.firstName} ${data.lastName}`;
221
- }
222
- getGroupUser(field, e) {
223
- const users = [];
224
- if (this.groupUsers) {
225
- this.groupUsers.forEach((user) => {
226
- users.push(user.idUser);
227
- });
228
- }
229
- e.component.option('value', users);
230
- }
231
- setGroupUser(field, e) {
232
- const groupUser = [];
233
- e.value.forEach((idUser) => {
234
- const groupIndex = (field.data.users || []).findIndex((g) => g.idUser === idUser);
235
- if (groupIndex === -1) {
236
- groupUser.push({ idUser, });
237
- }
238
- else {
239
- groupUser.push(field.data.users[groupIndex]);
240
- }
241
- });
242
- field.setValue(JSON.parse(JSON.stringify(groupUser)));
243
- }
244
- setGroupPermission(field, e) {
245
- const groupUser = [];
246
- e.value.forEach((idUser) => {
247
- groupUser.push({
248
- idUser,
249
- });
250
- });
251
- field.setValue(JSON.parse(JSON.stringify(groupUser)));
252
- }
253
- getPermissionStatus(field, permission, e) {
254
- const groupPermission = (field.value || []).find((p) => p.idModulePermission === permission.id);
255
- if (groupPermission) {
256
- e.component.option('value', groupPermission.isAllowed);
257
- }
258
- else {
259
- e.component.option('value', undefined);
260
- }
261
- }
262
- checkBoxToggled(field, permission, e) {
263
- if (e.component.skipOnValueChanged) {
264
- e.component.skipOnValueChanged = false;
265
- return;
266
- }
267
- if (e.component.setUndefinedNextTime) {
268
- e.component.setUndefinedNextTime = false;
269
- e.component.skipOnValueChanged = true;
270
- e.component.option('value', undefined);
271
- this.setPermissionStatus(field, permission, undefined);
272
- return;
273
- }
274
- if (e.value === false) {
275
- e.component.setUndefinedNextTime = true;
276
- }
277
- this.setPermissionStatus(field, permission, e.value);
278
- }
279
- onRowInserted(e) {
280
- this.saveGroup(e.data);
281
- }
282
- onRowUpdated(e) {
283
- this.saveGroup(e.data);
284
- }
285
- onRowRemoved(e) {
286
- const group = e.data;
287
- this.managementGroupService.delete(group.id).subscribe(() => {
288
- this.getGroups();
289
- });
290
- }
291
- onEditingStart(e) {
292
- this.groupUsers = e.data.users;
293
- }
294
- onInitNewRow() {
295
- this.groupUsers = [];
296
- }
297
- setPermissionStatus(field, permission, value) {
298
- const groupPermissions = field.value || [];
299
- const groupIndex = groupPermissions.findIndex((p) => p.idModulePermission === permission.id);
300
- if (groupIndex > -1) {
301
- groupPermissions[groupIndex].isAllowed = value;
302
- }
303
- else {
304
- groupPermissions.push({
305
- idModulePermission: permission.id,
306
- isAllowed: value,
307
- });
308
- }
309
- field.setValue(JSON.parse(JSON.stringify(groupPermissions)));
310
- }
311
- saveGroup(group) {
312
- this.removePermissionUndefined(group);
313
- if (group.users) {
314
- group.users.forEach((userGroup) => {
315
- userGroup.idGroup = group.id;
316
- });
317
- }
318
- if (group.permissions) {
319
- group.permissions.forEach((groupPermission) => {
320
- groupPermission.idGroup = group.id;
321
- });
322
- }
323
- this.managementGroupService.save(group).subscribe(() => {
324
- this.getGroups();
325
- });
326
- this.groupUsers = [];
327
- }
328
- removePermissionUndefined(group) {
329
- group.permissions = group.permissions.filter((permission) => permission.isAllowed !== undefined);
330
- }
331
- getGroups() {
332
- this.managementGroupService.getAll().subscribe((data) => this.groups = data);
333
- }
334
- }
335
- CaucaManagementGroupComponent.decorators = [
336
- { type: Component, args: [{
337
- selector: 'cauca-management-group',
338
- 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>",
339
- styles: [""]
340
- },] }
341
- ];
342
- CaucaManagementGroupComponent.ctorParameters = () => [
343
- { type: ManagementGroupService },
344
- { type: ManagementUserService },
345
- { type: ManagementPermissionService },
346
- { type: BreakpointObserver }
347
- ];
348
- CaucaManagementGroupComponent.propDecorators = {
349
- showPrintButton: [{ type: Input }],
350
- hoverStatePermission: [{ type: Input }]
351
- };
159
+ function CaucaManagementGroupComponent_div_17_Template(rf, ctx) { if (rf & 1) {
160
+ const _r4 = i0.ɵɵgetCurrentView();
161
+ i0.ɵɵelementStart(0, "div");
162
+ i0.ɵɵelementStart(1, "dx-tag-box", 13);
163
+ i0.ɵɵlistener("onInitialized", function CaucaManagementGroupComponent_div_17_Template_dx_tag_box_onInitialized_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r4); const field_r2 = restoredCtx.$implicit; const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.getGroupUser(field_r2, $event); })("onValueChanged", function CaucaManagementGroupComponent_div_17_Template_dx_tag_box_onValueChanged_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r4); const field_r2 = restoredCtx.$implicit; const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.setGroupUser(field_r2, $event); });
164
+ i0.ɵɵelementEnd();
165
+ i0.ɵɵelementEnd();
166
+ } if (rf & 2) {
167
+ const ctx_r0 = i0.ɵɵnextContext();
168
+ i0.ɵɵadvance(1);
169
+ i0.ɵɵproperty("displayExpr", ctx_r0.fullName)("dataSource", ctx_r0.users)("searchEnabled", true)("searchExpr", ctx_r0.fullName);
170
+ } }
171
+ function CaucaManagementGroupComponent_div_18_div_2_Template(rf, ctx) { if (rf & 1) {
172
+ const _r11 = i0.ɵɵgetCurrentView();
173
+ i0.ɵɵelementStart(0, "div");
174
+ i0.ɵɵelementStart(1, "dx-check-box", 15);
175
+ i0.ɵɵlistener("onInitialized", function CaucaManagementGroupComponent_div_18_div_2_Template_dx_check_box_onInitialized_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r11); const permission_r8 = restoredCtx.$implicit; const field_r6 = i0.ɵɵnextContext().$implicit; const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.getPermissionStatus(field_r6, permission_r8, $event); })("onValueChanged", function CaucaManagementGroupComponent_div_18_div_2_Template_dx_check_box_onValueChanged_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r11); const permission_r8 = restoredCtx.$implicit; const field_r6 = i0.ɵɵnextContext().$implicit; const ctx_r12 = i0.ɵɵnextContext(); return ctx_r12.checkBoxToggled(field_r6, permission_r8, $event); });
176
+ i0.ɵɵelementEnd();
177
+ i0.ɵɵelementEnd();
178
+ } if (rf & 2) {
179
+ const permission_r8 = ctx.$implicit;
180
+ i0.ɵɵadvance(1);
181
+ i0.ɵɵproperty("text", permission_r8.name);
182
+ } }
183
+ const _c0 = function () { return ["name", "tag"]; };
184
+ function CaucaManagementGroupComponent_div_18_Template(rf, ctx) { if (rf & 1) {
185
+ i0.ɵɵelementStart(0, "div");
186
+ i0.ɵɵelementStart(1, "dx-list", 14);
187
+ i0.ɵɵtemplate(2, CaucaManagementGroupComponent_div_18_div_2_Template, 2, 1, "div", 12);
188
+ i0.ɵɵelementEnd();
189
+ i0.ɵɵelementEnd();
190
+ } if (rf & 2) {
191
+ const ctx_r1 = i0.ɵɵnextContext();
192
+ i0.ɵɵadvance(1);
193
+ i0.ɵɵproperty("dataSource", ctx_r1.permissions)("searchEnabled", true)("searchExpr", i0.ɵɵpureFunction0(5, _c0))("hoverStateEnabled", ctx_r1.hoverStatePermission);
194
+ i0.ɵɵadvance(1);
195
+ i0.ɵɵproperty("dxTemplateOf", "rowTemplate");
196
+ } }
197
+ class CaucaManagementGroupComponent {
198
+ constructor(managementGroupService, managementUserService, managementPermissionService, breakpointObserver) {
199
+ this.managementGroupService = managementGroupService;
200
+ this.managementUserService = managementUserService;
201
+ this.managementPermissionService = managementPermissionService;
202
+ this.showPrintButton = true;
203
+ this.hoverStatePermission = true;
204
+ this.groups = [];
205
+ this.users = [];
206
+ this.permissions = [];
207
+ this.userFullName = {};
208
+ this.showColumn = true;
209
+ this.showColumnXS = true;
210
+ this.translations = [];
211
+ this.calculateUsersCellValue = (e) => {
212
+ const users = (e.users ? e.users : []);
213
+ let usersNames = [];
214
+ users.forEach((user) => {
215
+ const userGroup = this.users.filter((u) => u.id === user.idUser);
216
+ if (userGroup && userGroup[0]) {
217
+ usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);
218
+ }
219
+ });
220
+ usersNames = usersNames.sort((one, two) => (one < two ? -1 : 1));
221
+ return usersNames.join(', ');
222
+ };
223
+ this.groupNameAlreadyUsedValidation = (e) => this.managementGroupService.hasExistingGroupName(e.data).pipe(map((exist) => !exist)).toPromise();
224
+ breakpointObserver.observe(['(max-width: 1000px)']).subscribe((result) => {
225
+ this.showColumn = !result.matches;
226
+ });
227
+ breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
228
+ this.showColumnXS = !result.matches;
229
+ });
230
+ }
231
+ ngOnInit() {
232
+ this.managementUserService.getAll().subscribe((data) => {
233
+ this.users = data;
234
+ this.users.forEach((user) => {
235
+ if (user.isActive) {
236
+ if (user.firstName !== '' && user.lastName !== '') {
237
+ this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;
238
+ }
239
+ }
240
+ });
241
+ });
242
+ this.managementPermissionService.getAll().subscribe((permissions) => {
243
+ const permissionIndex = permissions.findIndex((c) => c.tag === 'CanAccessPermissions');
244
+ if (permissionIndex !== -1) {
245
+ permissions.splice(permissionIndex, 1);
246
+ }
247
+ permissions.sort((a, b) => {
248
+ if (a.name < b.name) {
249
+ return -1;
250
+ }
251
+ if (a.name > b.name) {
252
+ return 1;
253
+ }
254
+ return 0;
255
+ });
256
+ this.permissions = permissions;
257
+ });
258
+ this.getGroups();
259
+ }
260
+ fullName(data) {
261
+ if (!data) {
262
+ return '';
263
+ }
264
+ return `${data.firstName} ${data.lastName}`;
265
+ }
266
+ getGroupUser(field, e) {
267
+ const users = [];
268
+ if (this.groupUsers) {
269
+ this.groupUsers.forEach((user) => {
270
+ users.push(user.idUser);
271
+ });
272
+ }
273
+ e.component.option('value', users);
274
+ }
275
+ setGroupUser(field, e) {
276
+ const groupUser = [];
277
+ e.value.forEach((idUser) => {
278
+ const groupIndex = (field.data.users || []).findIndex((g) => g.idUser === idUser);
279
+ if (groupIndex === -1) {
280
+ groupUser.push({ idUser, });
281
+ }
282
+ else {
283
+ groupUser.push(field.data.users[groupIndex]);
284
+ }
285
+ });
286
+ field.setValue(JSON.parse(JSON.stringify(groupUser)));
287
+ }
288
+ setGroupPermission(field, e) {
289
+ const groupUser = [];
290
+ e.value.forEach((idUser) => {
291
+ groupUser.push({
292
+ idUser,
293
+ });
294
+ });
295
+ field.setValue(JSON.parse(JSON.stringify(groupUser)));
296
+ }
297
+ getPermissionStatus(field, permission, e) {
298
+ const groupPermission = (field.value || []).find((p) => p.idModulePermission === permission.id);
299
+ if (groupPermission) {
300
+ e.component.option('value', groupPermission.isAllowed);
301
+ }
302
+ else {
303
+ e.component.option('value', undefined);
304
+ }
305
+ }
306
+ checkBoxToggled(field, permission, e) {
307
+ if (e.component.skipOnValueChanged) {
308
+ e.component.skipOnValueChanged = false;
309
+ return;
310
+ }
311
+ if (e.component.setUndefinedNextTime) {
312
+ e.component.setUndefinedNextTime = false;
313
+ e.component.skipOnValueChanged = true;
314
+ e.component.option('value', undefined);
315
+ this.setPermissionStatus(field, permission, undefined);
316
+ return;
317
+ }
318
+ if (e.value === false) {
319
+ e.component.setUndefinedNextTime = true;
320
+ }
321
+ this.setPermissionStatus(field, permission, e.value);
322
+ }
323
+ onRowInserted(e) {
324
+ this.saveGroup(e.data);
325
+ }
326
+ onRowUpdated(e) {
327
+ this.saveGroup(e.data);
328
+ }
329
+ onRowRemoved(e) {
330
+ const group = e.data;
331
+ this.managementGroupService.delete(group.id).subscribe(() => {
332
+ this.getGroups();
333
+ });
334
+ }
335
+ onEditingStart(e) {
336
+ this.groupUsers = e.data.users;
337
+ }
338
+ onInitNewRow() {
339
+ this.groupUsers = [];
340
+ }
341
+ setPermissionStatus(field, permission, value) {
342
+ const groupPermissions = field.value || [];
343
+ const groupIndex = groupPermissions.findIndex((p) => p.idModulePermission === permission.id);
344
+ if (groupIndex > -1) {
345
+ groupPermissions[groupIndex].isAllowed = value;
346
+ }
347
+ else {
348
+ groupPermissions.push({
349
+ idModulePermission: permission.id,
350
+ isAllowed: value,
351
+ });
352
+ }
353
+ field.setValue(JSON.parse(JSON.stringify(groupPermissions)));
354
+ }
355
+ saveGroup(group) {
356
+ this.removePermissionUndefined(group);
357
+ if (group.users) {
358
+ group.users.forEach((userGroup) => {
359
+ userGroup.idGroup = group.id;
360
+ });
361
+ }
362
+ if (group.permissions) {
363
+ group.permissions.forEach((groupPermission) => {
364
+ groupPermission.idGroup = group.id;
365
+ });
366
+ }
367
+ this.managementGroupService.save(group).subscribe(() => {
368
+ this.getGroups();
369
+ });
370
+ this.groupUsers = [];
371
+ }
372
+ removePermissionUndefined(group) {
373
+ group.permissions = group.permissions.filter((permission) => permission.isAllowed !== undefined);
374
+ }
375
+ getGroups() {
376
+ this.managementGroupService.getAll().subscribe((data) => this.groups = data);
377
+ }
378
+ }
379
+ CaucaManagementGroupComponent.ɵfac = function CaucaManagementGroupComponent_Factory(t) { return new (t || CaucaManagementGroupComponent)(i0.ɵɵdirectiveInject(ManagementGroupService), i0.ɵɵdirectiveInject(ManagementUserService), i0.ɵɵdirectiveInject(ManagementPermissionService), i0.ɵɵdirectiveInject(i4.BreakpointObserver)); };
380
+ CaucaManagementGroupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaucaManagementGroupComponent, selectors: [["cauca-management-group"]], inputs: { showPrintButton: "showPrintButton", hoverStatePermission: "hoverStatePermission" }, decls: 19, vars: 31, consts: [["keyExpr", "id", 3, "allowPrint", "dataSource", "onRowInserted", "onInitNewRow", "onRowUpdated", "onEditingStart", "onRowRemoved"], ["dataField", "name", 3, "caption"], ["type", "async", 3, "message", "validationCallback"], ["dataField", "users", "editCellTemplate", "usersEditTemplate", 3, "caption", "calculateCellValue"], ["dataField", "permissions", "editCellTemplate", "permissionsEditTemplate", 3, "caption", "visible"], [3, "enabled"], ["mode", "popup", 3, "allowAdding", "allowUpdating", "allowDeleting", "useIcons"], [3, "showTitle", "title", "fullScreen"], ["colCount", "1", 3, "labelLocation"], ["dataField", "name", 3, "isRequired"], ["dataField", "users"], ["dataField", "permissions"], [4, "dxTemplate", "dxTemplateOf"], ["valueExpr", "id", 3, "displayExpr", "dataSource", "searchEnabled", "searchExpr", "onInitialized", "onValueChanged"], ["itemTemplate", "rowTemplate", 3, "dataSource", "searchEnabled", "searchExpr", "hoverStateEnabled"], [3, "text", "onInitialized", "onValueChanged"]], template: function CaucaManagementGroupComponent_Template(rf, ctx) { if (rf & 1) {
381
+ i0.ɵɵelementStart(0, "cauca-dx-data-grid", 0);
382
+ i0.ɵɵlistener("onRowInserted", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onRowInserted_0_listener($event) { return ctx.onRowInserted($event); })("onInitNewRow", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onInitNewRow_0_listener() { return ctx.onInitNewRow(); })("onRowUpdated", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onRowUpdated_0_listener($event) { return ctx.onRowUpdated($event); })("onEditingStart", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onEditingStart_0_listener($event) { return ctx.onEditingStart($event); })("onRowRemoved", function CaucaManagementGroupComponent_Template_cauca_dx_data_grid_onRowRemoved_0_listener($event) { return ctx.onRowRemoved($event); });
383
+ i0.ɵɵelementStart(1, "dxi-column", 1);
384
+ i0.ɵɵpipe(2, "translate");
385
+ i0.ɵɵelement(3, "dxi-validation-rule", 2);
386
+ i0.ɵɵpipe(4, "translate");
387
+ i0.ɵɵelementEnd();
388
+ i0.ɵɵelement(5, "dxi-column", 3);
389
+ i0.ɵɵpipe(6, "translate");
390
+ i0.ɵɵelement(7, "dxi-column", 4);
391
+ i0.ɵɵpipe(8, "translate");
392
+ i0.ɵɵelement(9, "dxo-export", 5);
393
+ i0.ɵɵelementStart(10, "dxo-editing", 6);
394
+ i0.ɵɵelement(11, "dxo-popup", 7);
395
+ i0.ɵɵpipe(12, "translate");
396
+ i0.ɵɵelementStart(13, "dxo-form", 8);
397
+ i0.ɵɵelement(14, "dxi-item", 9);
398
+ i0.ɵɵelement(15, "dxi-item", 10);
399
+ i0.ɵɵelement(16, "dxi-item", 11);
400
+ i0.ɵɵelementEnd();
401
+ i0.ɵɵelementEnd();
402
+ i0.ɵɵtemplate(17, CaucaManagementGroupComponent_div_17_Template, 2, 4, "div", 12);
403
+ i0.ɵɵtemplate(18, CaucaManagementGroupComponent_div_18_Template, 3, 6, "div", 12);
404
+ i0.ɵɵelementEnd();
405
+ } if (rf & 2) {
406
+ i0.ɵɵproperty("allowPrint", ctx.showPrintButton)("dataSource", ctx.groups);
407
+ i0.ɵɵadvance(1);
408
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(2, 21, "management.name"));
409
+ i0.ɵɵadvance(2);
410
+ i0.ɵɵproperty("message", i0.ɵɵpipeBind1(4, 23, "management.groupNameAlreadyUsed"))("validationCallback", ctx.groupNameAlreadyUsedValidation);
411
+ i0.ɵɵadvance(2);
412
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(6, 25, "management.users"))("calculateCellValue", ctx.calculateUsersCellValue);
413
+ i0.ɵɵadvance(2);
414
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(8, 27, "management.permissions"))("visible", false);
415
+ i0.ɵɵadvance(2);
416
+ i0.ɵɵproperty("enabled", false);
417
+ i0.ɵɵadvance(1);
418
+ i0.ɵɵproperty("allowAdding", true)("allowUpdating", true)("allowDeleting", true)("useIcons", true);
419
+ i0.ɵɵadvance(1);
420
+ i0.ɵɵproperty("showTitle", true)("title", i0.ɵɵpipeBind1(12, 29, "management.group"))("fullScreen", !ctx.showColumn);
421
+ i0.ɵɵadvance(2);
422
+ i0.ɵɵproperty("labelLocation", ctx.showColumnXS ? "left" : "top");
423
+ i0.ɵɵadvance(1);
424
+ i0.ɵɵproperty("isRequired", true);
425
+ i0.ɵɵadvance(3);
426
+ i0.ɵɵproperty("dxTemplateOf", "usersEditTemplate");
427
+ i0.ɵɵadvance(1);
428
+ i0.ɵɵproperty("dxTemplateOf", "permissionsEditTemplate");
429
+ } }, directives: [i5.CaucaDataGridComponent, i6.DxiColumnComponent, i6.DxiValidationRuleComponent, i6.DxoExportComponent, i6.DxoEditingComponent, i6.DxoPopupComponent, i6.DxoFormComponent, i6.DxiItemComponent, i7.DxTemplateDirective, i8.DxTagBoxComponent, i9.DxListComponent, i10.DxCheckBoxComponent], pipes: [i1.TranslatePipe], styles: [""] });
430
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaManagementGroupComponent, [{
431
+ type: Component,
432
+ args: [{
433
+ selector: 'cauca-management-group',
434
+ templateUrl: './cauca-management-group.component.html',
435
+ styleUrls: ['./cauca-management-group.component.scss']
436
+ }]
437
+ }], function () { return [{ type: ManagementGroupService }, { type: ManagementUserService }, { type: ManagementPermissionService }, { type: i4.BreakpointObserver }]; }, { showPrintButton: [{
438
+ type: Input
439
+ }], hoverStatePermission: [{
440
+ type: Input
441
+ }] }); })();
352
442
 
353
- class UserModel {
354
- constructor() {
355
- this.userName = '';
356
- this.firstName = '';
357
- this.lastName = '';
358
- this.password = '';
359
- this.email = '';
360
- this.isActive = true;
361
- }
443
+ class UserModel {
444
+ constructor() {
445
+ this.userName = '';
446
+ this.firstName = '';
447
+ this.lastName = '';
448
+ this.password = '';
449
+ this.email = '';
450
+ this.isActive = true;
451
+ this.twoFactorAuthenticatorEnabled = false;
452
+ }
362
453
  }
363
454
 
364
- class CaucaManagementUserComponent {
365
- constructor(managementUserService, breakpointObserver) {
366
- this.managementUserService = managementUserService;
367
- this.users = [
368
- new UserModel()
369
- ];
370
- this.showColumnXS = true;
371
- this.userNameAlreadyUsedValidation = (e) => {
372
- return this.managementUserService.hasExistingUserName(e.data).pipe(map((exist) => {
373
- return !exist;
374
- })).toPromise();
375
- };
376
- breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
377
- this.showColumnXS = !result.matches;
378
- });
379
- }
380
- ngOnInit() {
381
- this.getUsers();
382
- }
383
- onRowInserted(e) {
384
- this.saveGroup(e.data);
385
- }
386
- onRowUpdated(e) {
387
- this.saveGroup(e.key);
388
- }
389
- onRowRemoved(e) {
390
- const user = e.data;
391
- this.managementUserService.delete(user.id).subscribe((data) => {
392
- this.getUsers();
393
- });
394
- }
395
- saveGroup(user) {
396
- this.managementUserService.save(user).subscribe(() => {
397
- this.getUsers();
398
- });
399
- }
400
- getUsers() {
401
- this.managementUserService.getAll().subscribe((data) => this.users = data);
402
- }
403
- }
404
- CaucaManagementUserComponent.decorators = [
405
- { type: Component, args: [{
406
- selector: 'cauca-management-user',
407
- 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",
408
- styles: [""]
409
- },] }
410
- ];
411
- CaucaManagementUserComponent.ctorParameters = () => [
412
- { type: ManagementUserService },
413
- { type: BreakpointObserver }
414
- ];
455
+ class CaucaManagementUserComponent {
456
+ constructor(managementUserService, breakpointObserver) {
457
+ this.managementUserService = managementUserService;
458
+ this.users = [
459
+ new UserModel()
460
+ ];
461
+ this.showColumnXS = true;
462
+ this.userNameAlreadyUsedValidation = (e) => this.managementUserService.hasExistingUserName(e.data).pipe(map((exist) => !exist)).toPromise();
463
+ breakpointObserver.observe(['(max-width: 600px)']).subscribe((result) => {
464
+ this.showColumnXS = !result.matches;
465
+ });
466
+ }
467
+ ngOnInit() {
468
+ this.getUsers();
469
+ }
470
+ onRowInserted(e) {
471
+ this.saveGroup(e.data);
472
+ }
473
+ onRowUpdated(e) {
474
+ this.saveGroup(e.key);
475
+ }
476
+ onRowRemoved(e) {
477
+ const user = e.data;
478
+ this.managementUserService.delete(user.id).subscribe((data) => {
479
+ this.getUsers();
480
+ });
481
+ }
482
+ saveGroup(user) {
483
+ this.managementUserService.save(user).subscribe(() => {
484
+ this.getUsers();
485
+ });
486
+ }
487
+ getUsers() {
488
+ this.managementUserService.getAll().subscribe((data) => this.users = data);
489
+ }
490
+ }
491
+ CaucaManagementUserComponent.ɵfac = function CaucaManagementUserComponent_Factory(t) { return new (t || CaucaManagementUserComponent)(i0.ɵɵdirectiveInject(ManagementUserService), i0.ɵɵdirectiveInject(i4.BreakpointObserver)); };
492
+ CaucaManagementUserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaucaManagementUserComponent, selectors: [["cauca-management-user"]], decls: 22, vars: 31, consts: [["keyExpr", "id", 3, "dataSource", "onRowInserted", "onRowUpdated", "onRowRemoved"], ["dataField", "userName", 3, "caption"], ["type", "async", 3, "message", "validationCallback"], ["dataField", "isActive", 3, "caption", "visible"], ["dataField", "firstName", 3, "caption"], ["dataField", "lastName", 3, "caption"], ["dataField", "groups", 3, "caption"], ["mode", "popup", 3, "allowAdding", "allowUpdating", "allowDeleting", "useIcons"], [3, "showTitle", "title"], ["colCount", "2", 3, "labelLocation"], ["dataField", "userName", 3, "isRequired"], ["dataField", "isActive"], ["dataField", "firstName"], ["dataField", "lastName"], ["dataField", "group"]], template: function CaucaManagementUserComponent_Template(rf, ctx) { if (rf & 1) {
493
+ i0.ɵɵelementStart(0, "cauca-dx-data-grid", 0);
494
+ i0.ɵɵlistener("onRowInserted", function CaucaManagementUserComponent_Template_cauca_dx_data_grid_onRowInserted_0_listener($event) { return ctx.onRowInserted($event); })("onRowUpdated", function CaucaManagementUserComponent_Template_cauca_dx_data_grid_onRowUpdated_0_listener($event) { return ctx.onRowUpdated($event); })("onRowRemoved", function CaucaManagementUserComponent_Template_cauca_dx_data_grid_onRowRemoved_0_listener($event) { return ctx.onRowRemoved($event); });
495
+ i0.ɵɵelementStart(1, "dxi-column", 1);
496
+ i0.ɵɵpipe(2, "translate");
497
+ i0.ɵɵelement(3, "dxi-validation-rule", 2);
498
+ i0.ɵɵpipe(4, "translate");
499
+ i0.ɵɵelementEnd();
500
+ i0.ɵɵelement(5, "dxi-column", 3);
501
+ i0.ɵɵpipe(6, "translate");
502
+ i0.ɵɵelement(7, "dxi-column", 4);
503
+ i0.ɵɵpipe(8, "translate");
504
+ i0.ɵɵelement(9, "dxi-column", 5);
505
+ i0.ɵɵpipe(10, "translate");
506
+ i0.ɵɵelement(11, "dxi-column", 6);
507
+ i0.ɵɵpipe(12, "translate");
508
+ i0.ɵɵelementStart(13, "dxo-editing", 7);
509
+ i0.ɵɵelement(14, "dxo-popup", 8);
510
+ i0.ɵɵpipe(15, "translate");
511
+ i0.ɵɵelementStart(16, "dxo-form", 9);
512
+ i0.ɵɵelement(17, "dxi-item", 10);
513
+ i0.ɵɵelement(18, "dxi-item", 11);
514
+ i0.ɵɵelement(19, "dxi-item", 12);
515
+ i0.ɵɵelement(20, "dxi-item", 13);
516
+ i0.ɵɵelement(21, "dxi-item", 14);
517
+ i0.ɵɵelementEnd();
518
+ i0.ɵɵelementEnd();
519
+ i0.ɵɵelementEnd();
520
+ } if (rf & 2) {
521
+ i0.ɵɵproperty("dataSource", ctx.users);
522
+ i0.ɵɵadvance(1);
523
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(2, 17, "management.userName"));
524
+ i0.ɵɵadvance(2);
525
+ i0.ɵɵproperty("message", i0.ɵɵpipeBind1(4, 19, "management.userNameAlreadyUsed"))("validationCallback", ctx.userNameAlreadyUsedValidation);
526
+ i0.ɵɵadvance(2);
527
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(6, 21, "management.isActive"))("visible", false);
528
+ i0.ɵɵadvance(2);
529
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(8, 23, "management.firstName"));
530
+ i0.ɵɵadvance(2);
531
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(10, 25, "management.lastName"));
532
+ i0.ɵɵadvance(2);
533
+ i0.ɵɵproperty("caption", i0.ɵɵpipeBind1(12, 27, "management.group"));
534
+ i0.ɵɵadvance(2);
535
+ i0.ɵɵproperty("allowAdding", true)("allowUpdating", true)("allowDeleting", true)("useIcons", true);
536
+ i0.ɵɵadvance(1);
537
+ i0.ɵɵproperty("showTitle", true)("title", i0.ɵɵpipeBind1(15, 29, "management.group"));
538
+ i0.ɵɵadvance(2);
539
+ i0.ɵɵproperty("labelLocation", ctx.showColumnXS ? "left" : "top");
540
+ i0.ɵɵadvance(1);
541
+ i0.ɵɵproperty("isRequired", true);
542
+ } }, directives: [i5.CaucaDataGridComponent, i6.DxiColumnComponent, i6.DxiValidationRuleComponent, i6.DxoEditingComponent, i6.DxoPopupComponent, i6.DxoFormComponent, i6.DxiItemComponent], pipes: [i1.TranslatePipe], styles: [""] });
543
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaManagementUserComponent, [{
544
+ type: Component,
545
+ args: [{
546
+ selector: 'cauca-management-user',
547
+ templateUrl: './cauca-management-user.component.html',
548
+ styleUrls: ['./cauca-management-user.component.scss']
549
+ }]
550
+ }], function () { return [{ type: ManagementUserService }, { type: i4.BreakpointObserver }]; }, null); })();
415
551
 
416
- class CaucaManagementModule {
417
- }
418
- CaucaManagementModule.decorators = [
419
- { type: NgModule, args: [{
420
- declarations: [
421
- CaucaManagementComponent,
422
- CaucaManagementGroupComponent,
423
- CaucaManagementUserComponent
424
- ],
425
- imports: [
426
- CommonModule,
427
- DxCheckBoxModule,
428
- DxListModule,
429
- DxTagBoxModule,
430
- CaucaCoreForChildModule,
431
- CaucaDevextremeModule,
432
- ],
433
- exports: [
434
- CaucaManagementComponent,
435
- CaucaManagementUserComponent,
436
- CaucaManagementGroupComponent,
437
- ]
438
- },] }
439
- ];
552
+ class CaucaManagementModule {
553
+ }
554
+ CaucaManagementModule.ɵfac = function CaucaManagementModule_Factory(t) { return new (t || CaucaManagementModule)(); };
555
+ CaucaManagementModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CaucaManagementModule });
556
+ CaucaManagementModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
557
+ CommonModule,
558
+ DxCheckBoxModule,
559
+ DxListModule,
560
+ DxTagBoxModule,
561
+ CaucaCoreForChildModule,
562
+ CaucaDevextremeModule,
563
+ ]] });
564
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaucaManagementModule, [{
565
+ type: NgModule,
566
+ args: [{
567
+ declarations: [
568
+ CaucaManagementComponent,
569
+ CaucaManagementGroupComponent,
570
+ CaucaManagementUserComponent
571
+ ],
572
+ imports: [
573
+ CommonModule,
574
+ DxCheckBoxModule,
575
+ DxListModule,
576
+ DxTagBoxModule,
577
+ CaucaCoreForChildModule,
578
+ CaucaDevextremeModule,
579
+ ],
580
+ exports: [
581
+ CaucaManagementComponent,
582
+ CaucaManagementUserComponent,
583
+ CaucaManagementGroupComponent,
584
+ ]
585
+ }]
586
+ }], null, null); })();
587
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CaucaManagementModule, { declarations: [CaucaManagementComponent,
588
+ CaucaManagementGroupComponent,
589
+ CaucaManagementUserComponent], imports: [CommonModule,
590
+ DxCheckBoxModule,
591
+ DxListModule,
592
+ DxTagBoxModule,
593
+ CaucaCoreForChildModule,
594
+ CaucaDevextremeModule], exports: [CaucaManagementComponent,
595
+ CaucaManagementUserComponent,
596
+ CaucaManagementGroupComponent] }); })();
440
597
 
441
- class UserGroupModel {
442
- constructor() {
443
- this.idUserGroup = '';
444
- this.idGroup = '';
445
- this.idUser = '';
446
- }
598
+ class UserGroupModel {
599
+ constructor() {
600
+ this.idUserGroup = '';
601
+ this.idGroup = '';
602
+ this.idUser = '';
603
+ }
447
604
  }
448
605
 
449
- class UserPermissionModel {
450
- constructor() {
451
- this.idUserPermission = '';
452
- this.isAllowed = false;
453
- this.idUser = '';
454
- this.idModulePermission = '';
455
- }
606
+ class UserPermissionModel {
607
+ constructor() {
608
+ this.idUserPermission = '';
609
+ this.isAllowed = false;
610
+ this.idUser = '';
611
+ this.idModulePermission = '';
612
+ }
456
613
  }
457
614
 
458
- class GroupModel {
459
- constructor() {
460
- this.name = '';
461
- this.users = [];
462
- this.permissions = [];
463
- }
615
+ class GroupModel {
616
+ constructor() {
617
+ this.name = '';
618
+ this.users = [];
619
+ this.permissions = [];
620
+ }
464
621
  }
465
622
 
466
- class GroupPermissionModel {
467
- constructor() {
468
- this.idGroupPermission = '';
469
- this.isAllowed = false;
470
- this.idGroup = '';
471
- this.idModulePermission = '';
472
- }
623
+ class GroupPermissionModel {
624
+ constructor() {
625
+ this.idGroupPermission = '';
626
+ this.isAllowed = false;
627
+ this.idGroup = '';
628
+ this.idModulePermission = '';
629
+ }
473
630
  }
474
631
 
475
- /*
476
- * Public API Surface of cauca-management
632
+ /*
633
+ * Public API Surface of cauca-management
477
634
  */
478
635
 
479
- /**
480
- * Generated bundle index. Do not edit.
636
+ /**
637
+ * Generated bundle index. Do not edit.
481
638
  */
482
639
 
483
- export { CaucaManagementComponent, CaucaManagementGroupComponent, CaucaManagementModule, CaucaManagementService, CaucaManagementUserComponent, GroupModel, GroupPermissionModel, ManagementGroupService, ManagementUserService, UserGroupModel, UserModel, UserPermissionModel, ManagementPermissionService as ɵa };
640
+ export { CaucaManagementComponent, CaucaManagementGroupComponent, CaucaManagementModule, CaucaManagementService, CaucaManagementUserComponent, GroupModel, GroupPermissionModel, ManagementGroupService, ManagementUserService, UserGroupModel, UserModel, UserPermissionModel };
484
641
  //# sourceMappingURL=cauca-911-management.js.map