Commit 363e6e07 authored by Tomáš Peterka's avatar Tomáš Peterka

[erp5_web_renderjs_ui] Harden error handling in editable form

parent 45969c42
......@@ -158,6 +158,12 @@
error_text = 'Input data has errors';
} else if (error.target.status === 403) {
error_text = 'You do not have the permissions to edit the object';
} else if (error.target.status === 0 && error.total === 0) {
// backend cannot be reached and no data is being transfered
error_text = 'Document was not saved! Resubmit when you are online or the document accessible';
} else {
// display "unknown error" rather than destroying user's form data (throwing an error)
error_text = 'Encountered an unknown error. Try to resubmit';
}
if (error_text !== undefined) {
return form_gadget.notifySubmitted()
......@@ -168,16 +174,21 @@
return form_gadget.notifyChange(message + '.');
})
.push(function () {
// when the server-side validation returns the error description
if (error.target.responseType === "blob") {
return jIO.util.readBlobAsText(error.target.response);
}
// otherwise return (most-likely) textual response of the server
return {target: {result: error.target.response}};
})
.push(function (event) {
return form_gadget.displayFormulatorValidationError(JSON.parse(event.target.result));
});
})
// most likely a JSON parse error because of invalid response which we will quietly ignore
.fail(function () {});
}
}
// throwing an error is the last desperate option
throw error;
});
}
......
......@@ -230,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>958.31331.40640.10291</string> </value>
<value> <string>960.31544.14430.63812</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -248,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1491385195.38</float>
<float>1499089561.38</float>
<string>UTC</string>
</tuple>
</state>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment