-// (c) Benoît PIN 2006-2007
+// (c) Benoît PIN 2006-2014
// http://plinn.org
// Licence GPL
//
(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); };
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);}
};
FormManager.prototype._get = function(query) {
- // send form by browser location
var url = this.form.action;
url += '?' + query;
- linkHandler.loadUrl(url);
+ AjaxLinkHandler.loadUrl(url);
};
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;
}
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() {