BugFixing: Distribution groups
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.html b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.html
index 74b691f..afd54c9 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.html
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.html
@@ -46,7 +46,7 @@
[columnDefs]="columnDefinition"
[rowSelection]="'single'"
[frameworkComponents]="frameworkComponents"
- [rowData]="sandbox.disableMemberButton ? [] : (sandbox.distributionGroupMember$ | async)"
+ [rowData]="sandbox.distributionGroupMember$ | async"
[overlayNoRowsTemplate]="noRowsTemplate"
(gridReady)="onGridReady($event)"
>
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts
index 6b9a4dc..ac2e7da 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts
@@ -40,7 +40,7 @@
public distributionGroupLoading$: Observable<boolean> = this.appState$.select(store.getDistributionGroupsLoading);
public distributionGroupDetailsFormState$: Observable<FormGroupState<DistributionGroup>> = this.appState$.select(store.getDistributionGroupsDetails);
public currentFormState: FormGroupState<DistributionGroup>;
- public distributionGroupMember$: Observable<DistributionGroupMember[]> = this.appState$.select(store.getDistributionGroupMembersData);
+ public distributionGroupMember$: Observable<DistributionGroupMember[]> = this.appState$.select(store.getDistributionGroupMembersData).pipe();
public distributionGroupMemberLoading$: Observable<boolean> = this.appState$.select(store.getDistributionGroupMembersLoading);
public disableMemberButton: boolean = false;
public distributionGroupTextPlaceholder: DistributionGroupTextPlaceholder;
@@ -68,6 +68,7 @@
}
public createDistributionGroup(): void {
+ this.appState$.dispatch(distributionGroupActions.resetDistributionGroupMembers());
this._clear();
this.appState$.dispatch(new MarkAsTouchedAction(distributionGroupFormReducer.FORM_ID));
this.selectedTemplate = DistributionPublicationStatusEnum.PUBLISH;
@@ -116,11 +117,7 @@
if (this.currentFormState.isValid) {
this.changeEmailTemplate(this.selectedTemplate, this.selectedTemplate);
let distributionGroup = new DistributionGroup(this.currentFormState.value);
- this.appState$.dispatch(
- distributionGroupActions.saveDistributionGroup({
- payload: distributionGroup,
- })
- );
+
// update: id exists
if (distributionGroup && distributionGroup.id) {
this.selectedDistributionGroup = distributionGroup;
@@ -128,6 +125,7 @@
this.actionsSubject
.pipe(
ofType(distributionGroupActions.saveDistributionGroupSuccess),
+ take(1),
map(action => action.payload),
takeUntil(this._endSubscriptions$)
)
@@ -140,6 +138,12 @@
this.oldSelectedTemplate = DistributionPublicationStatusEnum.PUBLISH;
this._clear();
});
+
+ this.appState$.dispatch(
+ distributionGroupActions.saveDistributionGroup({
+ payload: distributionGroup,
+ })
+ );
} else {
this._utilService.displayNotification('MandatoryFieldError', 'alert');
}
diff --git a/projects/grid-failure-information-app/src/app/shared/store/actions/distribution-groups.action.ts b/projects/grid-failure-information-app/src/app/shared/store/actions/distribution-groups.action.ts
index 2db2250..d3cd360 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/actions/distribution-groups.action.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/actions/distribution-groups.action.ts
@@ -35,6 +35,8 @@
'[DistributionGroupMembers] Load Success',
props<{ payload: Array<DistributionGroupMember> }>()
);
+
+export const resetDistributionGroupMembers = createAction('[DistributionGroupMembers] Reset Success');
export const loadDistributionGroupMembersFail = createAction('[DistributionGroupMembers] Load Fail', props<{ payload: string }>());
export const deleteDistributionGroupMember = createAction('[DistributionGroupMember] Delete', props<{ groupId: string; memberId: string }>());
diff --git a/projects/grid-failure-information-app/src/app/shared/store/reducers/distribution-groups/distribution-group-members.reducer.ts b/projects/grid-failure-information-app/src/app/shared/store/reducers/distribution-groups/distribution-group-members.reducer.ts
index 5f25208..b0624d4 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/reducers/distribution-groups/distribution-group-members.reducer.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/reducers/distribution-groups/distribution-group-members.reducer.ts
@@ -39,6 +39,16 @@
data: [],
};
}),
+ on(distributionGroupActions.resetDistributionGroupMembers, (state: any, action: any) => {
+ return {
+ ...state,
+ loading: false,
+ loaded: true,
+ failed: false,
+ data: [],
+ };
+ }),
+
on(distributionGroupActions.loadDistributionGroupMembersSuccess, (state: any, action: any) => {
return {
...state,