]> git.joonet.de Git - adminer.git/commitdiff
Move icons to CSS
authorJakub Vrana <jakub@vrana.cz>
Tue, 25 Mar 2025 23:08:16 +0000 (00:08 +0100)
committerJakub Vrana <jakub@vrana.cz>
Tue, 25 Mar 2025 23:08:16 +0000 (00:08 +0100)
12 files changed:
adminer/database.inc.php
adminer/file.inc.php
adminer/include/editing.inc.php
adminer/include/html.inc.php
adminer/indexes.inc.php
adminer/static/default.css
adminer/static/editing.js
compile.php
designs/haeckel/adminer.css
designs/lucas-sandery/adminer.css
designs/pokorny/adminer.css
todo.txt

index 04bc3f8e22eff0816b2b68a196f820190303563f..828f9d17688750e8f6bafcb66e87e0d4988e18d1 100644 (file)
@@ -3,7 +3,7 @@ namespace Adminer;
 
 $row = $_POST;
 
-if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
+if ($_POST && !$error && !$_POST["add"]) {
        $name = trim($row["name"]);
        if ($_POST["drop"]) {
                $_GET["db"] = ""; // to save in global history
@@ -60,7 +60,7 @@ if ($_POST) {
 <form action="" method="post">
 <p>
 <?php
-echo ($_POST["add_x"] || strpos($name, "\n")
+echo ($_POST["add"] || strpos($name, "\n")
        ? '<textarea autofocus name="name" rows="10" cols="40">' . h($name) . '</textarea><br>'
        : '<input name="name" autofocus value="' . h($name) . '" data-maxlength="64" autocapitalize="off">'
 ) . "\n" . ($collations ? html_select("collation", array("" => "(" . lang('collation') . ")") + $collations, $row["collation"]) . doc_link(array(
@@ -73,8 +73,8 @@ echo ($_POST["add_x"] || strpos($name, "\n")
 <?php
 if (DB != "") {
        echo "<input type='submit' name='drop' value='" . lang('Drop') . "'>" . confirm(lang('Drop %s?', DB)) . "\n";
-} elseif (!$_POST["add_x"] && $_GET["db"] == "") {
-       echo "<input type='image' class='icon' name='add' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>\n";
+} elseif (!$_POST["add"] && $_GET["db"] == "") {
+       echo icon("plus", "add[0]", "+", lang('Add next')) . "\n";
 }
 echo input_token();
 ?>
index d468b77f986aa00376f99f6359cec921d3dedc28..4ae73a5c699bbfab6d13f9ef3f95d458efef5dce 100644 (file)
@@ -35,21 +35,5 @@ if ($_GET["file"] == "favicon.ico") {
 ../externals/jush/modules/jush-mssql.js;
 ../externals/jush/modules/jush-oracle.js;
 ../externals/jush/modules/jush-simpledb.js', 'minify_js'));
-} else {
-       header("Content-Type: image/gif");
-       switch ($_GET["file"]) {
-               case "plus.gif":
-                       echo compile_file('../adminer/static/plus.gif');
-                       break;
-               case "cross.gif":
-                       echo compile_file('../adminer/static/cross.gif');
-                       break;
-               case "up.gif":
-                       echo compile_file('../adminer/static/up.gif');
-                       break;
-               case "down.gif":
-                       echo compile_file('../adminer/static/down.gif');
-                       break;
-       }
 }
 exit;
index 8ef7277267dc8add2d80dbe5658910b545d8d101..e84b355d941f0b3a78639f4eede6d987ed7290d5 100644 (file)
@@ -347,7 +347,7 @@ function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = arra
                echo "<td id='label-default'$default_class>" . lang('Default value');
                echo (support("comment") ? "<td id='label-comment'$comment_class>" . lang('Comment') : "");
        }
-       echo "<td><input type='image' class='icon' name='add[" . (support("move_col") ? 0 : count($fields)) . "]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>" . script("row_count = " . count($fields) . ";");
+       echo "<td>" . icon("plus", "add[" . (support("move_col") ? 0 : count($fields)) . "]", "+", lang('Add next'));
        echo "</thead>\n<tbody>\n";
        echo script("mixin(qsl('tbody'), {onclick: editingClick, onkeydown: editingKeydown, oninput: editingInput});");
        foreach ($fields as $i => $field) {
@@ -373,11 +373,11 @@ function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = arra
                }
                echo "<td>";
                echo (support("move_col") ?
-                       "<input type='image' class='icon' name='add[$i]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'> "
-                       . "<input type='image' class='icon' name='up[$i]' src='../adminer/static/up.gif' alt='↑' title='" . lang('Move up') . "'> "
-                       . "<input type='image' class='icon' name='down[$i]' src='../adminer/static/down.gif' alt='↓' title='" . lang('Move down') . "'> "
+                       icon("plus", "add[$i]", "+", lang('Add next')) . " "
+                       . icon("up", "up[$i]", "↑", lang('Move up')) . " "
+                       . icon("down", "down[$i]", "↓", lang('Move down')) . " "
                : "");
-               echo ($orig == "" || support("drop_col") ? "<input type='image' class='icon' name='drop_col[$i]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "'>" : "");
+               echo ($orig == "" || support("drop_col") ? icon("cross", "drop_col[$i]", "x", lang('Remove')) : "");
        }
 }
 
index 30f34f0a508b2e08a7e25e4289231ca3fb9c991d..33f5b6e10fca96a580d242155a95f9f9145bd039 100644 (file)
@@ -534,3 +534,14 @@ function edit_form($table, $fields, $row, $update) {
        echo input_token();
        echo "</form>\n";
 }
+
+/** Get button with icon
+* @param string
+* @param string
+* @param string
+* @param string
+* @return string
+*/
+function icon($icon, $name, $html, $title) {
+       return "<button type='submit' name='$name' title='" . h($title) . "' class='icon icon-$icon'><span>$html</span></button>";
+}
index 0e9542992af834c1322db59b61ba0b590b713c23..c80e4ac466c942e3a87143a8a2fddc0305fcaed8 100644 (file)
@@ -112,7 +112,7 @@ if ($lengths || support("descidx")) {
 }
 ?>
 <th id="label-name"><?php echo lang('Name'); ?>
-<th><noscript><?php echo "<input type='image' class='icon' name='add[0]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>"; ?></noscript>
+<th><noscript><?php echo icon("plus", "add[0]", "+", lang('Add next')); ?></noscript>
 </thead>
 <?php
 if ($primary) {
@@ -146,7 +146,7 @@ foreach ($row["indexes"] as $index) {
                }
 
                echo "<td><input name='indexes[$j][name]' value='" . h($index["name"]) . "' autocapitalize='off' aria-labelledby='label-name'>\n";
-               echo "<td><input type='image' class='icon' name='drop_col[$j]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "'>" . script("qsl('input').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");
+               echo "<td>" . icon("cross", "drop_col[$j]", "x", lang('Remove')) . script("qsl('button').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");
        }
        $j++;
 }
index 8a748078c400625e60e7ee9620c802511508bfe5..8bb4ab04f289552dd2ccdcaeaaa9d1c21316fdf0 100644 (file)
@@ -61,8 +61,13 @@ input.wayoff { left: -1000px; position: absolute; }
 .sqlarea { width: 98%; }
 .sql-footer { margin-bottom: 2.5em; }
 .explain table { white-space: pre; }
-.icon { width: 18px; height: 18px; background-color: navy; }
+.icon { width: 18px; height: 18px; background-color: navy; border: 0; vertical-align: middle; }
+.icon span { display: none; }
 .icon:hover { background-color: red; }
+.icon-up { background-image: url(up.gif); }
+.icon-down { background-image: url(down.gif); }
+.icon-plus { background-image: url(plus.gif); }
+.icon-cross { background-image: url(cross.gif); }
 .size { width: 7ex; }
 .help { cursor: help; }
 .footer { position: sticky; bottom: 0; margin-right: -20px; border-top: 20px solid rgba(255, 255, 255, .7); border-image: linear-gradient(rgba(255, 255, 255, .2), #fff) 100% 0; }
index 6a517166e3163c6ed402a5c6a3471784b1390549..3a17c624bfbf6af7ebea5d86140b509ee268ef8c 100644 (file)
@@ -249,11 +249,7 @@ function editFields() {
 * @return boolean false to cancel action
 */
 function editingClick(event) {
-       let el = event.target;
-       if (!isTag(el, 'input')) {
-               el = parentTag(el, 'label');
-               el = el && qs('input', el);
-       }
+       let el = parentTag(event.target, 'button');
        if (el) {
                const name = el.name;
                if (/^add\[/.test(name)) {
@@ -264,18 +260,24 @@ function editingClick(event) {
                        editingMoveRow.call(el);
                } else if (/^drop_col\[/.test(name)) {
                        editingRemoveRow.call(el, 'fields$1[field]');
-               } else {
-                       if (name == 'auto_increment_col') {
-                               const field = el.form['fields[' + el.value + '][field]'];
-                               if (!field.value) {
-                                       field.value = 'id';
-                                       field.oninput();
-                               }
-                       }
-                       return;
                }
                return false;
        }
+       el = event.target;
+       if (!isTag(el, 'input')) {
+               el = parentTag(el, 'label');
+               el = el && qs('input', el);
+       }
+       if (el) {
+               const name = el.name;
+               if (name == 'auto_increment_col') {
+                       const field = el.form['fields[' + el.value + '][field]'];
+                       if (!field.value) {
+                               field.value = 'id';
+                               field.oninput();
+                       }
+               }
+       }
 }
 
 /** Handle input on fields editing
@@ -334,11 +336,11 @@ function editingAddRow(focus) {
        const x = match[0] + (match[2] ? added.substr(match[2].length) : added) + '1';
        const row = parentTag(this, 'tr');
        const row2 = cloneNode(row);
-       let tags = qsa('select', row);
-       let tags2 = qsa('select', row2);
+       let tags = qsa('select, input, button', row);
+       let tags2 = qsa('select, input, button', row2);
        for (let i=0; i < tags.length; i++) {
                tags2[i].name = tags[i].name.replace(/[0-9.]+/, x);
-               tags2[i].selectedIndex = tags[i].selectedIndex;
+               tags2[i].selectedIndex = (/\[(generated)/.test(tags[i].name) ? 0 : tags[i].selectedIndex);
        }
        tags = qsa('input', row);
        tags2 = qsa('input', row2);
@@ -348,13 +350,11 @@ function editingAddRow(focus) {
                        tags2[i].value = x;
                        tags2[i].checked = false;
                }
-               tags2[i].name = tags[i].name.replace(/([0-9.]+)/, x);
                if (/\[(orig|field|comment|default)/.test(tags[i].name)) {
                        tags2[i].value = '';
                }
                if (/\[(generated)/.test(tags[i].name)) {
                        tags2[i].checked = false;
-                       tags2[i].selectedIndex = 0;
                }
        }
        tags[0].oninput = editingNameChange;
index 6d127f36d0702b9a8df858414f284185fa12712c..47a95dfd2432c97011ea14ffe5cbc6d938af8ed9 100755 (executable)
@@ -202,6 +202,10 @@ if (!$translations) {
 }
 
 function minify_css($file) {
+       global $project;
+       if ($project == "editor") {
+               $file = preg_replace('~.*\.gif.*~', '', $file);
+       }
        $file = preg_replace_callback('~url\((\w+\.(gif))\)~', function ($match) {
                return "url(data:image/$match[2];base64," . base64_encode(file_get_contents(__DIR__ . "/adminer/static/$match[1]")) . ")";
        }, $file);
@@ -329,7 +333,7 @@ if ($vendor) {
 }
 if ($project == "editor") {
        $file = preg_replace('~;.\.\/externals/jush/jush(-dark)?\.css~', '', $file);
-       $file = preg_replace('~compile_file\(\'\.\./(externals/jush/modules/jush\.js|adminer/static/[^.]+\.gif)[^)]+\)~', "''", $file);
+       $file = preg_replace('~compile_file\(\'\.\./(externals/jush/modules/jush\.js)[^)]+\)~', "''", $file);
 }
 $file = preg_replace_callback("~lang\\('((?:[^\\\\']+|\\\\.)*)'([,)])~s", 'lang_ids', $file);
 $file = preg_replace_callback('~\b(include|require) "([^"]*\$LANG.inc.php)";~', 'put_file_lang', $file);
index ec5018186ba158f824665cefaabc15e14b872c8f..274f6ff8a471bade2e1d71bb5ac44725495dd0b7 100644 (file)
@@ -311,36 +311,24 @@ html>/**/body #content a[href*="&sql="] {
        padding-left: 22px;
 }
 /* Inline plus */
-html>/**/body #content input[src*="file=plus.gif"] {
+html>/**/body #content .icon-plus {
        background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAelJREFUeNqkU81qFEEQ/tr50UncrI4iwq6oRJCIIV6zxFxE9iCIbxHwXXwA32CPXgRFEZFgPGgiIcfNn0hgYU1mnV070zPTbXXP7Mwke4hgNzVT3f3VV9VV1Uwphf8ZDJ2r9GUXSVuhdZvEP8PmkOQtFF5CqaFttpRauXN99vmDmwtNz7ngVtGnI+QxF9/3Nme3ezt6+cJGavbbCzfmm+JP5ApEBXgwGJh/vV6vcrj3G/ea2wc77ZzAePAtWG54HBaoMAzxefm10VufnqBWqxVnnue5ZGeuaiPJQoyiCJzzAiSEOKFXzxhjGNsVBBpUJdF6v9836/0f+5BSZga2Dd/3JwniOMZoNMK3x+/R6/UwHA4NgeM4+PronTHUMvemhTAKJwnSNAVPOLrdrsm8BmvjseFYQDVKnKRCEGfKkThC4AR4uPU0uyhhNpY+GKP5j8samY0ZcsaodPGpCAIrgJoifWpccJReL+vUl3WUNCciENQBOIcqqiQ4j5JYNxfNMoLIZPcwllQGD2UXkse59VamN072suSSSiZ1S8PCLt3nFq5Jnt61G+40m2aWua+dvwo/13MhnDj+MviZHkQddMQaM5AZdhtL7BmuYJHWl854TAF+YQ2r6hV+q12Wp6eGMs//OhLd8X8FGACYiuElnjs9iAAAAABJRU5ErkJggg==") no-repeat left center;
        height: 16px;
-       overflow: hidden;
-       padding-left: 16px;
-       width: 0;
 }
 /* Inline up */
-html>/**/body #content input[src*="file=up.gif"] {
+html>/**/body #content .icon-up {
        background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAi1JREFUeNqkUz2IE0EYfZOZ3WySi9FAPLU4fwjEw8IUhyjXxUYrK8FOG8FWQQst7OxEUE7wOq200qv0GguR4+BEMIpwGDxNBE8vcMZcsv87fjPJrkl1iB885s238958M/Mtk1Lif0KI6iINLAfGzhOpEXZto9kkvISUDwHZE4OcvFA9svfS7LH9ZSttWOPrJeIi1Wg7vrO08rVS//idUWpOIArVt9qJmaly51ff6oxIO53BrFAojDpaM0f3lesfvtUGBlIbFFNMWo7jjO399HZFj+eufxnLm2bGIl1R8ZSugOB5LmzbTvD41oFEoPjoN9t2EOuEDAO1hjmOB9d1teDF/arm3W5XC6Iowr3LOZy8+AZccJRKRSogYMMKyCAKmO/7CMMQC3em0Ww28Wyxjna7TZV5eLfaBeccrx/N0pUK9Pu+1ihtbIAgCGG7ARqNBpberuPm/AYMw6B3Frh2t4n3n3qaCzMLyUzEOoHhEbb6EXoex9kb6+D0kkZmx0BAUPzq3AZCvwUzUwDjVP3wCEI7kYEdmjDSeQ0VvttLDISRpXxuvD2i2CD0tQFSalH6b/tQ1yQGZjYxTiL0hwaBp9vT86UrrInEgThOX/mseb50aEzr9Xsu6VRLg8Ndpf0PTwaOU9m5ZypnWBMixQ0oZPK7NeK5gu/Y7trKq9bWz9YT/H6wrMooghUPgp86AzZ5nNy2+ZnkJuSPZYTPF4iuKYOMqlIf599C3X73jwADAG6CADM79TwjAAAAAElFTkSuQmCC") no-repeat left center;
        height: 16px;
-       overflow: hidden;
-       padding-left: 16px;
-       width: 0;
 }
 /* Inline down */
-html>/**/body #content input[src*="file=down.gif"] {
+html>/**/body #content .icon-down {
        background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjVJREFUeNqkU01oE1EQ/l72vWTTZps22B+ltCiBRItYsYhSBIkXxUMv9qzgQaH04kEFe/WsIh486s1jDyJePIhIoRepogjRYipoNRBjmuz/Pue9dJf0VKQDHzP7Zr5vZ97sMikl9mKcT78kx/rB2GUKKoShXTgNwitI+QSQbd49k1emp/Zfnz05WTQzwtxZLxE3qbzt+M7b1W+ltY8/GB094ohClaucnpkoNv90zGYPtdnsPuXz+V5Fc+bYgeLah++VroDUAoUUk6bjOElVq9XC84dHdXxx8T0sy0py6XTWJF5B38F2B/A8F7ZtJ0We5+2Ie3NCUPfbPC7DQHnmOB5c102KFKFer2tfq9UQRd2LMLiB4eECNRCoO0AKEQlEAfN9H2EYYvneYSxeMvG73tAC6u0SBh7cnsKbp7MUc3Q6vuYoLtcCZEEQwnYDVKtVTI5I3F0Yp1YF7Znj/s0SThwZ1DFP90EygZiXghqB2tnqRGh7Bubv/NSFx8sDXQIhJp+5+g7CtMBEVnMUNxnBDtMQGQu5oXHML9UTcoyz1z7pXJoEDJFLRqAOaJ7QZ0j1aQGFgX2HMHdrMyGfW/iiz+K8guYQlyPQ62p4vnS5mcvEW8iPlXHhxtck7jWv03aJ19BbgfuZllgeDRynNDg20S/MHE8ZAgpZa0QjflbwHdtdX329sfVr4xn+Pl5RuyyAFQ7COD8HNnqK1Hb5mWQDcnMF4YtlCteVAF0pLP1V/p+pPbb+CTAAmwfytdL1/44AAAAASUVORK5CYII=") no-repeat left center;
        height: 16px;
-       overflow: hidden;
-       padding-left: 16px;
-       width: 0;
 }
 /* Inline cross */
-html>/**/body #content input[src*="file=cross.gif"] {
+html>/**/body #content .icon-cross {
        background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAe5JREFUeNqkk89KG1EUxr+ZubnUjJaipgtNtTZKxE1AVIi4yM5tF30Hoe/iA3TnQkTBRbZFKApCAl1142CJqLR0ZUNJJpPJZP70nJvcEK0SpAPfzD3n5vedM2dujCRJ8D+XODIMGMA4aYfibdLkCKZO+kxlP5FcwRla7MytrHxcLhazMp2WT5HcbeB5gVOp5H44Dqd2RdTb217a2Mi6vi/h+6O6lu9WV7M3jsPd7ppsQJqMTVO6rgtWdn8fev1YrpskkhlmzZBuLJ8qN5tNLJfLqgw/OX4sxyaaE2G/L8/z0Gq1cLy4iA+1mjKcOzhQ+RrFpmniy9oaUqkUMpkMNDcwCIIAYRhiwraxNz2NwskJLMtSgJQSZwSr6Xa7aDca/xowHFB7Xr0OO47vwazx4W9PJpozu2xK6hCY3N1hLIqQPz29BwshULq8RJp+x5JUTHODIRpkkKbv/GYI/ra+jq+FgjJgbV5dKYMX1KHmBh1ImgFv3pZKCr4geJZiVjWfV+2e53K9LqiQ5kSnfzwjmuIY+cxT8J3g+aF35nWVYJ1rx3HQ6R1pWNd0ewu8bkdRfkYI2zYMi/8M4oF0juGq7//8FUWHh0DF4L2XwMIW8H4KKFL8asRR/vObwHOg3ACu2YA6x0S/wHMunmHzrwADAPb07huzEp/RAAAAAElFTkSuQmCC") no-repeat left center;
        height: 16px;
-       overflow: hidden;
-       padding-left: 16px;
-       width: 0;
 }
 /* Delete */
 html>/**/body input[name="delete"],
index 24092bf123138eda022c09eafd985e2639466d02..257182e81a81f80dc4d6d14a617ec4fb9a4fcc7f 100644 (file)
@@ -359,27 +359,22 @@ tbody tr:nth-child(n):hover th {
        background: rgba(236, 72, 18, 0.45);
 }
 .icon {
-       height: 0;
-       padding-top: 1.2em;
        width: 1.2em;
        background: #4c3957 center no-repeat;
        background-size: 66%;
 }
-.icon[src*="plus.gif"] {
+.icon-plus {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' x='0px' y='0px' width='512px' height='512px' viewBox='0 0 456 456' style='enable-background:new 0 0 456 456;'%3E%3Cg%3E%3Cpolygon points='456,157.566 298.433,157.566 298.433,0 157.567,0 157.567,157.566 0,157.566 0,298.434 157.567,298.434 157.567,456 298.433,456 298.433,298.434 456,298.434' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E");
 }
-.icon[src*="minus.gif"] {
-       background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' x='0px' y='0px' width='512px' height='512px' viewBox='0 0 456 456' style='enable-background:new 0 0 456 456;'%3E%3Cg%3E%3Cpolygon points='456,157.566 0,157.566 0,298.434 456,298.434' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E");
-}
 .column a[href*="&asc%5B"],
-.icon[src*="up.gif"] {
+.icon-up {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' x='0px' y='0px' viewBox='0 0 490 490' style='enable-background:new 0 0 490 490;' width='512px' height='512px'%3E%3Cg%3E%3Cpath d='M490,474.459H0L245.009,15.541L490,474.459z' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E");
 }
 .column a[href*="&desc%5B"],
-.icon[src*="down.gif"] {
+.icon-down {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' x='0px' y='0px' viewBox='0 0 490 490' style='enable-background:new 0 0 490 490;' width='512px' height='512px'%3E%3Cg%3E%3Cpath d='M0,15.541h490L244.991,474.459L0,15.541z' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E");
 }
-.icon[src*="cross.gif"] {
+.icon-cross {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' x='0px' y='0px' viewBox='0 0 174.239 174.239' style='enable-background:new 0 0 174.239 174.239;' width='512px' height='512px'%3E%3Cg%3E%3Cpath d='M146.537,1.047c-1.396-1.396-3.681-1.396-5.077,0L89.658,52.849c-1.396,1.396-3.681,1.396-5.077,0L32.78,1.047 c-1.396-1.396-3.681-1.396-5.077,0L1.047,27.702c-1.396,1.396-1.396,3.681,0,5.077l51.802,51.802c1.396,1.396,1.396,3.681,0,5.077 L1.047,141.46c-1.396,1.396-1.396,3.681,0,5.077l26.655,26.655c1.396,1.396,3.681,1.396,5.077,0l51.802-51.802 c1.396-1.396,3.681-1.396,5.077,0l51.801,51.801c1.396,1.396,3.681,1.396,5.077,0l26.655-26.655c1.396-1.396,1.396-3.681,0-5.077 l-51.801-51.801c-1.396-1.396-1.396-3.681,0-5.077l51.801-51.801c1.396-1.396,1.396-3.681,0-5.077L146.537,1.047z' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E");
 }
 .column a[href="#fieldset-search"] {
index 6d4c87e978cc313b2f7d906e99e126b8dded7469..d58ad9a2abc9b31a634550916bb4123761212d45 100644 (file)
@@ -145,36 +145,24 @@ html>/**/body #content a[href*="&sql="] {
     padding-left: 22px;\r
 }\r
 /* Inline plus */\r
-html>/**/body #content input[src*="file=plus.gif"] {\r
+html>/**/body #content .icon-plus {\r
     background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAelJREFUeNqkU81qFEEQ/tr50UncrI4iwq6oRJCIIV6zxFxE9iCIbxHwXXwA32CPXgRFEZFgPGgiIcfNn0hgYU1mnV070zPTbXXP7Mwke4hgNzVT3f3VV9VV1Uwphf8ZDJ2r9GUXSVuhdZvEP8PmkOQtFF5CqaFttpRauXN99vmDmwtNz7ngVtGnI+QxF9/3Nme3ezt6+cJGavbbCzfmm+JP5ApEBXgwGJh/vV6vcrj3G/ea2wc77ZzAePAtWG54HBaoMAzxefm10VufnqBWqxVnnue5ZGeuaiPJQoyiCJzzAiSEOKFXzxhjGNsVBBpUJdF6v9836/0f+5BSZga2Dd/3JwniOMZoNMK3x+/R6/UwHA4NgeM4+PronTHUMvemhTAKJwnSNAVPOLrdrsm8BmvjseFYQDVKnKRCEGfKkThC4AR4uPU0uyhhNpY+GKP5j8samY0ZcsaodPGpCAIrgJoifWpccJReL+vUl3WUNCciENQBOIcqqiQ4j5JYNxfNMoLIZPcwllQGD2UXkse59VamN072suSSSiZ1S8PCLt3nFq5Jnt61G+40m2aWua+dvwo/13MhnDj+MviZHkQddMQaM5AZdhtL7BmuYJHWl854TAF+YQ2r6hV+q12Wp6eGMs//OhLd8X8FGACYiuElnjs9iAAAAABJRU5ErkJggg==") no-repeat left center;\r
     height: 16px;\r
-    overflow: hidden;\r
-    padding-left: 16px;\r
-    width: 0;\r
 }\r
 /* Inline up */\r
-html>/**/body #content input[src*="file=up.gif"] {\r
+html>/**/body #content .icon-up {\r
     background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAi1JREFUeNqkUz2IE0EYfZOZ3WySi9FAPLU4fwjEw8IUhyjXxUYrK8FOG8FWQQst7OxEUE7wOq200qv0GguR4+BEMIpwGDxNBE8vcMZcsv87fjPJrkl1iB885s238958M/Mtk1Lif0KI6iINLAfGzhOpEXZto9kkvISUDwHZE4OcvFA9svfS7LH9ZSttWOPrJeIi1Wg7vrO08rVS//idUWpOIArVt9qJmaly51ff6oxIO53BrFAojDpaM0f3lesfvtUGBlIbFFNMWo7jjO399HZFj+eufxnLm2bGIl1R8ZSugOB5LmzbTvD41oFEoPjoN9t2EOuEDAO1hjmOB9d1teDF/arm3W5XC6Iowr3LOZy8+AZccJRKRSogYMMKyCAKmO/7CMMQC3em0Ww28Wyxjna7TZV5eLfaBeccrx/N0pUK9Pu+1ihtbIAgCGG7ARqNBpberuPm/AYMw6B3Frh2t4n3n3qaCzMLyUzEOoHhEbb6EXoex9kb6+D0kkZmx0BAUPzq3AZCvwUzUwDjVP3wCEI7kYEdmjDSeQ0VvttLDISRpXxuvD2i2CD0tQFSalH6b/tQ1yQGZjYxTiL0hwaBp9vT86UrrInEgThOX/mseb50aEzr9Xsu6VRLg8Ndpf0PTwaOU9m5ZypnWBMixQ0oZPK7NeK5gu/Y7trKq9bWz9YT/H6wrMooghUPgp86AzZ5nNy2+ZnkJuSPZYTPF4iuKYOMqlIf599C3X73jwADAG6CADM79TwjAAAAAElFTkSuQmCC") no-repeat left center;\r
     height: 16px;\r
-    overflow: hidden;\r
-    padding-left: 16px;\r
-    width: 0;\r
 }\r
 /* Inline down */\r
-html>/**/body #content input[src*="file=down.gif"] {\r
+html>/**/body #content .icon-down {\r
     background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjVJREFUeNqkU01oE1EQ/l72vWTTZps22B+ltCiBRItYsYhSBIkXxUMv9qzgQaH04kEFe/WsIh486s1jDyJePIhIoRepogjRYipoNRBjmuz/Pue9dJf0VKQDHzP7Zr5vZ97sMikl9mKcT78kx/rB2GUKKoShXTgNwitI+QSQbd49k1emp/Zfnz05WTQzwtxZLxE3qbzt+M7b1W+ltY8/GB094ohClaucnpkoNv90zGYPtdnsPuXz+V5Fc+bYgeLah++VroDUAoUUk6bjOElVq9XC84dHdXxx8T0sy0py6XTWJF5B38F2B/A8F7ZtJ0We5+2Ie3NCUPfbPC7DQHnmOB5c102KFKFer2tfq9UQRd2LMLiB4eECNRCoO0AKEQlEAfN9H2EYYvneYSxeMvG73tAC6u0SBh7cnsKbp7MUc3Q6vuYoLtcCZEEQwnYDVKtVTI5I3F0Yp1YF7Znj/s0SThwZ1DFP90EygZiXghqB2tnqRGh7Bubv/NSFx8sDXQIhJp+5+g7CtMBEVnMUNxnBDtMQGQu5oXHML9UTcoyz1z7pXJoEDJFLRqAOaJ7QZ0j1aQGFgX2HMHdrMyGfW/iiz+K8guYQlyPQ62p4vnS5mcvEW8iPlXHhxtck7jWv03aJ19BbgfuZllgeDRynNDg20S/MHE8ZAgpZa0QjflbwHdtdX329sfVr4xn+Pl5RuyyAFQ7COD8HNnqK1Hb5mWQDcnMF4YtlCteVAF0pLP1V/p+pPbb+CTAAmwfytdL1/44AAAAASUVORK5CYII=") no-repeat left center;\r
     height: 16px;\r
-    overflow: hidden;\r
-    padding-left: 16px;\r
-    width: 0;\r
 }\r
 /* Inline cross */\r
-html>/**/body #content input[src*="file=cross.gif"] {\r
+html>/**/body #content .icon-cross {\r
     background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAe5JREFUeNqkk89KG1EUxr+ZubnUjJaipgtNtTZKxE1AVIi4yM5tF30Hoe/iA3TnQkTBRbZFKApCAl1142CJqLR0ZUNJJpPJZP70nJvcEK0SpAPfzD3n5vedM2dujCRJ8D+XODIMGMA4aYfibdLkCKZO+kxlP5FcwRla7MytrHxcLhazMp2WT5HcbeB5gVOp5H44Dqd2RdTb217a2Mi6vi/h+6O6lu9WV7M3jsPd7ppsQJqMTVO6rgtWdn8fev1YrpskkhlmzZBuLJ8qN5tNLJfLqgw/OX4sxyaaE2G/L8/z0Gq1cLy4iA+1mjKcOzhQ+RrFpmniy9oaUqkUMpkMNDcwCIIAYRhiwraxNz2NwskJLMtSgJQSZwSr6Xa7aDca/xowHFB7Xr0OO47vwazx4W9PJpozu2xK6hCY3N1hLIqQPz29BwshULq8RJp+x5JUTHODIRpkkKbv/GYI/ra+jq+FgjJgbV5dKYMX1KHmBh1ImgFv3pZKCr4geJZiVjWfV+2e53K9LqiQ5kSnfzwjmuIY+cxT8J3g+aF35nWVYJ1rx3HQ6R1pWNd0ewu8bkdRfkYI2zYMi/8M4oF0juGq7//8FUWHh0DF4L2XwMIW8H4KKFL8asRR/vObwHOg3ACu2YA6x0S/wHMunmHzrwADAPb07huzEp/RAAAAAElFTkSuQmCC") no-repeat left center;\r
     height: 16px;\r
-    overflow: hidden;\r
-    padding-left: 16px;\r
-    width: 0;\r
 }\r
 /* Delete */\r
 html>/**/body input[name="delete"], html>/**/body input[name="drop"] {\r
index 4f6850037dd9894d07b841bae8116af496eeee6c..db7c2a0fdd383f8163cec7632f23bea7a8237302 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -7,7 +7,6 @@ Export by GET parameters
 Draggable columns in alter table (thanks to Michal Manak)
 <option class> for system databases and schemas - information_schema and driver-specific (thanks to Vaclav Novotny)
 Define foreign keys name - http://forum.zdrojak.root.cz/index.php?topic=185.msg1255#msg1255
-Skinnable plus.gif and other images - http://typo3.org/extensions/repository/view/t3adminer/current/
 ? Filter by value in row under <thead> in select
 ? Column and table names auto-completion in SQL textarea - http://blog.quplo.com/2010/06/css-code-completion-in-your-browser/
 ? Aliasing of built-in functions can save 7 KB, function minification can save 7 KB, substitution of repetitive $a["a"] can save 4 KB, substitution of $_GET and friends can save 2 KB, aliasing of $connection->query can save 24 B, JS Closure compiler can save 2 KB, not enclosing HTML attribute values can save 1.2 KB, replacing \\n by \n can save .3 KB