diff --git a/projects/common-map/src/fm-map/components/selected-item-temporal/selected-item-temporal.component.ts b/projects/common-map/src/fm-map/components/selected-item-temporal/selected-item-temporal.component.ts
index 1230b6d..b5917bc 100644
--- a/projects/common-map/src/fm-map/components/selected-item-temporal/selected-item-temporal.component.ts
+++ b/projects/common-map/src/fm-map/components/selected-item-temporal/selected-item-temporal.component.ts
@@ -2,7 +2,7 @@ import { Component, Injectable } from '@angular/core';
import { Location } from '@angular/common';
import { Store } from '@ngrx/store';
import * as mapReducers from '../../reducers/map.reducer';
-import { commonReducers, ItemTypeService, ItemService, FolderService } from '@farmmaps/common';
+import { commonReducers, ItemTypeService, ItemService, FolderService,IItem } from '@farmmaps/common';
import { Router } from '@angular/router';
import { ForItemType } from '../for-item/for-itemtype.decorator';
import { AbstractSelectedItemComponent } from '../selected-item/selected-item.component';
@@ -34,11 +34,25 @@ export class SelectedItemTemporalComponent extends AbstractSelectedItemComponent
return temporalItemLayer && temporalItemLayer.nextItemLayer != null;
}
+ nextDate():Date {
+ let temporalItemLayer = this.itemLayer as ITemporalItemLayer;
+ if(temporalItemLayer.nextItemLayer.item)
+ return temporalItemLayer.nextItemLayer.item.dataDate;
+ return null;
+ }
+
hasPrevious():boolean {
let temporalItemLayer = this.itemLayer as ITemporalItemLayer;
return temporalItemLayer && temporalItemLayer.previousItemLayer != null;
}
+ previousDate():Date {
+ let temporalItemLayer = this.itemLayer as ITemporalItemLayer;
+ if(temporalItemLayer.previousItemLayer.item)
+ return temporalItemLayer.previousItemLayer.item.dataDate;
+ return null;
+ }
+
handleNextTemporal(event:MouseEvent) {
this.store.dispatch(new mapActions.NextTemporal());
event.preventDefault();
@@ -48,4 +62,12 @@ export class SelectedItemTemporalComponent extends AbstractSelectedItemComponent
this.store.dispatch(new mapActions.PreviousTemporal());
event.preventDefault();
}
+
+ selectedItem():IItem {
+ let temporalItemLayer = this.itemLayer as ITemporalItemLayer;
+ if(temporalItemLayer && temporalItemLayer.selectedItemLayer) {
+ return temporalItemLayer.selectedItemLayer.item;
+ }
+ return null;
+ }
}
diff --git a/projects/common-map/src/fm-map/effects/map.effects.ts b/projects/common-map/src/fm-map/effects/map.effects.ts
index 27a11ee..e06a16a 100644
--- a/projects/common-map/src/fm-map/effects/map.effects.ts
+++ b/projects/common-map/src/fm-map/effects/map.effects.ts
@@ -178,8 +178,11 @@ export class MapEffects {
switchMap((action:mapActions.SelectItemSuccess) => {
if(action.item.itemType == "vnd.farmmaps.itemtype.temporal") {
return this.itemService$.getChildItemList(action.item.code,null).pipe(
- map(items => items.sort((a, b) => b.dataDate.getTime() - a.dataDate.getTime())),
- map((items) => new mapActions.SelectTemporalItemsSuccess(items )),
+ map(items => new mapActions.SelectTemporalItemsSuccess(
+ items.sort((a, b) =>
+ -(b.dataDate.getTime() - a.dataDate.getTime())
+ )
+ )),
catchError(error => of(new commonActions.Fail(error))));
} else {
return [];
diff --git a/projects/common-map/src/fm-map/reducers/map.reducer.ts b/projects/common-map/src/fm-map/reducers/map.reducer.ts
index 20ef8a9..c40759e 100644
--- a/projects/common-map/src/fm-map/reducers/map.reducer.ts
+++ b/projects/common-map/src/fm-map/reducers/map.reducer.ts
@@ -194,10 +194,10 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
return state;
} else {
temporalLayer.previousItemLayer = temporalLayer.selectedItemLayer;
- if( temporalLayer.previousItemLayer) temporalLayer.nextItemLayer.opacity=0;
+ if( temporalLayer.previousItemLayer) temporalLayer.previousItemLayer.opacity=0;
temporalLayer.selectedItemLayer = temporalLayer.nextItemLayer;
if( temporalLayer.selectedItemLayer) temporalLayer.selectedItemLayer.opacity=1;
- temporalLayer.nextItemLayer = index+1 < temporalLayer.temporalItems.length? new ItemLayer(temporalLayer.temporalItems[index+1],0):null;
+ temporalLayer.nextItemLayer = index+2 < temporalLayer.temporalItems.length ? new ItemLayer(temporalLayer.temporalItems[index+2],0):null;
if( temporalLayer.nextItemLayer) temporalLayer.nextItemLayer.opacity=0;
return tassign(state,{selectedItemLayer:tassign(state.selectedItemLayer,temporalLayer as ItemLayer)});
}
@@ -216,8 +216,8 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
if( temporalLayer.nextItemLayer) temporalLayer.nextItemLayer.opacity=0;
temporalLayer.selectedItemLayer = temporalLayer.previousItemLayer;
if( temporalLayer.selectedItemLayer) temporalLayer.selectedItemLayer.opacity=1;
- temporalLayer.previousItemLayer = index-1 >=0? new ItemLayer(temporalLayer.temporalItems[index-1]):null;
- if( temporalLayer.previousItemLayer) temporalLayer.nextItemLayer.opacity=0;
+ temporalLayer.previousItemLayer = index-2 >=0? new ItemLayer(temporalLayer.temporalItems[index-2],0):null;
+ if( temporalLayer.previousItemLayer) temporalLayer.previousItemLayer.opacity=0;
return tassign(state,{selectedItemLayer:tassign(state.selectedItemLayer,temporalLayer as ItemLayer)});
}
} else {