AW-6981 Support for backup and restore (current) features
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This commit is contained in:
@@ -59,6 +59,8 @@ export const TOGGLESHOWDATALAYERSLIDE = '[Map] ToggleShowDataLayerSlide'
|
|||||||
export const SETVIEWSTATE = '[Map] SetViewState'
|
export const SETVIEWSTATE = '[Map] SetViewState'
|
||||||
export const CLEARFEATURES = '[Map] ClearFeatures';
|
export const CLEARFEATURES = '[Map] ClearFeatures';
|
||||||
export const SETPANELEXTRAWIDE = '[Map] SetPanelExtraWide';
|
export const SETPANELEXTRAWIDE = '[Map] SetPanelExtraWide';
|
||||||
|
export const BACKUPFEATURES = '[Map] BackupFeatures';
|
||||||
|
export const RESTOREFEATURES = '[Map] RestoreFeatures';
|
||||||
|
|
||||||
export class Clear implements Action {
|
export class Clear implements Action {
|
||||||
readonly type = CLEAR;
|
readonly type = CLEAR;
|
||||||
@@ -347,6 +349,16 @@ export class SetPanelExtraWide implements Action {
|
|||||||
constructor(public panelExtraWide:boolean) {}
|
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
|
export type Actions = SetMapState
|
||||||
| Init
|
| Init
|
||||||
| Clear
|
| Clear
|
||||||
@@ -395,5 +407,7 @@ export type Actions = SetMapState
|
|||||||
| ToggleShowDataLayerSlide
|
| ToggleShowDataLayerSlide
|
||||||
| SetViewState
|
| SetViewState
|
||||||
| ClearFeatures
|
| ClearFeatures
|
||||||
| SetPanelExtraWide;
|
| SetPanelExtraWide
|
||||||
|
| BackupFeatures
|
||||||
|
| RestoreFeatures;
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@ import { ILayervalue } from '../models/layer.value';
|
|||||||
import * as mapActions from '../actions/map.actions';
|
import * as mapActions from '../actions/map.actions';
|
||||||
import {commonActions} from '@farmmaps/common';
|
import {commonActions} from '@farmmaps/common';
|
||||||
import { createSelector, createFeatureSelector } from '@ngrx/store';
|
import { createSelector, createFeatureSelector } from '@ngrx/store';
|
||||||
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import {Feature} from 'ol';
|
import {Feature} from 'ol';
|
||||||
import {Geometry} from 'ol/geom';
|
import {Geometry} from 'ol/geom';
|
||||||
@@ -47,6 +48,7 @@ export interface State {
|
|||||||
query:IQuery,
|
query:IQuery,
|
||||||
parentCode: string,
|
parentCode: string,
|
||||||
features: Array<Feature<Geometry>>,
|
features: Array<Feature<Geometry>>,
|
||||||
|
featuresBackup: Array<Feature<Geometry>>,
|
||||||
panelVisible: boolean,
|
panelVisible: boolean,
|
||||||
panelCollapsed: boolean,
|
panelCollapsed: boolean,
|
||||||
panelExtraWide: boolean,
|
panelExtraWide: boolean,
|
||||||
@@ -93,6 +95,7 @@ export const initialState: State = {
|
|||||||
query: null,
|
query: null,
|
||||||
parentCode: null,
|
parentCode: null,
|
||||||
features: [],
|
features: [],
|
||||||
|
featuresBackup: [],
|
||||||
panelVisible: false,
|
panelVisible: false,
|
||||||
panelCollapsed: false,
|
panelCollapsed: false,
|
||||||
panelExtraWide: false,
|
panelExtraWide: false,
|
||||||
@@ -156,13 +159,15 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
const a = action as mapActions.StartSearchSuccess;
|
const a = action as mapActions.StartSearchSuccess;
|
||||||
return tassign(state, {
|
return tassign(state, {
|
||||||
features: a.features,
|
features: a.features,
|
||||||
|
featuresBackup: [],
|
||||||
inSearch:false
|
inSearch:false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
case mapActions.SETFEATURES: {
|
case mapActions.SETFEATURES: {
|
||||||
const a = action as mapActions.SetFeatures;
|
const a = action as mapActions.SetFeatures;
|
||||||
return tassign(state, {
|
return tassign(state, {
|
||||||
features: a.features
|
features: a.features,
|
||||||
|
featuresBackup: []
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
case mapActions.SELECTFEATURE: {
|
case mapActions.SELECTFEATURE: {
|
||||||
@@ -180,6 +185,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
selectedItemLayer: null,
|
selectedItemLayer: null,
|
||||||
showDataLayerSlide: false,
|
showDataLayerSlide: false,
|
||||||
features:[],
|
features:[],
|
||||||
|
featuresBackup: [],
|
||||||
inSearch:inSearch
|
inSearch:inSearch
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -296,6 +302,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
return tassign(state, {
|
return tassign(state, {
|
||||||
selectedItem: null,
|
selectedItem: null,
|
||||||
features:[],
|
features:[],
|
||||||
|
featuresBackup: [],
|
||||||
selectedItemLayer:null,
|
selectedItemLayer:null,
|
||||||
searchCollapsed: !panelVisible,
|
searchCollapsed: !panelVisible,
|
||||||
panelVisible: panelVisible,
|
panelVisible: panelVisible,
|
||||||
@@ -332,7 +339,8 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
extent: a.feature.getGeometry().getExtent(),
|
extent: a.feature.getGeometry().getExtent(),
|
||||||
searchCollapsed: false,
|
searchCollapsed: false,
|
||||||
clearEnabled:true,
|
clearEnabled:true,
|
||||||
features:features
|
features:features,
|
||||||
|
featuresBackup:[]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
case mapActions.UPDATEFEATURESUCCESS: {
|
case mapActions.UPDATEFEATURESUCCESS: {
|
||||||
@@ -346,7 +354,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
features.push(state.features[i]);
|
features.push(state.features[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tassign(state, { features: features });
|
return tassign(state, { features: features, featuresBackup: [] });
|
||||||
}
|
}
|
||||||
case mapActions.EXPANDSEARCH: {
|
case mapActions.EXPANDSEARCH: {
|
||||||
return tassign(state, { searchCollapsed: false });
|
return tassign(state, { searchCollapsed: false });
|
||||||
@@ -391,7 +399,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
return tassign(state, {overlayLayers: [], selectedOverlayLayer: null});
|
return tassign(state, {overlayLayers: [], selectedOverlayLayer: null});
|
||||||
}
|
}
|
||||||
case mapActions.CLEARFEATURES: {
|
case mapActions.CLEARFEATURES: {
|
||||||
return tassign(state, {features: [], selectedFeature: null});
|
return tassign(state, {features: [], featuresBackup: [], selectedFeature: null});
|
||||||
}
|
}
|
||||||
case mapActions.SETVISIBILITY: {
|
case mapActions.SETVISIBILITY: {
|
||||||
const a = action as mapActions.SetVisibility;
|
const a = action as mapActions.SetVisibility;
|
||||||
@@ -509,6 +517,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
searchCollapsed: true,
|
searchCollapsed: true,
|
||||||
searchMinified: false,
|
searchMinified: false,
|
||||||
features: [],
|
features: [],
|
||||||
|
featuresBackup: [],
|
||||||
query:initialState.query,
|
query:initialState.query,
|
||||||
showLayerSwitcher: false,
|
showLayerSwitcher: false,
|
||||||
extent: null,
|
extent: null,
|
||||||
@@ -556,7 +565,8 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
selectedItem: null,
|
selectedItem: null,
|
||||||
selectedItemLayer: null,
|
selectedItemLayer: null,
|
||||||
showDataLayerSlide: false,
|
showDataLayerSlide: false,
|
||||||
features:[]
|
features:[],
|
||||||
|
featuresBackup:[]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if(state.features.length>0) {
|
if(state.features.length>0) {
|
||||||
@@ -569,7 +579,7 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
if(index>=0) {
|
if(index>=0) {
|
||||||
const newFeatures = state.features.slice(0);
|
const newFeatures = state.features.slice(0);
|
||||||
newFeatures.splice(index,1);
|
newFeatures.splice(index,1);
|
||||||
return tassign(state,{features:newFeatures});
|
return tassign(state,{features:newFeatures, featuresBackup:[]});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
@@ -578,6 +588,17 @@ export function reducer(state = initialState, action: mapActions.Actions | commo
|
|||||||
const a= action as mapActions.SetPanelExtraWide;
|
const a= action as mapActions.SetPanelExtraWide;
|
||||||
return tassign(state,{panelExtraWide:a.panelExtraWide});
|
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: {
|
default: {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user