]> git.joonet.de Git - adminer.git/commitdiff
Anchor Logout button to body, not to viewport (bug #979)
authorJakub Vrana <jakub@vrana.cz>
Fri, 4 Apr 2025 15:58:48 +0000 (17:58 +0200)
committerJakub Vrana <jakub@vrana.cz>
Fri, 4 Apr 2025 16:27:45 +0000 (18:27 +0200)
This reverts commit e277d051625f198919700aa8c34bf2d58d348f62.

adminer/include/design.inc.php
adminer/static/default.css
adminer/static/functions.js

index c8b74be9ac27e80a1a39827d18a69c3f986f79f3..2f93baf5ff312f77fb79a1377ed52994026c406d 100644 (file)
@@ -85,7 +85,7 @@ const thousandsSeparator = '" . js_escape(lang(',')) . "';")
        echo "<div id='help' class='jush-" . JUSH . " jsonly hidden'></div>\n";
        echo script("mixin(qs('#help'), {onmouseover: () => { helpOpen = 1; }, onmouseout: helpMouseout});");
        echo "<div id='content'>\n";
-       echo "<span id='menuopen' class='jsonly'>" . icon("move", "", "menu", "") . "</span>" . script("qs('#menuopen').onclick = event => { qs('#menu').classList.toggle('foot'); event.stopPropagation(); }");
+       echo "<span id='menuopen' class='jsonly'>" . icon("move", "", "menu", "") . "</span>" . script("qs('#menuopen').onclick = event => { qs('#foot').classList.toggle('foot'); event.stopPropagation(); }");
        if ($breadcrumb !== null) {
                $link = substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1);
                echo '<p id="breadcrumb"><a href="' . h($link ?: ".") . '">' . get_driver(DRIVER) . '</a> ยป ';
@@ -190,16 +190,16 @@ function page_messages(string $error): void {
 * @param ''|'auth'|'db'|'ns' $missing
 */
 function page_footer(string $missing = ""): void {
-       echo "</div>\n\n<div id='menu' class='foot'>\n";
+       echo "</div>\n\n<div id='foot' class='foot'>\n<div id='menu'>\n";
        adminer()->navigation($missing);
+       echo "</div>\n";
        if ($missing != "auth") {
                ?>
 <form action="" method="post">
-<div class="logout">
+<p class="logout">
 <span><?php echo h($_GET["username"]) . "\n"; ?></span>
 <input type="submit" name="logout" value="<?php echo lang('Logout'); ?>" id="logout">
 <?php echo input_token(); ?>
-</div>
 </form>
 <?php
        }
index f41a822ecde3587f527374259cbebedf8d9f9b18..cff4e94249ab3d088d6943f37c3d5d260407088f 100644 (file)
@@ -75,7 +75,7 @@ input.wayoff { left: -1000px; position: absolute; }
 .footer > div { background: var(--bg); padding: 0 0 .5em; }
 .footer fieldset { margin-top: 0; }
 .links a { white-space: nowrap; margin-right: 20px; }
-.logout { position: fixed; top: .5em; right: 20px; }
+.logout { margin-top: .5em; position: absolute; top: 0; right: 0; }
 .loadmore { margin-left: 1ex; }
 /* .edit used in designs */
 #menu { position: absolute; margin: 10px 0 0; top: 2em; left: 0; width: 19em; }
@@ -116,15 +116,15 @@ input.wayoff { left: -1000px; position: absolute; }
 
 @media all and (max-width: 880px) {
        .pages { left: auto; }
-       .logout { position: absolute; top: 1.667em; }
-       #menu { width: auto; background: var(--bg); border: 1px solid var(--fg); margin-top: 9px; box-shadow: 0 0 20px rgb(from var(--fg) r g b / .7); }
+       .js .logout { top: 1.667em; }
+       #menu { position: static; width: auto; min-width: 23em; background: var(--bg); border: 1px solid var(--fg); margin-top: 9px; box-shadow: 0 0 20px rgb(from var(--fg) r g b / .7); }
        #content { margin-left: 10px; }
        #lang { position: static; }
        #breadcrumb { left: 48px; }
+       .js #foot { position: absolute; top: 2em; left: 0; }
        .js .foot { display: none; }
        .js #menuopen { display: block; position: absolute; top: 3px; left: 6px; }
        .nojs #menu { position: static; }
-       .nojs .logout { position: static; padding: 1em; }
        .rtl .pages { right: auto; }
        .rtl #content { margin-right: 10px; }
        .rtl #breadcrumb { right: auto; }
index 5e38f0d23ca49397103491fcc60811f8cc263972..3103a73e6f119b7116046c78c77defc505625e6d 100644 (file)
@@ -848,7 +848,7 @@ oninput = event => {
 };
 
 addEvent(document, 'click', event => {
-       if (!qs('#menu').contains(event.target)) {
-               alterClass(qs('#menu'), 'foot', true);
+       if (!qs('#foot').contains(event.target)) {
+               alterClass(qs('#foot'), 'foot', true);
        }
 });