Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend into DEVELOP
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.html b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.html
index df52e22..7472b7b 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.html
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.html
@@ -34,8 +34,8 @@
</ag-grid-angular>
<app-spinner [isRunning]="sandbox.distributionGroupLoading$ | async"></app-spinner>
<div class="distribution-group-member-container">
- <app-distribution-group-members class="distribution-group-member"></app-distribution-group-members>
- <app-distribution-group-member-postcodes class="distribution-group-member-postcodes"></app-distribution-group-member-postcodes>
+ <app-distribution-group-members (rowSelectionChanged)="plzValueId = $event" class="distribution-group-member"></app-distribution-group-members>
+ <app-distribution-group-member-postcodes [plzValueId]="plzValueId" class="distribution-group-member-postcodes"></app-distribution-group-member-postcodes>
</div>
</div>
<app-distribution-group-details class="distribution-group-form"></app-distribution-group-details>
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.ts
index a3703c2..7047eb0 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-list/distribution-group-list.component.ts
@@ -28,6 +28,7 @@
public frameworkComponents: { setFilterComponent: any };
public api: GridApi | null | undefined;
public RolesEnum = RolesEnum;
+ public plzValueId: string;
constructor(public sandbox: DistributionGroupSandbox) {
super();
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts
index 22c8666..c77ab40 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts
@@ -11,7 +11,7 @@
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
import { DistributionGroupSandbox, PostcodeInterface } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group.sandbox';
-import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
+import { Component, OnInit, ViewChild, ElementRef, Input } from '@angular/core';
import { BaseList } from '@grid-failure-information-app/shared/components/base-components/base.list';
import { Subscription } from 'rxjs';
import { DISTRIBUTION_GROUP_MEMBER_POSTCODES_COLDEF } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes-col-def';
@@ -31,6 +31,14 @@
public columnDefinition: any = DISTRIBUTION_GROUP_MEMBER_POSTCODES_COLDEF;
public frameworkComponents: { setFilterComponent: any };
+ @Input() set plzValueId(value: string) {
+ if (!this._currentPlzValueId || this._currentPlzValueId !== value) {
+ this._currentPlzValueId = value;
+ this.postcodeInput.nativeElement.value = '';
+ }
+ }
+ private _currentPlzValueId: string;
+
constructor(public sandbox: DistributionGroupSandbox, private _utilService: UtilService) {
super();
this.frameworkComponents = { setFilterComponent: SetFilterComponent };
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.ts
index 6526266..eace185 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-members/distribution-group-members.component.ts
@@ -11,7 +11,7 @@
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
import { DistributionGroupSandbox } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group.sandbox';
-import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
+import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';
import { BaseList } from '@grid-failure-information-app/shared/components/base-components/base.list';
import { DISTRIBUTION_GROUP_MEMBER_COLDEF } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group-members/distribution-group-members-col-def';
import { SetFilterComponent } from '@grid-failure-information-app/shared/filters/ag-grid/set-filter/set-filter.component';
@@ -27,6 +27,7 @@
})
export class DistributionGroupMembersComponent extends BaseList implements OnInit {
@ViewChild('searchInput', { static: true }) searchInput: ElementRef;
+ @Output() rowSelectionChanged: EventEmitter<any> = new EventEmitter();
public columnDefinition: any = DISTRIBUTION_GROUP_MEMBER_COLDEF;
public frameworkComponents: { setFilterComponent: any };
@@ -41,9 +42,11 @@
(this.gridOptions = {
...this.gridOptions,
onRowClicked: event => {
+ const rowChanged: boolean = this.sandbox.selectedMemberRowIndex !== event.rowIndex;
this.sandbox.selectedMemberRowIndex = event.rowIndex;
this.sandbox.setSelectedDistributionGroupMember(event.data);
this.sandbox.transformPostcodes();
+ if (rowChanged) this.rowSelectionChanged.emit(event.data.id);
},
onModelUpdated: event => {
if (event.api.getDisplayedRowAtIndex(this.sandbox.selectedMemberRowIndex)) {
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 4c048c8..db8e28f 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
@@ -160,6 +160,7 @@
}
public deleteDistributionGroupMember(groupId: string, memberId: string): void {
+ this.actionsSubject.pipe(ofType(distributionGroupActions.deleteDistributionGroupMemberSuccess), take(1)).subscribe(() => this.selectedMemberRowIndex = 0);
this.appState$.dispatch(distributionGroupActions.deleteDistributionGroupMember({ groupId: groupId, memberId: memberId }));
}
@@ -294,16 +295,22 @@
this._utilService.displayNotification('SelectedContactAlreadyAssigned', 'alert');
this.setSelectedContact(undefined);
} else {
- let newGroupMember = {
+ let newGroupMemberData = {
contactId: this._selectedContact.uuid,
distributionGroupUuid: this.selectedDistributionGroup.id,
};
+ const newGroupMember = new DistributionGroupMember(newGroupMemberData);
+ this.actionsSubject.pipe(ofType(distributionGroupActions.createDistributionGroupMemberSuccess), take(1)).subscribe(payload => {
+ this.selectedMemberRowIndex = 0;
+ });
this.appState$.dispatch(
distributionGroupActions.createDistributionGroupMember({
groupId: this.selectedDistributionGroup.id,
- newMember: new DistributionGroupMember(newGroupMember),
+ newMember: newGroupMember,
})
);
+ this.postcodes = [];
+ this._selectedDistributionGroupMember = newGroupMember;
this.setSelectedContact(undefined);
}
}
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts
index 4102866..d9ff356 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts
@@ -214,7 +214,7 @@
colId: 'radius',
headerName: 'GridFailure.RadiusInM',
sortable: true,
- comparator: stringInsensitiveComparator,
+ comparator: sortAlphaNum,
suppressMovable: true,
filter: 'setFilterComponent',
},
diff --git a/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts b/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
index 3345c1f..3c72fd9 100644
--- a/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
+++ b/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
@@ -127,9 +127,14 @@
firstInput = firstInput.housenumber;
secondInput = secondInput.housenumber;
}
+
+ if (firstInput === secondInput) return 0;
+ if (firstInput === null || (firstInput === '' && !!secondInput)) return -1; // handle ascending sorting with NULL values
+ if (secondInput === null || (secondInput === '' && !!firstInput)) return 1; // handle decending sorting with NULL values
+
// NULL or UNDEFINED handling
- firstInput = !firstInput ? '0' : firstInput;
- secondInput = !secondInput ? '0' : secondInput;
+ firstInput = !firstInput ? '0' : String(firstInput);
+ secondInput = !secondInput ? '0' : String(secondInput);
const removeA = /[^a-zA-Z]/g;
const removeNumber = /[^0-9]/g;