@ieeesa-npm/groups 0.6.1 → 0.6.3

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 (30) hide show
  1. package/esm2022/lib/assets/constants.json +26 -5
  2. package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +1 -1
  3. package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +221 -0
  4. package/esm2022/lib/components/tree-view/tree-view.component.mjs +7 -4
  5. package/esm2022/lib/components/view-roster/view-roster.component.mjs +113 -21
  6. package/esm2022/lib/groups.component.mjs +34 -4
  7. package/esm2022/lib/models/add-new-user.model.mjs +1 -1
  8. package/esm2022/lib/models/add-or-edit-user-group.model.mjs +2 -0
  9. package/esm2022/lib/models/delete-user-group.model.mjs +2 -0
  10. package/esm2022/lib/models/group-function-type.model.mjs +3 -2
  11. package/esm2022/lib/models/group-user-info.model.mjs +2 -0
  12. package/esm2022/lib/models/roster-function-type.model.mjs +7 -0
  13. package/esm2022/lib/models/user.model.mjs +1 -1
  14. package/esm2022/lib/services/groups.service.mjs +72 -6
  15. package/esm2022/public-api.mjs +5 -1
  16. package/fesm2022/ieeesa-npm-groups.mjs +463 -35
  17. package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
  18. package/lib/components/edit-user-roles/edit-user-roles.component.d.ts +89 -0
  19. package/lib/components/view-roster/view-roster.component.d.ts +32 -3
  20. package/lib/groups.component.d.ts +6 -0
  21. package/lib/models/add-new-user.model.d.ts +0 -15
  22. package/lib/models/add-or-edit-user-group.model.d.ts +15 -0
  23. package/lib/models/delete-user-group.model.d.ts +5 -0
  24. package/lib/models/group-function-type.model.d.ts +3 -2
  25. package/lib/models/group-user-info.model.d.ts +6 -0
  26. package/lib/models/roster-function-type.model.d.ts +4 -0
  27. package/lib/models/user.model.d.ts +1 -0
  28. package/lib/services/groups.service.d.ts +52 -17
  29. package/package.json +3 -3
  30. package/public-api.d.ts +4 -0
@@ -0,0 +1,89 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { GroupsService } from '../../services/groups.service';
3
+ import { AlignType, CheckboxOption, FormGrid, FormModel } from '@ieeesa-npm/presentation';
4
+ import { FormGroup } from '@angular/forms';
5
+ import { GroupUserInfo } from '../../models/group-user-info.model';
6
+ import { Subject } from 'rxjs';
7
+ import { AlertsService, GlobalErrorHandlerService } from '@ieeesa-npm/utility';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Component implements the functionalities to edit user roles for system user.
11
+ * @class EditUserRolesComponent
12
+ * @implements {OnInit}
13
+ * @implements {OnDestroy}
14
+ */
15
+ export declare class EditUserRolesComponent implements OnInit, OnDestroy {
16
+ private groupsService;
17
+ globalErrorHandlerService: GlobalErrorHandlerService;
18
+ alertService: AlertsService;
19
+ destroy$: Subject<boolean>;
20
+ constants: any;
21
+ addUserRosterTexts: any;
22
+ leftButtonLabel: any;
23
+ rightButtonLabel: any;
24
+ isSubmitButtonDisabled: boolean;
25
+ colWidth: FormGrid;
26
+ editUserRoleFormGroup: FormModel;
27
+ form: FormGroup;
28
+ userRoles: CheckboxOption[];
29
+ selectedUserRoleIds: string[];
30
+ selectedUserInfo: GroupUserInfo;
31
+ actionButtonAlign: AlignType;
32
+ submitFormResponse: EventEmitter<any>;
33
+ formCancel: EventEmitter<any>;
34
+ constructor(groupsService: GroupsService, globalErrorHandlerService: GlobalErrorHandlerService, alertService: AlertsService);
35
+ /**
36
+ * Initialize the edit user role required information and form group array.
37
+ * @return -returns nothing
38
+ * @memberof EditUserRolesComponent
39
+ */
40
+ ngOnInit(): void;
41
+ /**
42
+ * Gets required information for the edit user role component.
43
+ * @return -returns nothing
44
+ * @memberof EditUserRolesComponent
45
+ */
46
+ getSelectedUserDetails(): void;
47
+ /**
48
+ * Initialize the edit user role form group array.
49
+ * @memberof EditUserRolesComponent
50
+ */
51
+ editUserRolesFormGroup(): void;
52
+ /**
53
+ * Handles user role selection in edit user roles form.
54
+ * @param {CheckboxOption} event
55
+ * @memberof EditUserRolesComponent
56
+ */
57
+ onUserRoleSelection(event: CheckboxOption): void;
58
+ /**
59
+ * Update roles of user on form submission.
60
+ * @param {FormGroup[]} form
61
+ * @memberof EditUserRolesComponent
62
+ */
63
+ onEditUserRoleFormSubmit(form: FormGroup[]): void;
64
+ /**
65
+ * Emits form cancel event.
66
+ * @memberof EditUserRolesComponent
67
+ */
68
+ onEditUserRoleCancelled(): void;
69
+ /**
70
+ * Get form reference.
71
+ * @param {FormGroup[]} form
72
+ * @memberof EditUserRolesComponent
73
+ */
74
+ getFormGroupReference(form: FormGroup[]): void;
75
+ /**
76
+ * Captures the server side errors and handles it based on the custom or Http errors.
77
+ * @param {HttpErrorResponse} error
78
+ * @return -returns nothing
79
+ * @memberof EditUserRolesComponent
80
+ */
81
+ handleErrors(error: any): void;
82
+ /**
83
+ * NgOnDestroy performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
84
+ * @memberof CreateGroupComponent
85
+ */
86
+ ngOnDestroy(): void;
87
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditUserRolesComponent, never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditUserRolesComponent, "ieeesa-edit-user-roles", never, {}, { "submitFormResponse": "submitFormResponse"; "formCancel": "formCancel"; }, never, never, true, never>;
89
+ }
@@ -1,10 +1,12 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { SortDirection } from '@angular/material/sort';
4
- import { TableColumnSchema, TableActions, CheckboxOption, ChipOption } from '@ieeesa-npm/presentation';
5
- import { AlertsService, GlobalErrorHandlerService } from '@ieeesa-npm/utility';
4
+ import { MatDialog } from '@angular/material/dialog';
5
+ import { TableColumnSchema, TableActions, CheckboxOption, AlignType, ChipOption } from '@ieeesa-npm/presentation';
6
+ import { AlertType, AlertsService, GlobalErrorHandlerService } from '@ieeesa-npm/utility';
6
7
  import { GroupsService } from '../../services/groups.service';
7
8
  import { User } from '../../models/user.model';
9
+ import { GroupUserInfo } from '../../models/group-user-info.model';
8
10
  import * as i0 from "@angular/core";
9
11
  /**
10
12
  * ViewRosterComponent implements the functionalities to add, edit, delete user to group roster, assign and modify roles(s) to the group users, and search user from roster.
@@ -13,6 +15,7 @@ import * as i0 from "@angular/core";
13
15
  * @implements {OnDestroy}
14
16
  */
15
17
  export declare class ViewRosterComponent implements AfterViewInit, OnDestroy {
18
+ dialog: MatDialog;
16
19
  private groupService;
17
20
  private alertService;
18
21
  private cdr;
@@ -20,6 +23,8 @@ export declare class ViewRosterComponent implements AfterViewInit, OnDestroy {
20
23
  destroy$: Subject<boolean>;
21
24
  constants: any;
22
25
  viewRosterConstants: any;
26
+ dialogRef: any;
27
+ alignmentType: typeof AlignType;
23
28
  filters: ChipOption[];
24
29
  columnSchema: TableColumnSchema[];
25
30
  tableData: User[];
@@ -29,7 +34,7 @@ export declare class ViewRosterComponent implements AfterViewInit, OnDestroy {
29
34
  rosterActions: TableActions;
30
35
  defaultSortedColumn: string;
31
36
  defaultColumnSortDirection: SortDirection;
32
- constructor(groupService: GroupsService, alertService: AlertsService, cdr: ChangeDetectorRef, globalErrorHandlerService: GlobalErrorHandlerService);
37
+ constructor(dialog: MatDialog, groupService: GroupsService, alertService: AlertsService, cdr: ChangeDetectorRef, globalErrorHandlerService: GlobalErrorHandlerService);
33
38
  /**
34
39
  * Show add new user success message when canShowMessage is set true
35
40
  * @memberof ViewRosterComponent
@@ -63,11 +68,35 @@ export declare class ViewRosterComponent implements AfterViewInit, OnDestroy {
63
68
  * @memberof ViewRosterComponent
64
69
  */
65
70
  handleErrors(error: any): void;
71
+ /**
72
+ * Opens the confirmation modal to get user confirmation to delete the users from the selected group.
73
+ * @memberof ViewRosterComponent
74
+ */
75
+ openUserDeleteConfirmationModal(selectedUsers: any): void;
76
+ /**
77
+ * Send API request to delete the selected user(s) from the selected group and handles the success and error response.
78
+ * @memberof ViewRosterComponent
79
+ */
80
+ deleteUsersGroup(groupId: string, userIds: string[]): void;
81
+ /**
82
+ * Sets selected user info and emits event openModalNotifier with EDIT_ROSTER_USER_ROLE value.
83
+ * @param {GroupUserInfo[]} selectedUserInfo
84
+ * @memberof ViewRosterComponent
85
+ */
86
+ onEditUserRoles(selectedUserInfo: GroupUserInfo[]): void;
66
87
  /**
67
88
  * Emits openModalNotifier event with GroupFunctionType value as ADD_USER_TO_ROSTER
68
89
  * @memberof ViewRosterComponent
69
90
  */
70
91
  onAddNewUser(): void;
92
+ /**
93
+ * Handles alerts for success, error, warning.
94
+ * @param {(string | string[])} message -error or warning message
95
+ * @param {AlertType} alertType
96
+ * @return -returns nothing
97
+ * @memberof ViewRosterComponent
98
+ */
99
+ showAlertMessage(message: string | string[], alertType: AlertType): void;
71
100
  /**
72
101
  * NgOnDestroy performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
73
102
  * @memberof ViewRosterComponent
@@ -27,6 +27,7 @@ export declare class GroupsComponent implements OnInit, OnDestroy {
27
27
  viewGroupTexts: any;
28
28
  createGroupText: any;
29
29
  editGroupTexts: any;
30
+ editUserRolesTexts: any;
30
31
  addUserRosterTexts: any;
31
32
  isGroupSearchActive: boolean;
32
33
  isGroupFilterActive: boolean;
@@ -77,6 +78,11 @@ export declare class GroupsComponent implements OnInit, OnDestroy {
77
78
  * @memberof GroupsComponent
78
79
  */
79
80
  openEditGroupForm(editGroupInfo: EditGroupAndParentInfo): void;
81
+ /**
82
+ * Sets the dialog options for edit user roles and calls openModal method.
83
+ * @memberof GroupsComponent
84
+ */
85
+ openEditUserRolesModal(): void;
80
86
  /**
81
87
  * Sets the dialog options for add users modal and calls openModal method.
82
88
  * @memberof GroupsComponent
@@ -13,18 +13,3 @@ export interface GetUserDetailsPayload {
13
13
  userId: string;
14
14
  };
15
15
  }
16
- export interface AddNewUserPayload {
17
- payload: {
18
- groupId: string;
19
- userId: string;
20
- roles: string[];
21
- email: string;
22
- };
23
- }
24
- export interface GroupUserDetailsResponse {
25
- status: boolean;
26
- message: string;
27
- body?: string | null | {
28
- errorCodes: string[];
29
- };
30
- }
@@ -0,0 +1,15 @@
1
+ export interface AddOrEditUserPayload {
2
+ payload: {
3
+ groupId: string;
4
+ userId: string;
5
+ roles: string[];
6
+ email: string;
7
+ };
8
+ }
9
+ export interface AddOrEditGroupUserDetailsResponse {
10
+ status: boolean;
11
+ message: string;
12
+ body?: string | null | {
13
+ errorCodes: string[];
14
+ };
15
+ }
@@ -0,0 +1,5 @@
1
+ export interface DeleteUserGroupPayload {
2
+ payload: {
3
+ [key: string]: string[];
4
+ };
5
+ }
@@ -3,6 +3,7 @@ export declare enum GroupFunctionType {
3
3
  EDIT = "EDIT",
4
4
  VIEW_ROSTER = "VIEW_ROSTER",
5
5
  FILTER = "FILTER",
6
- ADD_USER_TO_ROSTER = "ADD_USER_TO_ROSTER",
7
- TOGGLE = "TOGGLE"
6
+ TOGGLE = "TOGGLE",
7
+ EDIT_ROSTER_USER_ROLE = "EDIT_ROSTER_USER_ROLE",
8
+ ADD_USER_TO_ROSTER = "ADD_USER_TO_ROSTER"
8
9
  }
@@ -0,0 +1,6 @@
1
+ export interface GroupUserInfo {
2
+ email: string;
3
+ name: string;
4
+ role: string;
5
+ userId: string;
6
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum RosterFunctionType {
2
+ EDIT_ROSTER_USER_ROLE = "EDIT_ROSTER_USER_ROLE",
3
+ ADD_USER_TO_ROSTER = "ADD_USER_TO_ROSTER"
4
+ }
@@ -4,6 +4,7 @@ export interface User {
4
4
  name: string;
5
5
  email: string;
6
6
  role: string;
7
+ checked?: boolean;
7
8
  }
8
9
  export interface GetGroupUsersResponse {
9
10
  status: boolean;
@@ -9,7 +9,11 @@ import { SearchUsersPayload, FilterUsersByRolesPayload, GetGroupUsersResponse, U
9
9
  import { CheckboxOption } from '@ieeesa-npm/presentation';
10
10
  import { EditGroupPayload } from '../models/edit-group.model';
11
11
  import { GroupFunctionType } from '../models/group-function-type.model';
12
- import { AddNewUserPayload, GetUserDetailsPayload, SearchUserByEmailResponse, GroupUserDetailsResponse } from '../models/add-new-user.model';
12
+ import { RosterFunctionType } from '../models/roster-function-type.model';
13
+ import { GroupUserInfo } from '../models/group-user-info.model';
14
+ import { AddOrEditUserPayload, AddOrEditGroupUserDetailsResponse } from '../models/add-or-edit-user-group.model';
15
+ import { DeleteUserGroupPayload } from '../models/delete-user-group.model';
16
+ import { GetUserDetailsPayload, SearchUserByEmailResponse } from '../models/add-new-user.model';
13
17
  import * as i0 from "@angular/core";
14
18
  /**
15
19
  * Groups service is an abstract layer and responsible for managing groups REST API calls.
@@ -27,12 +31,6 @@ export declare class GroupsService {
27
31
  "1005": string;
28
32
  "1006": string;
29
33
  "1007": string;
30
- /**
31
- * Sets selected group info.
32
- * @param {(GroupInfo | undefined)} selectedGroupInfo -selected group info.
33
- * @param {(GroupInfo | undefined)} [selectedGroupParentInfo] -selected parent group info.
34
- * @memberof GroupsService
35
- */
36
34
  "1008": string;
37
35
  "1009": string;
38
36
  "1010": string;
@@ -46,11 +44,7 @@ export declare class GroupsService {
46
44
  "1018": string;
47
45
  "1019": string;
48
46
  "1020": string;
49
- "1021": string; /**
50
- * Sets group function type.
51
- * @param {GroupFunctionType} groupFunctionType -group function type.
52
- * @memberof GroupsService
53
- */
47
+ "1021": string;
54
48
  "1022": string;
55
49
  "1023": string;
56
50
  "1024": string;
@@ -74,7 +68,9 @@ export declare class GroupsService {
74
68
  selectedGroupParentInfo: GroupInfo | undefined;
75
69
  openModalNotifier: BehaviorSubject<GroupFunctionType>;
76
70
  groupTypeRoles: CheckboxOption[];
71
+ selectedUserInfo: GroupUserInfo;
77
72
  canShowMessage: boolean;
73
+ rosterFunctionType: RosterFunctionType;
78
74
  constructor(httpService: HttpService, alertService: AlertsService);
79
75
  setAppConfig(apiBaseUrl: string, userPermission: any): void;
80
76
  /**
@@ -97,6 +93,14 @@ export declare class GroupsService {
97
93
  * @memberof GroupsService
98
94
  */
99
95
  deleteGroup(deleteGroupPayload: DeleteGroupPayload): Observable<any>;
96
+ /**
97
+ * Deletes a user from group based on the provided information
98
+ * @param {groupId} string -groupId of the selected group from where selected user to be deleted.
99
+ * @param {userId} Array -user ids of selected users who are deleted from the selected group
100
+ * @return {*} {Observable<any>} -Observable representing the group deletion response
101
+ * @memberof GroupsService
102
+ */
103
+ deleteUsersGroup(deleteUserGroupPayload: DeleteUserGroupPayload): Observable<any>;
100
104
  /**
101
105
  * Posts create group form data to server using HttpService for creating new group.
102
106
  * @param {CreateGroupPayload} createGroupPayload -create group form data which includes group name, type, short name, scope.
@@ -201,17 +205,17 @@ export declare class GroupsService {
201
205
  /**
202
206
  * Gets the user details for the selected group
203
207
  * @param {GetUserDetailsPayload} payload
204
- * @return {Observable<GroupUserDetailsResponse>}
208
+ * @return {Observable<AddOrEditGroupUserDetailsResponse>}
205
209
  * @memberof GroupsService
206
210
  */
207
- getGroupUserDetails(payload: GetUserDetailsPayload): Observable<GroupUserDetailsResponse>;
211
+ getGroupUserDetails(payload: GetUserDetailsPayload): Observable<AddOrEditGroupUserDetailsResponse>;
208
212
  /**
209
213
  * Posts add new user form data to the API for the selected group and returns the success or failure response.
210
- * @param {AddNewUserPayload} addNewUserPayload
211
- * @return {Observable<GroupUserDetailsResponse>}
214
+ * @param {AddOrEditUserPayload} AddOrEditUserPayload
215
+ * @return {Observable<AddOrEditGroupUserDetailsResponse>}
212
216
  * @memberof GroupsService
213
217
  */
214
- addNewGroupUser(addNewUserPayload: AddNewUserPayload): Observable<GroupUserDetailsResponse>;
218
+ addNewGroupUser(AddOrEditUserPayload: AddOrEditUserPayload): Observable<AddOrEditGroupUserDetailsResponse>;
215
219
  /**
216
220
  * Sets the loaded group type user roles
217
221
  * @param {CheckboxOption[]} userRoles
@@ -224,6 +228,37 @@ export declare class GroupsService {
224
228
  * @memberof GroupsService
225
229
  */
226
230
  getGroupTypeUserRoles(): CheckboxOption[];
231
+ /**
232
+ * Sets the selected user info.
233
+ * @param {GroupUserInfo} userInfo
234
+ * @memberof GroupsService
235
+ */
236
+ setSelectedUserInfo(userInfo: GroupUserInfo): void;
237
+ /**
238
+ * Returns selected user info.
239
+ * @return {GroupUserInfo}
240
+ * @memberof GroupsService
241
+ */
242
+ getSelectedUserInfo(): GroupUserInfo;
243
+ /**
244
+ * Updates group user roles to server using HttpService.
245
+ * @param {AddOrEditUserPayload} payload
246
+ * @return {Observable<AddOrEditGroupUserDetailsResponse>}
247
+ * @memberof GroupsService
248
+ */
249
+ editGroupsUserRole(payload: AddOrEditUserPayload): Observable<AddOrEditGroupUserDetailsResponse>;
250
+ /**
251
+ * Sets roster function type.
252
+ * @param {RosterFunctionType} rosterFunctionType
253
+ * @memberof GroupsService
254
+ */
255
+ setRosterFunctionType(rosterFunctionType: RosterFunctionType): void;
256
+ /**
257
+ * Returns roster function type.
258
+ * @return {RosterFunctionType}
259
+ * @memberof GroupsService
260
+ */
261
+ getRosterFunctionType(): RosterFunctionType;
227
262
  static ɵfac: i0.ɵɵFactoryDeclaration<GroupsService, never>;
228
263
  static ɵprov: i0.ɵɵInjectableDeclaration<GroupsService>;
229
264
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ieeesa-npm/groups",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0",
7
- "@ieeesa-npm/presentation": "^0.7.7",
7
+ "@ieeesa-npm/presentation": "^0.7.9",
8
8
  "@ieeesa-npm/shared-styles": "^0.1.9",
9
- "@ieeesa-npm/utility": "^0.7.0"
9
+ "@ieeesa-npm/utility": "^0.7.2"
10
10
  },
11
11
  "dependencies": {
12
12
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './lib/components/create-group/create-group.component';
2
2
  export * from './lib/components/tree-view/tree-view.component';
3
+ export * from './lib/components/edit-user-roles/edit-user-roles.component';
3
4
  export * from './lib/groups.component';
4
5
  export * from './lib/models/create-group.model';
5
6
  export * from './lib/models/group-action.model';
@@ -10,6 +11,9 @@ export * from './lib/models/view-group.model';
10
11
  export * from './lib/models/edit-group.model';
11
12
  export * from './lib/models/form-status.model';
12
13
  export * from './lib/models/delete-group.model';
14
+ export * from './lib/models/group-user-info.model';
15
+ export * from './lib/models/add-or-edit-user-group.model';
16
+ export * from './lib/models/roster-function-type.model';
13
17
  export * from './lib/services/groups.service';
14
18
  export * from './lib/assets/form-validations';
15
19
  export * from './lib/groups.module';