diff --git a/geonode_mapstore_client/client/js/api/geonode/v2/index.js b/geonode_mapstore_client/client/js/api/geonode/v2/index.js index 265bddee74..b83d963911 100644 --- a/geonode_mapstore_client/client/js/api/geonode/v2/index.js +++ b/geonode_mapstore_client/client/js/api/geonode/v2/index.js @@ -438,6 +438,11 @@ export const updateDocument = (pk, body) => { .then(({ data }) => data.document); }; +export const updateResource = (pk, body) => { + return axios.patch(parseDevHostname(`${endpoints[RESOURCES]}/${pk}`), body) + .then(({ data }) => data.resource); +}; + export const getUsers = ({ q, page = 1, @@ -967,5 +972,6 @@ export default { deleteExecutionRequest, getResourceByTypeAndByPk, getFacetItems, - getFacetItemsByFacetName + getFacetItemsByFacetName, + updateResource }; diff --git a/geonode_mapstore_client/client/js/epics/gnsave.js b/geonode_mapstore_client/client/js/epics/gnsave.js index 073a14edd6..471b2ae02b 100644 --- a/geonode_mapstore_client/client/js/epics/gnsave.js +++ b/geonode_mapstore_client/client/js/epics/gnsave.js @@ -46,7 +46,8 @@ import { updateDocument, setMapThumbnail, updateCompactPermissionsByPk, - getResourceByUuid + getResourceByUuid, + updateResource as updateResourceAPI } from '@js/api/geonode/v2'; import { parseDevHostname } from '@js/utils/APIUtils'; import uuid from 'uuid'; @@ -72,6 +73,7 @@ import { import { ResourceTypes, cleanCompactPermissions, + isDefaultDatasetSubtype, toGeoNodeMapConfig } from '@js/utils/ResourceUtils'; import { @@ -119,7 +121,9 @@ const SaveAPI = { return id ? updateDocument(id, body) : false; }, [ResourceTypes.DATASET]: (state, id, body) => { - return id ? updateDataset(id, body) : false; + const currentResource = getResourceData(state); + const request = isDefaultDatasetSubtype(currentResource?.subtype) ? updateDataset : updateResourceAPI; + return id ? request(id, body) : false; }, [ResourceTypes.VIEWER]: (state, id, body) => { const user = userSelector(state);