From cd207238b75fc837e8a890c4cfa8a8f6c8b3d181 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 26 Mar 2025 00:08:16 +0100 Subject: [PATCH] Move icons to CSS --- adminer/database.inc.php | 8 +++---- adminer/file.inc.php | 16 ------------- adminer/include/editing.inc.php | 10 ++++---- adminer/include/html.inc.php | 11 +++++++++ adminer/indexes.inc.php | 4 ++-- adminer/static/default.css | 7 +++++- adminer/static/editing.js | 38 +++++++++++++++---------------- compile.php | 6 ++++- designs/haeckel/adminer.css | 20 ++++------------ designs/lucas-sandery/adminer.css | 13 ++++------- designs/pokorny/adminer.css | 20 ++++------------ todo.txt | 1 - 12 files changed, 64 insertions(+), 90 deletions(-) diff --git a/adminer/database.inc.php b/adminer/database.inc.php index 04bc3f8e..828f9d17 100644 --- a/adminer/database.inc.php +++ b/adminer/database.inc.php @@ -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) {

' . h($name) . '
' : '' ) . "\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") " . confirm(lang('Drop %s?', DB)) . "\n"; -} elseif (!$_POST["add_x"] && $_GET["db"] == "") { - echo "\n"; +} elseif (!$_POST["add"] && $_GET["db"] == "") { + echo icon("plus", "add[0]", "+", lang('Add next')) . "\n"; } echo input_token(); ?> diff --git a/adminer/file.inc.php b/adminer/file.inc.php index d468b77f..4ae73a5c 100644 --- a/adminer/file.inc.php +++ b/adminer/file.inc.php @@ -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; diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index 8ef72772..e84b355d 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -347,7 +347,7 @@ function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = arra echo "" . lang('Default value'); echo (support("comment") ? "" . lang('Comment') : ""); } - echo "" . script("row_count = " . count($fields) . ";"); + echo "" . icon("plus", "add[" . (support("move_col") ? 0 : count($fields)) . "]", "+", lang('Add next')); echo "\n\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 ""; echo (support("move_col") ? - " " - . " " - . " " + 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") ? "" : ""); + echo ($orig == "" || support("drop_col") ? icon("cross", "drop_col[$i]", "x", lang('Remove')) : ""); } } diff --git a/adminer/include/html.inc.php b/adminer/include/html.inc.php index 30f34f0a..33f5b6e1 100644 --- a/adminer/include/html.inc.php +++ b/adminer/include/html.inc.php @@ -534,3 +534,14 @@ function edit_form($table, $fields, $row, $update) { echo input_token(); echo "

\n"; } + +/** Get button with icon +* @param string +* @param string +* @param string +* @param string +* @return string +*/ +function icon($icon, $name, $html, $title) { + return ""; +} diff --git a/adminer/indexes.inc.php b/adminer/indexes.inc.php index 0e954299..c80e4ac4 100644 --- a/adminer/indexes.inc.php +++ b/adminer/indexes.inc.php @@ -112,7 +112,7 @@ if ($lengths || support("descidx")) { } ?> - + \n"; - echo "" . script("qsl('input').onclick = partial(editingRemoveRow, 'indexes\$1[type]');"); + echo "" . icon("cross", "drop_col[$j]", "x", lang('Remove')) . script("qsl('button').onclick = partial(editingRemoveRow, 'indexes\$1[type]');"); } $j++; } diff --git a/adminer/static/default.css b/adminer/static/default.css index 8a748078..8bb4ab04 100644 --- a/adminer/static/default.css +++ b/adminer/static/default.css @@ -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; } diff --git a/adminer/static/editing.js b/adminer/static/editing.js index 6a517166..3a17c624 100644 --- a/adminer/static/editing.js +++ b/adminer/static/editing.js @@ -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; diff --git a/compile.php b/compile.php index 6d127f36..47a95dfd 100755 --- a/compile.php +++ b/compile.php @@ -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); diff --git a/designs/haeckel/adminer.css b/designs/haeckel/adminer.css index ec501818..274f6ff8 100644 --- a/designs/haeckel/adminer.css +++ b/designs/haeckel/adminer.css @@ -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"], diff --git a/designs/lucas-sandery/adminer.css b/designs/lucas-sandery/adminer.css index 24092bf1..257182e8 100644 --- a/designs/lucas-sandery/adminer.css +++ b/designs/lucas-sandery/adminer.css @@ -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"] { diff --git a/designs/pokorny/adminer.css b/designs/pokorny/adminer.css index 6d4c87e9..d58ad9a2 100644 --- a/designs/pokorny/adminer.css +++ b/designs/pokorny/adminer.css @@ -145,36 +145,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"], html>/**/body input[name="drop"] { diff --git a/todo.txt b/todo.txt index 4f685003..db7c2a0f 100644 --- a/todo.txt +++ b/todo.txt @@ -7,7 +7,6 @@ Export by GET parameters Draggable columns in alter table (thanks to Michal Manak)