--- a/web/data/cubicweb.edition.js Thu May 21 00:44:57 2009 +0200
+++ b/web/data/cubicweb.edition.js Thu May 21 00:50:24 2009 +0200
@@ -342,11 +342,11 @@
}
-function handleFormValidationResponse(formid, onsuccess, result) {
+function handleFormValidationResponse(formid, onsuccess, onfailure, result) {
// Success
if (result[0]) {
if (onsuccess) {
- return onsuccess(result[1]);
+ return onsuccess(result[1], formid);
} else {
document.location.href = result[1];
return ;
@@ -365,6 +365,9 @@
_displayValidationerrors(formid, descr[0], descr[1]);
updateMessage(_("please correct errors below"));
document.location.hash = '#header';
+ if (onfailure){
+ onfailure(formid);
+ }
return false;
}
@@ -426,7 +429,7 @@
* to the appropriate URL. Otherwise, the validation errors are displayed
* around the corresponding input fields.
*/
-function validateForm(formid, action, onsuccess) {
+function validateForm(formid, action, onsuccess, onfailure) {
try {
var zipped = formContents(formid);
var d = asyncRemoteExec('validate_form', action, zipped[0], zipped[1]);
@@ -435,7 +438,7 @@
return false;
}
function _callback(result, req) {
- handleFormValidationResponse(formid, onsuccess, result);
+ handleFormValidationResponse(formid, onsuccess, onfailure, result);
}
d.addCallback(_callback);
return false;
@@ -468,7 +471,7 @@
return false;
}
d.addCallback(function (result, req) {
- handleFormValidationResponse(formid, noop, result);
+ handleFormValidationResponse(formid, noop, noop, result);
if (reload) {
document.location.href = result[1];
} else {
@@ -502,7 +505,7 @@
return false;
}
d.addCallback(function (result, req) {
- handleFormValidationResponse(formid, noop, result);
+ handleFormValidationResponse(formid, noop, noop, result);
var fieldview = getNode(divid);
fieldview.innerHTML = result[2];
// switch inline form off only if no error