diff --git a/projects/common-map/src/fm-map/actions/map.actions.ts b/projects/common-map/src/fm-map/actions/map.actions.ts index cb87f3c..5f17acf 100644 --- a/projects/common-map/src/fm-map/actions/map.actions.ts +++ b/projects/common-map/src/fm-map/actions/map.actions.ts @@ -5,6 +5,7 @@ import { IItemLayer } from '../models/item.layer'; import { IQueryState } from '@farmmaps/common'; import { IItem } from '@farmmaps/common'; import { Feature,Style } from 'ol'; +import { IListItem } from 'dist/common/public-api'; export const SETSTATE = '[Map] SetState'; export const SETMAPSTATE = '[Map] MapState'; @@ -16,6 +17,7 @@ export const STARTSEARCHSUCCESS = '[Map] StartSearchSuccess'; export const SELECTFEATURE = '[Map] SelectFeature'; export const SELECTITEM = '[Map] SelectItem'; export const SELECTITEMSUCCESS = '[Map] SelectItemSuccess'; +export const SELECTTEMPORALITEMSSUCCESS = '[Map] SelectTemporalItemsSuccess'; export const ADDFEATURESUCCESS = '[Map] AddFeatureSuccess'; export const UPDATEFEATURESUCCESS = '[Map] UpdateFeatureSuccess'; export const EXPANDSEARCH = '[Map] ExpandSearch'; @@ -97,6 +99,12 @@ export class SelectItemSuccess implements Action { constructor(public item: IItem) { } } +export class SelectTemporalItemsSuccess implements Action { + readonly type = SELECTTEMPORALITEMSSUCCESS; + + constructor(public temporalItems: IListItem[]) { } +} + export class AddFeatureSuccess implements Action { readonly type = ADDFEATURESUCCESS; @@ -224,6 +232,7 @@ export type Actions = SetMapState | SelectFeature | SelectItem | SelectItemSuccess + | SelectTemporalItemsSuccess | AddFeatureSuccess | UpdateFeatureSuccess | ExpandSearch 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 64c20ab..af2a7a6 100644 --- a/projects/common-map/src/fm-map/effects/map.effects.ts +++ b/projects/common-map/src/fm-map/effects/map.effects.ts @@ -172,6 +172,20 @@ export class MapEffects { } )); + @Effect() + selectItemSuccessTemporal$: Observable = this.actions$.pipe( + ofType(mapActions.SELECTITEMSUCCESS), + switchMap((action:mapActions.SelectItemSuccess) => { + if(action.item.itemType == "vnd.farmmaps.itemtype.temporal") { + return this.itemService$.getChildItemList(action.item.code,null).pipe( + map((items) => new mapActions.SelectTemporalItemsSuccess(items )), + catchError(error => of(new commonActions.Fail(error)))); + } else { + return []; + } + } + )); + @Effect() uploadedItemClick$: Observable = this.actions$.pipe( ofType(commonActions.UPLOADEDFILECLICK), diff --git a/projects/common/src/fm/services/item.service.ts b/projects/common/src/fm/services/item.service.ts index 51c376d..31044b4 100644 --- a/projects/common/src/fm/services/item.service.ts +++ b/projects/common/src/fm/services/item.service.ts @@ -77,7 +77,9 @@ export class ItemService { getChildItemList(parentcode: string, itemType: string, dataFilter?: any, level: number = 1, deep: boolean = true): Observable { var params = new HttpParams(); - params = params.append("it", itemType); + if(itemType != null) { + params = params.append("it", itemType); + } if (dataFilter != null) { params = params.append("df", JSON.stringify(dataFilter)); }