diff --git a/geonode_mapstore_client/client/js/epics/gnsave.js b/geonode_mapstore_client/client/js/epics/gnsave.js index 96ac7cd976..b919221d0f 100644 --- a/geonode_mapstore_client/client/js/epics/gnsave.js +++ b/geonode_mapstore_client/client/js/epics/gnsave.js @@ -185,42 +185,43 @@ export const gnSaveDirectContent = (action$, store) => const resourceId = mapInfo?.id || getResourceId(state); const { compactPermissions, geoLimits } = getPermissionsPayload(state); const currentResource = getResourceData(state); - return Observable.concat( - ...(compactPermissions ? [ - Observable.defer(() => - updateCompactPermissionsByPk(resourceId, cleanCompactPermissions(compactPermissions)) - .then(output => ({ resource: currentResource, output, processType: ProcessTypes.PERMISSIONS_RESOURCE })) - .catch((error) => ({ resource: currentResource, error: error?.data?.detail || error?.statusText || error?.message || true, processType: ProcessTypes.PERMISSIONS_RESOURCE })) + + return Observable.defer(() => axios.all([ + getResourceByPk(resourceId), + ...(geoLimits + ? geoLimits.map((limits) => + limits.features.length === 0 + ? deleteGeoLimits(resourceId, limits.id, limits.type) + .catch(() => ({ error: true, resourceId, limits })) + : updateGeoLimits(resourceId, limits.id, limits.type, { features: limits.features }) + .catch(() => ({ error: true, resourceId, limits })) ) - .switchMap((payload) => { - return Observable.of(startAsyncProcess(payload)); - }) - ] : []), - Observable.defer(() => axios.all([ - getResourceByPk(resourceId), - ...(geoLimits - ? geoLimits.map((limits) => - limits.features.length === 0 - ? deleteGeoLimits(resourceId, limits.id, limits.type) - .catch(() => ({ error: true, resourceId, limits })) - : updateGeoLimits(resourceId, limits.id, limits.type, { features: limits.features }) - .catch(() => ({ error: true, resourceId, limits })) - ) - : []) - ])) - .switchMap(([resource, ...geoLimitsResponses]) => { - const geoLimitsErrors = geoLimitsResponses.filter(({ error }) => error); - const name = getResourceName(state); - const description = getResourceDescription(state); - const thumbnail = getResourceThumbnail(state); - const metadata = { - name: (name) ? name : resource?.title, - description: (description) ? description : resource?.abstract, - thumbnail: (thumbnail) ? thumbnail : resource?.thumbnail_url, - extension: resource?.extension, - href: resource?.href - }; - return Observable.of( + : []) + ])) + .switchMap(([resource, ...geoLimitsResponses]) => { + const geoLimitsErrors = geoLimitsResponses.filter(({ error }) => error); + const name = getResourceName(state); + const description = getResourceDescription(state); + const thumbnail = getResourceThumbnail(state); + const metadata = { + name: (name) ? name : resource?.title, + description: (description) ? description : resource?.abstract, + thumbnail: (thumbnail) ? thumbnail : resource?.thumbnail_url, + extension: resource?.extension, + href: resource?.href + }; + return Observable.concat( + ...(compactPermissions ? [ + Observable.defer(() => + updateCompactPermissionsByPk(resourceId, cleanCompactPermissions(compactPermissions)) + .then(output => ({ resource: currentResource, output, processType: ProcessTypes.PERMISSIONS_RESOURCE })) + .catch((error) => ({ resource: currentResource, error: error?.data?.detail || error?.statusText || error?.message || true, processType: ProcessTypes.PERMISSIONS_RESOURCE })) + ) + .switchMap((payload) => { + return Observable.of(startAsyncProcess(payload)); + }) + ] : []), + Observable.of( saveContent( resourceId, metadata, @@ -232,9 +233,9 @@ export const gnSaveDirectContent = (action$, store) => } : true /* showNotification */), resetGeoLimits() - ); - }) - ) + ) + ); + }) .catch((error) => { return Observable.of( saveError(error.data || error.message), diff --git a/geonode_mapstore_client/client/js/selectors/resource.js b/geonode_mapstore_client/client/js/selectors/resource.js index 1323c1f696..de2622d7b2 100644 --- a/geonode_mapstore_client/client/js/selectors/resource.js +++ b/geonode_mapstore_client/client/js/selectors/resource.js @@ -75,7 +75,7 @@ export const getPermissionsPayload = (state) => { const isCompactPermissionsChanged = state?.gnresource?.isCompactPermissionsChanged; const geoLimits = state?.gnresource?.geoLimits; return { - compactPermissions: isCompactPermissionsChanged && compactPermissions ? compactPermissions : null, + compactPermissions: (isCompactPermissionsChanged || geoLimits?.length > 0) && compactPermissions ? compactPermissions : null, geoLimits: geoLimits?.length > 0 ? geoLimits : null }; }; diff --git a/geonode_mapstore_client/client/static/mapstore/translations/data.de-DE.json b/geonode_mapstore_client/client/static/mapstore/translations/data.de-DE.json index fdc0dd551f..bf7eaeb103 100644 --- a/geonode_mapstore_client/client/static/mapstore/translations/data.de-DE.json +++ b/geonode_mapstore_client/client/static/mapstore/translations/data.de-DE.json @@ -159,7 +159,7 @@ "permissionsName": "Name", "permissions": "Berechtigungen", "anonymous": "Jeder", - "registered-members": "Mitwirkende", + "registered-members": "Registrierte Mitglieder", "permissionsEntriesNoResults": "Keine Ergebnisse...", "shareThisResource": "Diese Ressource teilen", "embed": "Einbetten", diff --git a/geonode_mapstore_client/client/static/mapstore/translations/data.en-US.json b/geonode_mapstore_client/client/static/mapstore/translations/data.en-US.json index 9af0bcd83d..3e46dc1fb9 100644 --- a/geonode_mapstore_client/client/static/mapstore/translations/data.en-US.json +++ b/geonode_mapstore_client/client/static/mapstore/translations/data.en-US.json @@ -160,7 +160,7 @@ "permissionsName": "Name", "permissions": "Permissions", "anonymous": "Anyone", - "registered-members": "Contributors", + "registered-members": "Registered members", "permissionsEntriesNoResults": "No Results...", "shareThisResource": "Share this resource", "embed": "Embed", diff --git a/geonode_mapstore_client/client/static/mapstore/translations/data.es-ES.json b/geonode_mapstore_client/client/static/mapstore/translations/data.es-ES.json index 0a18c92a5d..0584e10e1a 100644 --- a/geonode_mapstore_client/client/static/mapstore/translations/data.es-ES.json +++ b/geonode_mapstore_client/client/static/mapstore/translations/data.es-ES.json @@ -159,7 +159,7 @@ "permissionsName": "Nombre", "permissions": "Permisos", "anonymous": "Cualquiera", - "registered-members": "Colaboradores", + "registered-members": "Miembros registrados", "permissionsEntriesNoResults": "Sin resultados ...", "shareThisResource": "Comparte este recurso", "embed": "Insertar", diff --git a/geonode_mapstore_client/client/static/mapstore/translations/data.fr-FR.json b/geonode_mapstore_client/client/static/mapstore/translations/data.fr-FR.json index 960a52882f..f89eddfa0e 100644 --- a/geonode_mapstore_client/client/static/mapstore/translations/data.fr-FR.json +++ b/geonode_mapstore_client/client/static/mapstore/translations/data.fr-FR.json @@ -159,7 +159,7 @@ "permissionsName": "Nom", "permissions": "Autorisations", "anonymous": "Personne", - "registered-members": "Contributeurs", + "registered-members": "Membres enregistrés", "permissionsEntriesNoResults": "Aucun résultat...", "shareThisResource": "Partager cette ressource", "embed": "Intégrer", diff --git a/geonode_mapstore_client/client/static/mapstore/translations/data.it-IT.json b/geonode_mapstore_client/client/static/mapstore/translations/data.it-IT.json index a6be92c031..60f507e09e 100644 --- a/geonode_mapstore_client/client/static/mapstore/translations/data.it-IT.json +++ b/geonode_mapstore_client/client/static/mapstore/translations/data.it-IT.json @@ -161,7 +161,7 @@ "permissionsName": "Nome", "permissions": "Permessi", "anonymous": "Chiunque", - "registered-members": "Collaboratori", + "registered-members": "Membri registrati", "permissionsEntriesNoResults": "Nessun risultato...", "shareThisResource": "Condividi questa risorsa", "embed": "Incorpora",