X-Git-Url: https://svn.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/66f03781c828aed47960f24c5601e867c3f18bad..3c4367d8e03450e9a73e61f4247145d2b6c86a33:/skins/ajax_scripts/ajax_form_manager.js?ds=inline diff --git a/skins/ajax_scripts/ajax_form_manager.js b/skins/ajax_scripts/ajax_form_manager.js index fed198c..6f6748e 100644 --- a/skins/ajax_scripts/ajax_form_manager.js +++ b/skins/ajax_scripts/ajax_form_manager.js @@ -1,4 +1,4 @@ -// (c) Benoît PIN 2006-2007 +// (c) Benoît PIN 2006-2014 // http://plinn.org // Licence GPL // @@ -8,12 +8,13 @@ var FormManager; (function(){ -FormManager = function(form, responseTextDest, lazy) { +FormManager = function(form, responseTextDest, lazy, noHistory) { if (form.elements.namedItem("noAjax")) {return;} this.form = form; this.responseTextDest = responseTextDest; this.lazy = lazy; + this.noHistory = noHistory; var thisManager = this; this.form.onsubmit = function(evt) { thisManager.submit(evt); }; this.form.onclick = function(evt) { thisManager.click(evt); }; @@ -99,16 +100,11 @@ FormManager.prototype.submit = function(evt) { query += submitButton.name + '=' + submitButton.value + '&'; } - if (window.AJAX_CONFIG && ((AJAX_CONFIG & 1) === 1)) { - if (form.method.toLowerCase() === 'post') { - this._post(query); - } - else { - this._get(query); - } + if (form.method.toLowerCase() === 'post') { + this._post(query); } else { - this._post(query); + this._get(query); } try {disableDefault(evt);} @@ -144,10 +140,9 @@ FormManager.prototype._post = function(query) { }; FormManager.prototype._get = function(query) { - // send form by browser location var url = this.form.action; url += '?' + query; - linkHandler.loadUrl(url); + AjaxLinkHandler.prototype.loadUrl(url); }; @@ -406,9 +401,13 @@ FormManager.prototype.loadResponse = function(req) { break; case 'base' : var headBase = document.getElementsByTagName('base'); - if (headBase.length) { + if (headBase.length > 0) { headBase[0].setAttribute('href', element.getAttribute('href')); - console.info('set base href:', headBase[0].href); + } + else { + headBase = document.createElement('base'); + headBase.setAttribute('href', element.getAttribute('href')); + document.head.appendChild(headBase); } break; } @@ -431,7 +430,8 @@ FormManager.prototype.loadResponse = function(req) { var onAfterPopulate = this.onAfterPopulate; onAfterPopulate(); this.scrollToPortalMessage(); - history.pushState(absolute_url(), document.title, absolute_url()); + var url = this.form.action; + if (!this.noHistory){ history.pushState(url, document.title, url); } }; FormManager.prototype.scrollToPortalMessage = function() {