function pageClick(href, page, event) {
if (!isNaN(page) && page) {
href += (page != 1 ? '&page=' + (page - 1) : '');
- if (!ajaxMain(href, '', event)) {
+ if (!ajaxSend(href)) {
location.href = href;
}
}
* @return XMLHttpRequest or false in case of an error
*/
function ajaxSend(url, data, popState) {
+ if (!history.pushState) {
+ return false;
+ }
var currentState = ++ajaxState;
onblur = function () {
replaceFavicon('../adminer/static/loader.gif');
}
var redirect = xmlhttp.getResponseHeader('X-AJAX-Redirect');
if (redirect) {
- return ajaxSend(redirect);
+ return ajaxSend(redirect, '', popState);
}
onblur = function () { };
replaceFavicon('../adminer/static/favicon.ico');
}, data);
}
-/** Load content to #content
-* @param string
-* @param [string]
-* @param [MouseEvent]
-* @return XMLHttpRequest or false in case of an error
-*/
-function ajaxMain(url, data, event) {
- if (!history.pushState || (event && (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey))) {
- return false;
- }
- return ajaxSend(url, data);
-}
-
/** Revive page from history
* @param PopStateEvent|history
*/
params.push(data);
}
if (form.method == 'post') {
- return ajaxMain((/\?/.test(form.action) ? form.action : location.href), params.join('&')); // ? - always part of Adminer URL
+ return ajaxSend((/\?/.test(form.action) ? form.action : location.href), params.join('&')); // ? - always part of Adminer URL
}
- return ajaxMain((form.action || location.href).replace(/\?.*/, '') + '?' + params.join('&'));
+ return ajaxSend((form.action || location.href).replace(/\?.*/, '') + '?' + params.join('&'));
}
* @return bool
*/
function bodyClick(event, db, ns) {
- if (event.button) {
+ if (event.button || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) {
return;
}
if (event.getPreventDefault ? event.getPreventDefault() : event.returnValue === false) {
if (/^a$/i.test(el.tagName) && !/^https?:|#|&download=/i.test(el.getAttribute('href')) && /[&?]username=/.exec(el.href)) {
var match = /&db=([^&]*)/.exec(el.href);
var match2 = /&ns=([^&]*)/.exec(el.href);
- return !(db == (match ? match[1] : '') && ns == (match2 ? match2[1] : '') && ajaxMain(el.href, '', event));
+ return !(db == (match ? match[1] : '') && ns == (match2 ? match2[1] : '') && ajaxSend(el.href));
}
if (/^input$/i.test(el.tagName) && (el.type == 'image' || (el.type == 'submit' && !/&(database|scheme|create|view|sql|user|dump|call)=/.test(location.href)))) {
return !ajaxForm(el.form, (el.name ? encodeURIComponent(el.name) + (el.type == 'image' ? '.x' : '') + '=1' : ''));