Simplify copying of redirected links

This commit is contained in:
Jakub Vrana 2014-03-20 10:04:48 -07:00
parent 4d491d704e
commit 00da70626d
3 changed files with 26 additions and 1 deletions

View file

@ -515,7 +515,7 @@ if (!$columns && support("table")) {
echo "</div></fieldset>\n";
}
echo (!$group && $select ? "" : "<script type='text/javascript'>tableCheck();</script>\n");
echo "<script type='text/javascript'>selectLinks(document.getElementById('table'));" . (!$group && $select ? "" : " tableCheck();") . "</script>\n";
}
if ($adminer->selectImportPrint()) {

View file

@ -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('<meta http-equiv="Refresh">') 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 {

View file

@ -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