Skip to content

Commit 63ace81

Browse files
authored
#2002: Metadata editor error enhancements (#2003)
* #2002: Metadata editor error enhancements * update comment
1 parent d2f2d8c commit 63ace81

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

geonode_mapstore_client/client/js/plugins/MetadataEditor/containers/MetadataEditor.jsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { Alert } from 'react-bootstrap';
1414
import isEmpty from 'lodash/isEmpty';
1515

1616
import { getMetadataByPk } from '@js/api/geonode/v2/metadata';
17-
import Message from '@mapstore/framework/components/I18N/Message';
1817
import widgets from '../components/_widgets';
1918
import templates from '../components/_templates';
2019
import fields from '../components/_fields';
@@ -78,8 +77,16 @@ function MetadataEditor({
7877
}
7978
}, [pk]);
8079

80+
useEffect(() => {
81+
return () => {
82+
// reset all errors
83+
setUpdateError(null);
84+
setExtraErrors({});
85+
};
86+
}, []);
87+
8188
function handleChange(formData) {
82-
setUpdateError(false);
89+
setUpdateError(null);
8390
setMetadata(formData);
8491
}
8592

@@ -98,8 +105,8 @@ function MetadataEditor({
98105
return (
99106
<div className="gn-metadata">
100107
<div className="gn-metadata-header">
101-
{updateError && <Alert bsStyle="danger" style={{ margin: '0.25rem 0' }}>
102-
<Message msgId="gnviewer.metadataUpdateError" />
108+
{!isEmpty(updateError) && <Alert bsStyle="danger" style={{ margin: '0.25rem 0' }}>
109+
{updateError}
103110
{!isEmpty(rootErrors) && <ul>{rootErrors.map((_error, idx) => <li key={idx}>{_error}</li>)}</ul>}
104111
</Alert>}
105112
</div>

geonode_mapstore_client/client/js/plugins/MetadataEditor/containers/MetadataUpdateButton.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,19 @@ function MetadataUpdateButton({
2727

2828
function handleUpdate() {
2929
setUpdating(true);
30-
setUpdateError(false);
30+
setUpdateError(null);
3131
updateMetadata(pk, metadata)
3232
.then((response) => {
3333
setInitialMetadata(metadata);
3434
setExtraErrors(get(response, 'data.extraErrors', {}));
3535
})
3636
.catch((error) => {
3737
setExtraErrors(get(error, 'data.extraErrors', {}));
38-
setUpdateError(true);
38+
setUpdateError(get(error, 'data.message', null));
39+
if (error?.status === 422) {
40+
// Partially successful. So reset pending metadata changes and allow user to fix error(s)
41+
setInitialMetadata(metadata);
42+
}
3943
})
4044
.finally(() => {
4145
setUpdating(false);

0 commit comments

Comments
 (0)