diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 3e70feb6..b7ce53f6 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -515,7 +515,7 @@ if (!$columns && support("table")) { echo "\n"; } - echo (!$group && $select ? "" : "\n"); + echo "\n"; } if ($adminer->selectImportPrint()) { diff --git a/adminer/static/functions.js b/adminer/static/functions.js index c18fe9bc..27836512 100644 --- a/adminer/static/functions.js +++ b/adminer/static/functions.js @@ -179,6 +179,14 @@ function tableClick(event, click) { var el = getTarget(event); while (!isTag(el, 'tr')) { if (isTag(el, 'table|a|input|textarea')) { + if (el.origHref) { + // open('about:blank').document.write('') still passes the referer in Chrome + var href = el.href; + el.href = el.origHref; + setTimeout(function () { + el.href = href; + }, 0); + } if (el.type != 'checkbox') { return; } @@ -195,6 +203,21 @@ function tableClick(event, click) { trCheck(el); } +/** Clean redirect links to simplify their copying +* @param HTMLElement +*/ +function selectLinks(table) { + var as = table.getElementsByTagName('a'); + for (var i = 0; i < as.length; i++) { + var a = as[i]; + var match = /^https?:\/\/www\.adminer\.org\/redirect\/\?url=(.+)/.exec(a.href); //! rewrites also links intentionally stored with http://www.adminer.org/redirect/?url= + if (match) { + a.origHref = a.href; + a.href = decodeURIComponent(match[1]); + } + } +} + var lastChecked; /** Shift-click on checkbox for multiple selection. @@ -661,6 +684,7 @@ function selectLoadMore(a, limit, loading) { var tbody = document.createElement('tbody'); tbody.innerHTML = request.responseText; document.getElementById('table').appendChild(tbody); + selectLinks(tbody); if (tbody.children.length < limit) { a.parentNode.removeChild(a); } else { diff --git a/changes.txt b/changes.txt index 630586ad..a15be753 100644 --- a/changes.txt +++ b/changes.txt @@ -4,6 +4,7 @@ Compute number of tables in the overview explicitly Display edit form after error in clone or multi-edit Display time of the select command Print elapsed time in HTML instead of SQL command comment +Simplify copying of redirected links Improve gzip export ratio (bug #387) Fix enum types in routines (bug #391) MySQL: Fix editing rows by binary values, bug since Adminer 3.7.1