diff --git a/adminer/include/design.inc.php b/adminer/include/design.inc.php index f2345b45..f39ea46b 100644 --- a/adminer/include/design.inc.php +++ b/adminer/include/design.inc.php @@ -41,9 +41,10 @@ var noResponse = ''; onkeydown="bodyKeydown(event);" onload="bodyLoad('server_info, 0, 3) : ""); ?>');"> +
\n"; echo "

$title_all

\n"; restart_session(); $uri = preg_replace('~^[^?]*~', '', $_SERVER["REQUEST_URI"]); diff --git a/adminer/static/default.css b/adminer/static/default.css index 1d7b3707..26f5a7e6 100644 --- a/adminer/static/default.css +++ b/adminer/static/default.css @@ -20,6 +20,8 @@ code { background: #eee; } tbody tr:hover td, tbody tr:hover th { background: #eee; } pre { margin: 1em 0 0; } input[type=image] { vertical-align: middle; } +.loading { cursor: progress; } +.loading #loader { display: inline; } .version { color: #777; font-size: 67%; } .js .hidden, .nojs .jsonly { display: none; } .nowrap td, .nowrap th, td.nowrap { white-space: pre; } @@ -47,7 +49,7 @@ input[type=image] { vertical-align: middle; } #content { margin: 2em 0 0 21em; padding: 10px 20px 20px 0; } #lang { position: absolute; top: 0; left: 0; line-height: 1.8em; padding: .3em 1em; } #breadcrumb { white-space: nowrap; position: absolute; top: 0; left: 21em; background: #eee; height: 2em; line-height: 1.8em; padding: 0 1em; margin: 0 0 0 -18px; } -#loader { position: fixed; top: 0; left: 18em; z-index: 1; } +#loader { display: none; position: fixed; top: 2px; right: 2px; z-index: 1; } #h1 { color: #777; text-decoration: none; font-style: italic; } #version { font-size: 67%; color: red; } #schema { margin-left: 60px; position: relative; } diff --git a/adminer/static/functions.js b/adminer/static/functions.js index ed0f65ff..fc386b6f 100644 --- a/adminer/static/functions.js +++ b/adminer/static/functions.js @@ -199,7 +199,7 @@ function bodyKeydown(event, button) { if (ajaxXmlhttp.abort) { ajaxXmlhttp.abort(); } - setHtml('loader', ''); + document.body.className = document.body.className.replace(/ loading/, ''); onblur = function () { }; if (originalFavicon) { replaceFavicon(originalFavicon); @@ -334,9 +334,9 @@ function ajaxSend(url, data, popState, noscroll) { if (!originalFavicon) { originalFavicon = (document.getElementById('favicon') || {}).href; } - replaceFavicon('../adminer/static/loader.gif'); + replaceFavicon(document.getElementById('loader').firstChild.src); }; - setHtml('loader', ''); + document.body.className += ' loading'; ajaxXmlhttp = ajax(url, function (xmlhttp) { if (!xmlhttp.aborted && currentState == ajaxState) { var title = xmlhttp.getResponseHeader('X-AJAX-Title'); @@ -360,6 +360,7 @@ function ajaxSend(url, data, popState, noscroll) { scrollTo(0, 0); } setHtml('content', (xmlhttp.status ? xmlhttp.responseText : '

' + noResponse)); + document.body.className = document.body.className.replace(/ loading/, ''); var content = document.getElementById('content'); var scripts = content.getElementsByTagName('script'); var length = scripts.length; // required to avoid infinite loop diff --git a/changes.txt b/changes.txt index aa22ba9f..641d4809 100644 --- a/changes.txt +++ b/changes.txt @@ -6,6 +6,7 @@ SET DEFAULT foreign key action Trim table and column names (bug #3405309) Error message with no response from server in AJAX Esc to cancel AJAX request +Move AJAX loading indicator to the right Ability to disable export (customization) MySQL: set autocommit after connect PostgreSQL: fix alter foreign key diff --git a/compile.php b/compile.php index f975d76b..de959073 100644 --- a/compile.php +++ b/compile.php @@ -272,9 +272,7 @@ foreach (array("adminer", "editor") as $project) { $file = str_replace('' . "\n", "", $file); $file = preg_replace_callback("~compile_file\\('([^']+)', '([^']+)'\\);~", 'compile_file', $file); // integrate static files $replace = 'h(preg_replace("~\\\\\\\\?.*~", "", ME)) . "?file=\\1&version=' . $VERSION; - $file = preg_replace("~'\\.\\./adminer/static/(loader\\.gif)~", "location.pathname+'?file=\\1&version=$VERSION", $file); - $file = preg_replace('~\\.\\./adminer/static/(loader\\.gif)~', "'+location.pathname+'?file=\\1&version=$VERSION", $file); - $file = preg_replace('~\\.\\./adminer/static/(default\\.css|functions\\.js|favicon\\.ico)~', '', $file); + $file = preg_replace('~\\.\\./adminer/static/(default\\.css|functions\\.js|favicon\\.ico|loader\\.gif)~', '', $file); $file = preg_replace('~\\.\\./adminer/static/([^\'"]*)~', '" . ' . $replace, $file); $file = str_replace("'../externals/jush/'", "location.protocol + '//www.adminer.org/static/'", $file); $file = preg_replace("~<\\?php\\s*\\?>\n?|\\?>\n?<\\?php~", '', $file);