[SI-376]: total commit (with unit tests) Signed-off-by: Dennis Schmitt <dennis.schmitt@pta.de>
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.html b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.html index 006a3c1..fe4874f 100644 --- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.html +++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.html
@@ -106,7 +106,10 @@ </div> <ng-template #map> - <openk-grid-failure-information-map [mapData]="sandbox.gridFailureList$ | async"></openk-grid-failure-information-map> + <openk-grid-failure-information-map + [mapData]="sandbox.gridFailureList$ | async" + (gridFailureId)="navigateToDetails($event)" + ></openk-grid-failure-information-map> </ng-template> <app-spinner [isRunning]="sandbox.gridFailureListLoading$ | async"></app-spinner> </div>
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts index 6ef4d4f..3ca4491 100644 --- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts +++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
@@ -185,4 +185,10 @@ component.changeFilter(false, RolesEnum.QUALIFIER); expect(spy).toHaveBeenCalled(); }); + + it('should navigate to detail when navigateToDetail-function was called', () => { + const spy: any = spyOn(router, 'navigate'); + component.navigateToDetails('test'); + expect(spy).toHaveBeenCalledWith(['/grid-failures', 'test']); + }); });
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts index 75be6a5..b349bd7 100644 --- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts +++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
@@ -141,6 +141,10 @@ this._changeMode(); } + public navigateToDetails(id: string) { + this._router.navigate(['/grid-failures', id]); + } + private _setInitialGridOptions(): void { this.gridOptions.context.eventSubject.pipe(takeUntil(this._endSubscriptions$)).subscribe(event => { switch (event.type) {
diff --git a/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.spec.ts b/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.spec.ts index a862a64..0631b88 100644 --- a/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.spec.ts +++ b/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.spec.ts
@@ -30,11 +30,15 @@ const radius: any = 100; const marker: any = {}; component.mapData = [{ latitude: latitude, longitude: longitude, radius: radius }]; - let spyMap: any = spyOn(L, 'map').and.returnValue({ remove() {} }); + let spyMap: any = spyOn(L, 'map').and.returnValue({ remove() {}, on() {} }); let spyTileLayer: any = spyOn(L, 'tileLayer').and.returnValue({ addTo() {} }); let spyMarker: any = spyOn(L, 'marker').and.returnValue({ addTo() { - return { bindTooltip: () => {} }; + return { + on: () => { + return { bindTooltip: () => {} }; + }, + }; }, }); let spyCircle: any = spyOn(L, 'circle').and.returnValue({ addTo() {} });
diff --git a/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.ts b/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.ts index fc63408..24470ff 100644 --- a/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.ts +++ b/projects/openk/grid-failure-information-map/src/lib/grid-failure-information-map.component.ts
@@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 ********************************************************************************/ -import { Component, AfterViewInit, Input } from '@angular/core'; +import { Component, AfterViewInit, Input, Output, EventEmitter } from '@angular/core'; import * as L from 'leaflet'; import { Globals } from '@openk-libs/grid-failure-information-map/constants/globals'; import { GridFailureMapInformation } from '@openk-libs/grid-failure-information-map/shared/models/grid-failure-coordinates.model'; @@ -27,6 +27,8 @@ private _mapData: Array<GridFailureMapInformation> = []; private _mapDetailData: GridFailureMapInformation; + @Output() gridFailureId: EventEmitter<string> = new EventEmitter(); + @Input() public set mapData(data: Array<any>) { data.forEach(gridFailureData => { @@ -83,7 +85,9 @@ if (!!this._map && !!this._mapData) { this._mapData.forEach(gridFailure => { if (gridFailure.latitude && gridFailure.longitude) { - const currentMarker = L.marker([gridFailure.latitude, gridFailure.longitude], { icon: this._icon }).addTo(this._map); + const currentMarker = L.marker([gridFailure.latitude, gridFailure.longitude], { icon: this._icon }) + .addTo(this._map) + .on('click', () => this.gridFailureId.emit(gridFailure.id)); currentMarker.bindTooltip( `${Globals.STRONG_BEGIN_TAG}${Globals.GRID_FAILURE_BEGIN}${Globals.STRONG_END_TAG} ${convertISOToLocalDateTime(gridFailure.failureBegin)}${ Globals.BREAK_TAG