4 Commits

Author SHA1 Message Date
jenkins
d4786564bd [ci skip] Updated packages #2579
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2025-09-02 07:33:57 +00:00
6fd69d7999 AW-6981 Support for backup and restore (current) features
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2025-09-02 09:32:00 +02:00
jenkins
4ec75b3d5a [ci skip] Updated packages #2578
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2025-08-31 08:49:24 +00:00
04e3f1e71f AW-6981 Retrieve childs with ail
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2025-08-31 10:47:25 +02:00
6 changed files with 53 additions and 16 deletions

View File

@@ -52,7 +52,7 @@ ng serve
```
*Go*`
Point your browser to http://localhost:4200
Point your browser to http://localhost:4200
*ESLint*

12
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "farmmaps-lib-app",
"version": "4.18.0",
"version": "4.19.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "farmmaps-lib-app",
"version": "4.18.0",
"version": "4.19.0",
"dependencies": {
"@angular-eslint/eslint-plugin": "^18.2.0",
"@angular/animations": "18.2.3",
@@ -90,7 +90,7 @@
},
"dist/common": {
"name": "@farmmaps/common",
"version": "4.18.0-prerelease.2576",
"version": "4.19.0-prerelease.2578",
"dependencies": {
"tslib": "^2.3.0"
},
@@ -115,7 +115,7 @@
},
"dist/common-map": {
"name": "@farmmaps/common-map",
"version": "4.18.0-prerelease.2576",
"version": "4.19.0-prerelease.2578",
"dependencies": {
"tslib": "^2.0.0"
},
@@ -130,7 +130,7 @@
},
"dist/common-map3d": {
"name": "@farmmaps/common-map3d",
"version": "4.18.0-prerelease.2576",
"version": "4.19.0-prerelease.2578",
"dependencies": {
"tslib": "^2.0.0"
},
@@ -143,7 +143,7 @@
},
"dist/ng-openlayers": {
"name": "@farmmaps/ng-openlayers",
"version": "4.18.0-prerelease.2576",
"version": "4.19.0-prerelease.2578",
"license": "MPL-2.0",
"dependencies": {
"tslib": "^2.3.0"

View File

@@ -1,6 +1,6 @@
{
"name": "farmmaps-lib-app",
"version": "4.18.0",
"version": "4.19.0",
"scripts": {
"ng": "ng",
"start": "ng serve",

View File

@@ -59,6 +59,8 @@ export const TOGGLESHOWDATALAYERSLIDE = '[Map] ToggleShowDataLayerSlide'
export const SETVIEWSTATE = '[Map] SetViewState'
export const CLEARFEATURES = '[Map] ClearFeatures';
export const SETPANELEXTRAWIDE = '[Map] SetPanelExtraWide';
export const BACKUPFEATURES = '[Map] BackupFeatures';
export const RESTOREFEATURES = '[Map] RestoreFeatures';
export class Clear implements Action {
readonly type = CLEAR;
@@ -347,6 +349,16 @@ export class SetPanelExtraWide implements Action {
constructor(public panelExtraWide:boolean) {}
}
export class BackupFeatures implements Action {
readonly type = BACKUPFEATURES;
constructor() {}
}
export class RestoreFeatures implements Action {
readonly type = RESTOREFEATURES;
constructor() {}
}
export type Actions = SetMapState
| Init
| Clear
@@ -395,5 +407,7 @@ export type Actions = SetMapState
| ToggleShowDataLayerSlide
| SetViewState
| ClearFeatures
| SetPanelExtraWide;
| SetPanelExtraWide
| BackupFeatures
| RestoreFeatures;

View File

@@ -9,6 +9,7 @@ import { ILayervalue } from '../models/layer.value';
import * as mapActions from '../actions/map.actions';
import {commonActions} from '@farmmaps/common';
import { createSelector, createFeatureSelector } from '@ngrx/store';
import * as _ from 'lodash';
import {Feature} from 'ol';
import {Geometry} from 'ol/geom';
@@ -47,6 +48,7 @@ export interface State {
query:IQuery,
parentCode: string,
features: Array<Feature<Geometry>>,
featuresBackup: Array<Feature<Geometry>>,
panelVisible: boolean,
panelCollapsed: boolean,
panelExtraWide: boolean,
@@ -93,6 +95,7 @@ export const initialState: State = {
query: null,
parentCode: null,
features: [],
featuresBackup: [],
panelVisible: false,
panelCollapsed: false,
panelExtraWide: false,
@@ -156,13 +159,15 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
const a = action as mapActions.StartSearchSuccess;
return tassign(state, {
features: a.features,
featuresBackup: [],
inSearch:false
});
}
case mapActions.SETFEATURES: {
const a = action as mapActions.SetFeatures;
return tassign(state, {
features: a.features
features: a.features,
featuresBackup: []
});
}
case mapActions.SELECTFEATURE: {
@@ -180,6 +185,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
selectedItemLayer: null,
showDataLayerSlide: false,
features:[],
featuresBackup: [],
inSearch:inSearch
});
}
@@ -296,6 +302,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
return tassign(state, {
selectedItem: null,
features:[],
featuresBackup: [],
selectedItemLayer:null,
searchCollapsed: !panelVisible,
panelVisible: panelVisible,
@@ -332,7 +339,8 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
extent: a.feature.getGeometry().getExtent(),
searchCollapsed: false,
clearEnabled:true,
features:features
features:features,
featuresBackup:[]
});
}
case mapActions.UPDATEFEATURESUCCESS: {
@@ -346,7 +354,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
features.push(state.features[i]);
}
}
return tassign(state, { features: features });
return tassign(state, { features: features, featuresBackup: [] });
}
case mapActions.EXPANDSEARCH: {
return tassign(state, { searchCollapsed: false });
@@ -391,7 +399,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
return tassign(state, {overlayLayers: [], selectedOverlayLayer: null});
}
case mapActions.CLEARFEATURES: {
return tassign(state, {features: [], selectedFeature: null});
return tassign(state, {features: [], featuresBackup: [], selectedFeature: null});
}
case mapActions.SETVISIBILITY: {
const a = action as mapActions.SetVisibility;
@@ -509,6 +517,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
searchCollapsed: true,
searchMinified: false,
features: [],
featuresBackup: [],
query:initialState.query,
showLayerSwitcher: false,
extent: null,
@@ -556,7 +565,8 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
selectedItem: null,
selectedItemLayer: null,
showDataLayerSlide: false,
features:[]
features:[],
featuresBackup:[]
});
}
if(state.features.length>0) {
@@ -569,7 +579,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
if(index>=0) {
const newFeatures = state.features.slice(0);
newFeatures.splice(index,1);
return tassign(state,{features:newFeatures});
return tassign(state,{features:newFeatures, featuresBackup:[]});
}
}
return state;
@@ -578,6 +588,17 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
const a= action as mapActions.SetPanelExtraWide;
return tassign(state,{panelExtraWide:a.panelExtraWide});
}
case mapActions.BACKUPFEATURES: {
return tassign(state, {
featuresBackup: _.cloneDeep(state.features)
});
}
case mapActions.RESTOREFEATURES: {
return tassign(state, {
features: _.cloneDeep(state.featuresBackup),
featuresBackup: []
});
}
default: {
return state;
}

View File

@@ -116,7 +116,8 @@ export class ItemService {
getChildItemList(parentcode: string, itemType?: string, dataFilter?: any, level = 1, deep = true,
startDate?: Date, endDate?: Date, skip?: number, take?: number,
exactMatchStartOrEndDate?: boolean, owner?:string, indexed?: boolean): Observable<IItem[]> {
exactMatchStartOrEndDate?: boolean, owner?:string, indexed?: boolean,
atItemLocationItemCode?: string): Observable<IItem[]> {
let params = new HttpParams();
if(itemType != null) {
params = params.append("it", itemType);
@@ -134,6 +135,7 @@ export class ItemService {
if(skip) params = params.append("skip", skip);
if(take) params = params.append("take", take);
if(indexed) params = params.append("ind",indexed?"true":"false");
if(atItemLocationItemCode) params = params.append("ail",atItemLocationItemCode);
return this.httpClient.get<IItem[]>(`${this.ApiEndpoint()}/api/v1/items/${parentcode}/children`, { params: params });
}