diff -r 72c23fc7fe20 -r b0a583156d6d web/data/cubicweb.edition.js --- 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(); }