--- a/web/data/cubicweb.edition.js Wed Sep 02 16:39:19 2009 +0200
+++ b/web/data/cubicweb.edition.js Wed Sep 02 17:47:39 2009 +0200
@@ -60,7 +60,7 @@
if (!divNode.length) {
var args = {vid: 'unrelateddivs', relation: selectedValue,
rql: rql_for_eid(eid), '__notemplate': 1,
- callback: function() {_showMatchingSelect(eid, jQuery('#' + divId))}};
+ callback: function() {_showMatchingSelect(eid, jQuery('#' + divId));}};
jQuery('#unrelatedDivs_' + eid).loadxhtml(baseuri() + 'view', args, 'post', 'append');
} else {
_showMatchingSelect(eid, divNode);
@@ -353,7 +353,7 @@
} else {
document.location.href = result[1];
}
- return;
+ return true;
}
unfreezeFormButtons(formid);
// Failures
@@ -363,15 +363,15 @@
if ( !isArrayLike(descr) || descr.length != 2 ) {
log('got strange error :', descr);
updateMessage(descr);
- return;
+ return false;
}
_displayValidationerrors(formid, descr[0], descr[1]);
- updateMessage(_("please correct errors below"));
+ updateMessage(_('please correct errors below'));
document.location.hash = '#header';
- if (onfailure){
+ if (onfailure) {
onfailure(formid);
}
- return;
+ return false;
}
@@ -487,8 +487,6 @@
// switch inline form off only if no error
if (result[0]) {
// hide global error messages
- jQuery('div.errorMessage').remove();
- jQuery('#appMsg').hide();
hideInlineEdit(eid, rtype, divid);
}
}
@@ -506,15 +504,13 @@
var zipped = formContents(form);
var d = asyncRemoteExec('validate_form', 'apply', zipped[0], zipped[1]);
} catch (ex) {
- log('got exception', ex);
return false;
}
d.addCallback(function (result, req) {
- handleFormValidationResponse(divid+'-form', noop, noop, result);
- if (reload) {
- document.location.href = result[1];
- } else {
- if (result[0]) {
+ if (handleFormValidationResponse(divid+'-form', noop, noop, result)) {
+ if (reload) {
+ document.location.href = result[1].split('?')[0];
+ } else {
var d = asyncRemoteExec('reledit_form', eid, rtype, role, default_value, lzone);
d.addCallback(function (result) {
// XXX brittle ... replace with loadxhtml
@@ -535,6 +531,8 @@
}
function hideInlineEdit(eid, rtype, divid) {
+ jQuery('#appMsg').hide();
+ jQuery('div.errorMessage').remove();
jQuery('#' + divid).show();
jQuery('#' + divid+'-form').hide();
}