Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.frontend into SI-2907-Initiale-Darstellung-des-Stoerungsortes
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts
index 8b24c31..7cb22ff 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts
@@ -52,6 +52,7 @@
setBranchState() {},
setFormStateDirty() {},
setFormStatePristine() {},
+ setFaultLocationArea() {},
gridFailureDetailsFormState$: of({ ...INITIAL_STATE, gridFailureDetailsFormResponse } as any),
currentFormState: INITIAL_STATE,
disableStationAttributes: false,
@@ -165,6 +166,7 @@
postcode: 777 as any,
branch: Globals.BUSINESS_RULE_FIELDS.branch.power,
voltageLevel: Globals.FAILURE_LOCATION_NS,
+ faultLocationArea: 'address' as any,
} as any,
});
(component as any)._initialFailureLocationState();
@@ -189,6 +191,7 @@
stationIds: ['1'],
branch: Globals.BUSINESS_RULE_FIELDS.branch.power,
voltageLevel: Globals.FAILURE_LOCATION_MS,
+ faultLocationArea: 'station' as any,
} as any,
});
(component as any)._initialFailureLocationState();
@@ -210,6 +213,7 @@
latitude: 11 as any,
longitude: 12 as any,
voltageLevel: Globals.FAILURE_LOCATION_MS,
+ faultLocationArea: 'map' as any,
branch: Globals.BUSINESS_RULE_FIELDS.branch.power,
} as any,
@@ -234,6 +238,7 @@
postcode: 7373 as any,
branch: Globals.BUSINESS_RULE_FIELDS.branch.power,
voltageLevel: Globals.FAILURE_LOCATION_NS,
+ faultLocationArea: 'address' as any,
} as any,
});
(component as any)._initialFailureLocationState();
@@ -249,21 +254,17 @@
});
it('should disable unnecessary required properties when setLocation was called', () => {
- const spy = spyOn(gridFailureSandbox, 'setViewStateForReqProps');
component.gridFailureDetailsSandbox.gridFailureDetailsFormState$ = of(INITIAL_STATE, {
...component.gridFailureDetailsSandbox.currentFormState,
value: {
id: 1 as any,
- housenumber: 44 as any,
- radius: null as any,
- latitude: 11 as any,
- longitude: 12 as any,
+ faultLocationArea: 'address' as any,
branch: Globals.BUSINESS_RULE_FIELDS.branch.power,
} as any,
});
component.setLocation();
- expect(spy).toHaveBeenCalled();
+ expect(component.failureLocationView).toBe('NS');
});
it('should reset selected station if no value exists', () => {
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts
index 3bfe548..dd67a84 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts
@@ -13,7 +13,7 @@
import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';
import { GridFailureDetailsSandbox } from '@grid-failure-information-app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox';
-import { ModeEnum, RolesEnum, StateEnum, VoltageLevelEnum } from '@grid-failure-information-app/shared/constants/enums';
+import { ModeEnum, RolesEnum, StateEnum, VoltageLevelEnum, FaultLocationAreaEnum } from '@grid-failure-information-app/shared/constants/enums';
import { Globals } from '@grid-failure-information-app/shared/constants/globals';
import { GridFailure } from '@grid-failure-information-app/shared/models/grid-failure.model';
import * as store from '@grid-failure-information-app/shared/store';
@@ -114,29 +114,28 @@
const branch = this.gridFailureDetailsSandbox.branches.find(b => b.id === branchId);
this.gridFailureDetailsSandbox.setBranchState(branch);
}
- public setLocation(versionNumber?: string) {
+ public setLocation() {
this.gridFailureDetailsSandbox.gridFailureDetailsFormState$
.pipe(
- map(form => form.value),
- skipWhile(item => (!item.id && !item.branch) || (!!versionNumber && item.versionNumber !== +versionNumber)),
+ map(form => form.value.faultLocationArea),
+ skipWhile(faultLocationArea => !faultLocationArea),
take(1)
)
- .subscribe(v => {
- const version = unboxProperties<GridFailure>(v);
- const isBranchTelecom = version.branch === Globals.BUSINESS_RULE_FIELDS.branch.telecommunication;
- const isBranchPower = version.branch === Globals.BUSINESS_RULE_FIELDS.branch.power;
- const isBranchPowerMS = isBranchPower && version.voltageLevel === Globals.FAILURE_LOCATION_MS;
+ .subscribe(faultLocationArea => {
+ switch (faultLocationArea) {
+ case FaultLocationAreaEnum.Address:
+ this.failureLocationView = Globals.FAILURE_LOCATION_NS;
+ break;
+ case FaultLocationAreaEnum.Station:
+ this.failureLocationView = Globals.FAILURE_LOCATION_MS;
+ break;
+ case FaultLocationAreaEnum.Map:
+ this.failureLocationView = Globals.FAILURE_LOCATION_MAP;
+ break;
- if (!!version.postcode) {
- this.failureLocationView = Globals.FAILURE_LOCATION_NS;
- } else if (!!unbox(version.stationIds) && !!unbox(version.stationIds).length) {
- this.failureLocationView = Globals.FAILURE_LOCATION_MS;
- } else if (!!version.latitude && (!unbox(version.stationIds) || !unbox(version.stationIds).length)) {
- this.failureLocationView = Globals.FAILURE_LOCATION_MAP;
- } else if (isBranchPowerMS || isBranchTelecom) {
- this.failureLocationView = Globals.FAILURE_LOCATION_MS;
- } else {
- this.failureLocationView = Globals.FAILURE_LOCATION_NS;
+ default:
+ this.failureLocationView = Globals.FAILURE_LOCATION_NS;
+ break;
}
this.gridFailureDetailsSandbox.currentFormState.isEnabled && this.gridFailureDetailsSandbox.setViewStateForReqProps(this.failureLocationView);
});
@@ -219,11 +218,13 @@
}
isLocationRegionActiveForAddress(): boolean {
const ret = this.failureLocationView && this.failureLocationView !== Globals.FAILURE_LOCATION_NS;
+ this.gridFailureDetailsSandbox.setFaultLocationArea(FaultLocationAreaEnum.Address);
return ret;
}
setLocationRegionToStation() {
if (this.isLocationRegionActiveForStation()) {
this.failureLocationView = Globals.FAILURE_LOCATION_MS;
+ this.gridFailureDetailsSandbox.setFaultLocationArea(FaultLocationAreaEnum.Station);
this.setLocationRegion();
}
}
@@ -234,6 +235,7 @@
setLocationRegionToMap() {
if (this.isLocationRegionActiveForMap()) {
this.failureLocationView = Globals.FAILURE_LOCATION_MAP;
+ this.gridFailureDetailsSandbox.setFaultLocationArea(FaultLocationAreaEnum.Map);
this.setLocationRegion();
}
}
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts
index f3ed03e..782f007 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts
@@ -281,6 +281,10 @@
});
}
+ public setFaultLocationArea(area: string) {
+ this.appState$.dispatch(new SetValueAction(INITIAL_STATE.controls.faultLocationArea.id, area));
+ }
+
public setPublishedState(): void {
if (this.selectedPublicationChannels.length === 0) {
this._utilService.displayNotification('PublicationRequiresAtLeastOneChannel', 'alert');
diff --git a/projects/grid-failure-information-app/src/app/shared/constants/enums.ts b/projects/grid-failure-information-app/src/app/shared/constants/enums.ts
index 900f65a..d3a2444 100644
--- a/projects/grid-failure-information-app/src/app/shared/constants/enums.ts
+++ b/projects/grid-failure-information-app/src/app/shared/constants/enums.ts
@@ -88,3 +88,9 @@
SHOW = 'show',
HIDE = 'hide',
}
+
+export enum FaultLocationAreaEnum {
+ Address = 'address',
+ Station = 'station',
+ Map = 'map',
+}
diff --git a/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts b/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts
index 48cf0ea..6fcdf2a 100644
--- a/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts
+++ b/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts
@@ -74,6 +74,7 @@
public failureInformationCondensedId: string = null;
public addressPolygonPoints: Array<[Number, Number]> | Boxed<Array<[Number, Number]>> = null;
public description: string = null;
+ public faultLocationArea: string = null;
public constructor(data: any = null) {
super(data);