Skip to content

Commit eb62a99

Browse files
authored
Add support for uploading/deleting assets from a resource (#2174)
1 parent a218151 commit eb62a99

File tree

23 files changed

+655
-41
lines changed

23 files changed

+655
-41
lines changed

geonode_mapstore_client/client/js/api/geonode/v2/constants.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ let endpoints = {
3434
'executionrequest': '/api/v2/executionrequest',
3535
'facets': '/api/v2/facets',
3636
'uploads': '/api/v2/uploads',
37-
'metadata': '/api/v2/metadata'
37+
'metadata': '/api/v2/metadata',
38+
'assets': '/api/v2/assets'
3839
};
3940

4041
export const RESOURCES = 'resources';
@@ -49,6 +50,7 @@ export const EXECUTION_REQUEST = 'executionrequest';
4950
export const FACETS = 'facets';
5051
export const UPLOADS = 'uploads';
5152
export const METADATA = 'metadata';
53+
export const ASSETS = 'assets';
5254

5355
export const setEndpoints = (data) => {
5456
endpoints = { ...endpoints, ...data };

geonode_mapstore_client/client/js/api/geonode/v2/index.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,26 @@ export const getResourceByTypeAndByPk = (type, pk, subtype) => {
703703
}
704704
};
705705

706+
export const uploadAsset = (pk, file) => {
707+
const formData = new FormData();
708+
formData.append('files', file);
709+
formData.append('title', file.name);
710+
return axios.post(getEndpointUrl(RESOURCES) + `/${pk}/assets/`,
711+
formData, {
712+
headers: {
713+
'Content-Type': 'multipart/form-data'
714+
},
715+
...paramsSerializer()
716+
})
717+
.then(({ data }) => data);
718+
};
719+
720+
export const deleteAsset = (pk, assetId) => {
721+
return axios.delete(getEndpointUrl(RESOURCES) + `/${pk}/assets/${assetId}`, {
722+
...paramsSerializer()
723+
});
724+
};
725+
706726
export default {
707727
getEndpoints,
708728
getResources,
@@ -718,6 +738,8 @@ export default {
718738
getMaps,
719739
getDocumentsByDocType,
720740
getUserByPk,
741+
uploadAsset,
742+
deleteAsset,
721743
getUsers,
722744
getAccountInfo,
723745
getConfiguration,

geonode_mapstore_client/client/js/plugins/ResourceDetails/ResourceDetails.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,8 @@ function ResourceDetailsPanel({
224224
"type": "assets",
225225
"id": "assets",
226226
"labelId": "gnviewer.assets",
227-
"items": "{context.get(state('gnResourceData'), 'assets')}"
227+
"items": "{context.get(state('gnResourceData'), 'assets')}",
228+
"disableIf": "{!context.resourceHasPermission(state('gnResourceData'), 'change_resourcebase')}"
228229
},
229230
{
230231
"type": "data",
@@ -325,9 +326,9 @@ function ResourceDetailsPanel({
325326
show={show}
326327
enabled={show}
327328
editing={editingOverlay && pendingChanges}
329+
ref={node}
328330
>
329331
<DetailsPanel
330-
panelRef={node}
331332
resource={resource}
332333
loading={loading}
333334
toolbarItems={toolbarItems}

0 commit comments

Comments
 (0)