X-Git-Url: https://svn.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/08a12c7d87614be8332e8bb81532f0e5a2ce36db..feb12ae288263dbeb490147bbcd4e0a6d134da5f:/skins/ajax_scripts/ajax_form_manager.js

diff --git a/skins/ajax_scripts/ajax_form_manager.js b/skins/ajax_scripts/ajax_form_manager.js
index 12ca5b2..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,14 @@ 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'));
 							}
+							else {
+								headBase = document.createElement('base');
+								headBase.setAttribute('href', element.getAttribute('href'));
+								document.head.appendChild(headBase);
+							}
 							break;
 					}
 				}
@@ -430,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() {