diff --git a/geonode_mapstore_client/client/js/epics/gnresource.js b/geonode_mapstore_client/client/js/epics/gnresource.js index e66d89f57c..a6a50879bb 100644 --- a/geonode_mapstore_client/client/js/epics/gnresource.js +++ b/geonode_mapstore_client/client/js/epics/gnresource.js @@ -20,6 +20,7 @@ import { setResourceThumbnail } from '@js/api/geonode/v2'; import { configureMap } from '@mapstore/framework/actions/config'; +import { mapSelector } from '@mapstore/framework/selectors/map'; import { getSelectedLayer } from '@mapstore/framework/selectors/layers'; import { browseData, @@ -85,7 +86,7 @@ import { getStyleProperties } from '@js/api/geonode/style'; const resourceTypes = { [ResourceTypes.DATASET]: { resourceObservable: (pk, options) => { - const { page, selectedLayer } = options || {}; + const { page, selectedLayer, map: currentMap } = options || {}; return Observable.defer(() => axios.all([ getNewMapConfiguration(), @@ -128,10 +129,11 @@ const resourceTypes = { ...mapConfig, map: { ...mapConfig.map, + ...currentMap, // keep configuration for other pages when resource id is the same (eg: center, zoom) layers: [ ...mapConfig.map.layers, { - ...selectedLayer, // keep configuration from other pages (eg: filters) + ...selectedLayer, // keep configuration for other pages when resource id is the same (eg: filters) ...newLayer, isDataset: true, _v_: Date.now() @@ -139,7 +141,7 @@ const resourceTypes = { ] } }), - ...(extent + ...((extent && !currentMap) ? [ setControlProperty('fitBounds', 'geometry', extent) ] : []), setControlProperty('toolbar', 'expanded', false), @@ -404,7 +406,8 @@ export const gnViewerRequestResourceConfig = (action$, store) => styleService: styleServiceSelector(state), isSamePreviousResource, resourceData, - selectedLayer: isSamePreviousResource && getSelectedLayer(state) + selectedLayer: isSamePreviousResource && getSelectedLayer(state), + map: isSamePreviousResource && mapSelector(state) }), Observable.of( ...(pendingChanges?.resource ? [updateResourceProperties(pendingChanges.resource)] : []), diff --git a/geonode_mapstore_client/client/static/mapstore/configs/localConfig.json b/geonode_mapstore_client/client/static/mapstore/configs/localConfig.json index fa5d7c58e7..5b6c37ae9a 100644 --- a/geonode_mapstore_client/client/static/mapstore/configs/localConfig.json +++ b/geonode_mapstore_client/client/static/mapstore/configs/localConfig.json @@ -1188,6 +1188,9 @@ "name": "QueryPanel", "cfg": { "activateQueryTool": true, + "toolsOptions": { + "hideCrossLayer": true + }, "spatialOperations": [ { "id": "INTERSECTS",