Some finishing touch for links and separators

This commit is contained in:
Lionel Laffineur 2023-07-21 17:22:33 +02:00
parent 29d9af3ec2
commit 4053dbddd8
4 changed files with 40 additions and 22 deletions

View file

@ -176,27 +176,26 @@ class Adminer {
function selectLinks($tableStatus, $set = "") {
global $jush, $driver;
echo '<p class="links">';
$links = array("select" => lang('Select data'));
$actions = array("select" => lang('Select data'));
if (support("table") || support("indexes")) {
$links["table"] = lang('Show structure');
$actions["table"] = lang('Show structure');
}
if (support("table")) {
if (is_view($tableStatus)) {
$links["view"] = lang('Alter view');
$actions["view"] = lang('Alter view');
} else {
$links["create"] = lang('Alter table');
$actions["create"] = lang('Alter table');
}
}
if ($set !== null) {
$links["edit"] = lang('New item');
$actions["edit"] = lang('New item');
}
$name = $tableStatus["Name"];
foreach ($links as $key => $val) {
if ($key !== array_key_first($links)) {
echo " | ";
}
echo " <a href='" . h(ME) . "$key=" . urlencode($name) . ($key == "edit" ? $set : "") . "'" . bold(isset($_GET[$key])) . ">$val</a>";
$links = [];
foreach ($actions as $key => $val) {
$links[] = "<a href='" . h(ME) . "$key=" . urlencode($name) . ($key == "edit" ? $set : "") . "'" . bold(isset($_GET[$key])) . ">$val</a>";
}
echo generate_linksbar($links);
echo doc_link(array($jush => $driver->tableHelp($name)), "?");
echo "\n";
}
@ -655,10 +654,15 @@ class Adminer {
$id = "warnings-" . count($history[$_GET["db"]]);
$return = "<a href='#$id' class='toggle'>" . lang('Warnings') . "</a>, $return<div id='$id' class='hidden'>\n$warnings</div>\n";
}
$links = [];
if (support("sql")) {
$links[] = '<a href="' . h(str_replace("db=" . urlencode(DB), "db=" . urlencode($_GET["db"]), ME) . 'sql=&history=' . (count($history[$_GET["db"]]) - 1)) . '">' . lang('Edit') . '</a>';
$links[] = '<a href="#" class="copy-to-clipboard">' . lang('Copy to clipboard') . '</a>';
}
return " <span class='time'>" . @date("H:i:s") . "</span>" // @ - time zone may be not set
. " $return<div id='$sql_id' class='hidden'><pre><code class='jush-$jush copy-to-clipboard'>" . shorten_utf8($query, 1000) . "</code></pre>"
. ($time ? " <span class='time'>($time)</span>" : '')
. (support("sql") ? '<p class="links"><a href="' . h(str_replace("db=" . urlencode(DB), "db=" . urlencode($_GET["db"]), ME) . 'sql=&history=' . (count($history[$_GET["db"]]) - 1)) . '">' . lang('Edit') . '</a> | <a href="#" class="copy-to-clipboard">' . lang('Copy to clipboard') . '</a>' : '')
. generate_linksbar($links)
. '</div>'
;
}
@ -923,10 +927,20 @@ class Adminer {
* @return bool whether to print default homepage
*/
function homepage() {
echo '<p class="links">' . ($_GET["ns"] == "" && support("database") ? '<a href="' . h(ME) . 'database=">' . lang('Alter database') . "</a>\n" : "");
echo (support("scheme") ? " | <a href='" . h(ME) . "scheme='>" . ($_GET["ns"] != "" ? lang('Alter schema') : lang('Create schema')) . "</a>\n" : "");
echo ($_GET["ns"] !== "" ? ' | <a href="' . h(ME) . 'schema=">' . lang('Database schema') . "</a>\n" : "");
echo (support("privileges") ? " | <a href='" . h(ME) . "privileges='>" . lang('Privileges') . "</a>\n" : "");
$links = [];
if ($_GET["ns"] == "" && support("database")) {
$links[] = '<a href="' . h(ME) . 'database=">' . lang('Alter database') . '</a>';
}
if (support("scheme")) {
$links[] = "<a href='" . h(ME) . "scheme='>" . ($_GET["ns"] != "" ? lang('Alter schema') : lang('Create schema')) . "</a>";
}
if ($_GET["ns"] !== "") {
$links[] = '<a href="' . h(ME) . 'schema=">' . lang('Database schema') . '</a>';
}
if (support("privileges")) {
$links[] = "<a href='" . h(ME) . "privileges='>" . lang('Privileges') . "</a>";
}
echo generate_linksbar($links);
return true;
}
@ -1028,7 +1042,7 @@ bodyLoad('<?php echo (is_object($connection) ? preg_replace('~^(\d\.?\d).*~s', '
<form action="">
<p id="dbs">
<?php
echo "<table style='width: 100%;'><tr><td style='border: none;'>";
echo "<table><tr><td style='border: none;'>";
hidden_fields_get();
$db_events = script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");
echo "<span title='" . lang('database') . "'>" . lang('DB') . "</span>:</td><td style='border: none;'>" . ($databases
@ -1054,7 +1068,6 @@ bodyLoad('<?php echo (is_object($connection) ? preg_replace('~^(\d\.?\d).*~s', '
break;
}
}
echo "</p></form>\n";
}
/** Prints table list in menu
@ -1082,3 +1095,6 @@ bodyLoad('<?php echo (is_object($connection) ? preg_replace('~^(\d\.?\d).*~s', '
}
}
?>
</p>
</form>

View file

@ -272,14 +272,14 @@ function print_fieldset($id, $legend, $visible = false) {
}
function generate_linksbar($links) {
$linksbar = "<p class='links'>\n";
$linksbar = "<p class='links'>";
foreach ($links as $key => $link) {
if ($key !== key(array_keys($links))) {
$linksbar .= " | ";
$linksbar .= "<span class='separator'>|</span>";
}
$linksbar .= $link . "\n";
$linksbar .= $link;
}
$linksbar .= "</p>\n";
$linksbar .= "</p>";
return $linksbar;
}

View file

@ -98,7 +98,7 @@ if (!$error && $_POST) {
$q = substr($query, 0, $pos);
$commands++;
$print = "<pre id='sql-$commands'><code class='jush-$jush copy-to-clipboard'>" . $adminer->sqlCommandQuery($q) . "</code></pre>\n";
$print .= " | <a href='#' class='copy-to-clipboard'>" . lang('Copy to clipboard') . "</a>";
$print .= generate_linksbar(["<a href='#' class='copy-to-clipboard'>" . lang('Copy to clipboard') . "</a>"]);
if ($jush == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) {
// PHP doesn't support setting SQLITE_LIMIT_ATTACHED
echo $print;

View file

@ -33,6 +33,7 @@ input[type='submit'] { padding-left: 10px; padding-right: 10px; }
select { border-radius: 5px; padding: 2px; vertical-align: middle;; }
fieldset label input[type='checkbox'] { margin-bottom: 6px; }
fieldset a { line-height: 20px; }
span.separator { margin-left: 5px; margin-right: 5px; }
.block { display: block; }
.version { color: #777; font-size: 50%; }
.js .hidden, .nojs .jsonly { display: none; }
@ -78,6 +79,7 @@ fieldset a { line-height: 20px; }
#table tbody tr td a.edit { font-size: 0; padding: 12px 8px 5px 8px; background-size: 16px; background-repeat: no-repeat; background-position: 0 0; background-image: url('data:image/png;base64,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'); }
#table thead tr td a { font-size: 0; padding: 12px 8px 5px 8px; background-size: 16px; background-repeat: no-repeat; background-position: 0 0; background-image: url('data:image/png;base64,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'); }
#dbs { overflow: hidden; }
#dbs table { width: 100%; margin-top: 0px; }
#logins, #tables { white-space: nowrap; overflow: auto; }
#logins a, #tables a, #tables span { background: #fff; }
#content { margin: 2em 0 0 21em; padding: 10px 20px 20px 0; }