File tree Expand file tree Collapse file tree 2 files changed +17
-6
lines changed
geonode_mapstore_client/client/js/plugins/MetadataEditor/containers Expand file tree Collapse file tree 2 files changed +17
-6
lines changed Original file line number Diff line number Diff line change @@ -14,7 +14,6 @@ import { Alert } from 'react-bootstrap';
1414import isEmpty from 'lodash/isEmpty' ;
1515
1616import { getMetadataByPk } from '@js/api/geonode/v2/metadata' ;
17- import Message from '@mapstore/framework/components/I18N/Message' ;
1817import widgets from '../components/_widgets' ;
1918import templates from '../components/_templates' ;
2019import 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 >
Original file line number Diff line number Diff 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 ) ;
You can’t perform that action at this time.
0 commit comments