]> git.joonet.de Git - adminer.git/commitdiff
Replace getElementById by shortcut for querySelector (requires IE8)
authorJakub Vrana <jakub@vrana.cz>
Thu, 11 Jan 2018 10:55:17 +0000 (11:55 +0100)
committerJakub Vrana <jakub@vrana.cz>
Thu, 11 Jan 2018 12:51:32 +0000 (13:51 +0100)
13 files changed:
adminer/create.inc.php
adminer/database.inc.php
adminer/include/adminer.inc.php
adminer/include/functions.inc.php
adminer/schema.inc.php
adminer/scheme.inc.php
adminer/static/editing.js
adminer/static/functions.js
adminer/trigger.inc.php
adminer/user.inc.php
editor/include/adminer.inc.php
plugins/tables-filter.php
plugins/tinymce.php

index 19ae3f5381602b0cdeaaaca303128979f7e92d9f..e57290dd8162ffe3eb77840f93479556c10721fd 100644 (file)
@@ -163,7 +163,7 @@ foreach ($engines as $engine) {
 <p>
 <?php if (support("columns") || $TABLE == "") { ?>
 <?php echo lang('Table name'); ?>: <input name="name" maxlength="64" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
-<?php if ($TABLE == "" && !$_POST) { ?><script type='text/javascript'>focus(document.getElementById('form')['name']);</script><?php } ?>
+<?php if ($TABLE == "" && !$_POST) { ?><script type='text/javascript'>focus(qs('#form')['name']);</script><?php } ?>
 <?php echo ($engines ? "<select name='Engine' onchange='helpClose();'" . on_help("getTarget(event).value", 1) . ">" . optionlist(array("" => "(" . lang('engine') . ")") + $engines, $row["Engine"]) . "</select>" : ""); ?>
  <?php echo ($collations && !preg_match("~sqlite|mssql~", $jush) ? html_select("Collation", array("" => "(" . lang('collation') . ")") + $collations, $row["Collation"]) : ""); ?>
  <input type="submit" value="<?php echo lang('Save'); ?>">
index a0c06b4f622334c58c96414843fd8544191c34de..98349f91d08bf64393497acb8d188b98c48259c3 100644 (file)
@@ -66,7 +66,7 @@ echo ($_POST["add_x"] || strpos($name, "\n")
        'mssql' => "ms187963.aspx",
 )) : "");
 ?>
-<script type='text/javascript'>focus(document.getElementById('name'));</script>
+<script type='text/javascript'>focus(qs('#name'));</script>
 <input type="submit" value="<?php echo lang('Save'); ?>">
 <?php
 if (DB != "") {
index 1861b561b6b12e66781715fb406ad9bd4e1bd779..dfcc0f07f66cee5cb0afa41df657b7279b7b5215 100644 (file)
@@ -95,7 +95,7 @@ class Adminer {
 <tr><th><?php echo lang('Database'); ?><td><input name="auth[db]" value="<?php echo h($_GET["db"]); ?>" autocapitalize="off">
 </table>
 <script type="text/javascript">
-focus(document.getElementById('username'));
+focus(qs('#username'));
 </script>
 <?php
                echo "<p><input type='submit' value='" . lang('Login') . "'>\n";
@@ -413,7 +413,7 @@ focus(document.getElementById('username'));
                        json_row($key);
                }
                echo ";\n";
-               echo "selectFieldChange(document.getElementById('form'));\n";
+               echo "selectFieldChange(qs('#form'));\n";
                echo "</script>\n";
                echo "</div></fieldset>\n";
        }
index da99c9cc9645183c503e8300789752af1abe0454..ad71a3412fddc1b1e246bbebd62d5b490852a07c 100644 (file)
@@ -1383,7 +1383,7 @@ function edit_form($TABLE, $fields, $row, $update) {
                }
        }
        echo ($update ? "<input type='submit' name='delete' value='" . lang('Delete') . "'" . confirm() . ">\n"
-               : ($_POST || !$fields ? "" : "<script type='text/javascript'>focus(document.getElementById('form').getElementsByTagName('td')[1].firstChild);</script>\n")
+               : ($_POST || !$fields ? "" : "<script type='text/javascript'>focus(qs('#form').getElementsByTagName('td')[1].firstChild);</script>\n")
        );
        if (isset($_GET["select"])) {
                hidden_fields(array("check" => (array) $_POST["check"], "clone" => $_POST["clone"], "all" => $_POST["all"]));
index 1bc7241ab87023bc79fd8072a12b36823a482c03..dea8a5d0b4d97130fae38c501bbf2f3ec4884004 100644 (file)
@@ -51,7 +51,7 @@ foreach (table_status('', true) as $table => $table_status) {
 <div id="schema" style="height: <?php echo $top; ?>em;" onselectstart="return false;">
 <script type="text/javascript">
 var tablePos = {<?php echo implode(",", $table_pos_js) . "\n"; ?>};
-var em = document.getElementById('schema').offsetHeight / <?php echo $top; ?>;
+var em = qs('#schema').offsetHeight / <?php echo $top; ?>;
 document.onmousemove = schemaMousemove;
 document.onmouseup = function (ev) {
        schemaMouseup(ev, '<?php echo js_escape(DB); ?>');
index 606e2654c0b2303175e76b255bf35d4af55a90ee..c7d17d6e509ba88eb47e1ff64594e39410034587 100644 (file)
@@ -27,7 +27,7 @@ if (!$row) {
 
 <form action="" method="post">
 <p><input name="name" id="name" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
-<script type='text/javascript'>focus(document.getElementById('name'));</script>
+<script type='text/javascript'>focus(qs('#name'));</script>
 <input type="submit" value="<?php echo lang('Save'); ?>">
 <?php
 if ($_GET["ns"] != "") {
index ceea6b1d50deeb63ddefe0b76424f00776ef4b21..3bc9854c79789ff8eda94ce88e524da06de2177a 100644 (file)
@@ -338,7 +338,7 @@ function editingLengthChange(el) {
 function editingLengthFocus(field) {
        var td = field.parentNode;
        if (/(enum|set)$/.test(selectValue(td.previousSibling.firstChild))) {
-               var edit = document.getElementById('enum-edit');
+               var edit = qs('#enum-edit');
                var val = field.value;
                edit.value = (/^'.+'$/.test(val) ? val.substr(1, val.length - 2).replace(/','/g, "\n").replace(/''/g, "'") : val); //! doesn't handle 'a'',''b' correctly
                td.appendChild(edit);
@@ -364,7 +364,7 @@ function editingLengthBlur(edit) {
 * @param number
 */
 function columnShow(checked, column) {
-       var trs = document.getElementById('edit-fields').getElementsByTagName('tr');
+       var trs = qs('#edit-fields').getElementsByTagName('tr');
        for (var i=0; i < trs.length; i++) {
                alterClass(trs[i].getElementsByTagName('td')[column], 'hidden', !checked);
        }
@@ -374,7 +374,7 @@ function columnShow(checked, column) {
 */
 function editingHideDefaults() {
        if (innerWidth < document.documentElement.scrollWidth) {
-               document.getElementById('form')['defaults'].checked = false;
+               qs('#form')['defaults'].checked = false;
                columnShow(false, 5);
        }
 }
@@ -385,7 +385,7 @@ function editingHideDefaults() {
 function partitionByChange(el) {
        var partitionTable = /RANGE|LIST/.test(selectValue(el));
        alterClass(el.form['partitions'], 'hidden', partitionTable || !el.selectedIndex);
-       alterClass(document.getElementById('partition-table'), 'hidden', !partitionTable);
+       alterClass(qs('#partition-table'), 'hidden', !partitionTable);
        helpClose();
 }
 
@@ -533,7 +533,7 @@ function schemaMousemove(ev) {
                var lineSet = { };
                for (var i=0; i < divs.length; i++) {
                        if (divs[i].className == 'references') {
-                               var div2 = document.getElementById((/^refs/.test(divs[i].id) ? 'refd' : 'refs') + divs[i].id.substr(4));
+                               var div2 = qs('#' + (/^refs/.test(divs[i].id) ? 'refd' : 'refs') + divs[i].id.substr(4));
                                var ref = (tablePos[divs[i].title] ? tablePos[divs[i].title] : [ div2.parentNode.offsetTop / em, 0 ]);
                                var left1 = -1;
                                var id = divs[i].id.replace(/^ref.(.+)-.+/, '$1');
@@ -546,7 +546,7 @@ function schemaMousemove(ev) {
                                        div2.getElementsByTagName('div')[0].style.width = -left2 + 'em';
                                }
                                if (!lineSet[id]) {
-                                       var line = document.getElementById(divs[i].id.replace(/^....(.+)-.+$/, 'refl$1'));
+                                       var line = qs('#' + divs[i].id.replace(/^....(.+)-.+$/, 'refl$1'));
                                        var top1 = top + divs[i].offsetTop / em;
                                        var top2 = top + div2.offsetTop / em;
                                        if (divs[i].parentNode != div2.parentNode) {
@@ -578,7 +578,7 @@ function schemaMouseup(ev, db) {
                        s += '_' + key + ':' + Math.round(tablePos[key][0] * 10000) / 10000 + 'x' + Math.round(tablePos[key][1] * 10000) / 10000;
                }
                s = encodeURIComponent(s.substr(1));
-               var link = document.getElementById('schema-link');
+               var link = qs('#schema-link');
                link.href = link.href.replace(/[^=]+$/, '') + s;
                cookie('adminer_schema-' + db + '=' + s, 30); //! special chars in db
        }
@@ -600,7 +600,7 @@ function helpMouseover(el, event, text, side) {
                helpClose();
        } else if (window.jush && (!helpIgnore || el != target)) {
                helpOpen = 1;
-               var help = document.getElementById('help');
+               var help = qs('#help');
                help.innerHTML = text;
                jush.highlight_tag([ help ]);
                alterClass(help, 'hidden');
@@ -628,5 +628,5 @@ function helpMouseout(el, event) {
 /** Close help
 */
 function helpClose() {
-       alterClass(document.getElementById('help'), 'hidden', true);
+       alterClass(qs('#help'), 'hidden', true);
 }
index fb91b418f0e11ad184c6748bb7190c132716cda1..e332373edcfbeffbd79eeef7d5f0b0fb2abffd5e 100644 (file)
@@ -1,4 +1,12 @@
 
+/** Get first element by selector
+* @param string
+* @return HTMLElement
+*/
+function qs(selector) {
+       return document.querySelector(selector);
+}
+
 /** Add or remove CSS class
 * @param HTMLElement
 * @param string
@@ -15,7 +23,7 @@ function alterClass(el, className, enable) {
 * @return boolean
 */
 function toggle(id) {
-       var el = document.getElementById(id);
+       var el = qs('#' + id);
        el.className = (el.className == 'hidden' ? '' : 'hidden');
        return true;
 }
@@ -54,7 +62,7 @@ function verifyVersion(current) {
                        }
                }, false);
        }
-       document.getElementById('version').appendChild(iframe);
+       qs('#version').appendChild(iframe);
 }
 
 /** Get value of select
@@ -108,7 +116,7 @@ function trCheck(el) {
 */
 function selectCount(id, count) {
        setHtml(id, (count === '' ? '' : '(' + (count + '').replace(/\B(?=(\d{3})+$)/g, ' ') + ')'));
-       var inputs = document.getElementById(id).parentNode.parentNode.getElementsByTagName('input');
+       var inputs = qs('#' + id).parentNode.parentNode.getElementsByTagName('input');
        for (var i = 0; i < inputs.length; i++) {
                var input = inputs[i];
                if (input.type == 'submit') {
@@ -149,7 +157,7 @@ function tableCheck() {
 * @param string
 */
 function formUncheck(id) {
-       var el = document.getElementById(id);
+       var el = qs('#' + id);
        el.checked = false;
        trCheck(el);
 }
@@ -237,7 +245,7 @@ function checkboxClick(event, el) {
 * @param string undefined to set parentNode to &nbsp;
 */
 function setHtml(id, html) {
-       var el = document.getElementById(id);
+       var el = qs('#' + id);
        if (el) {
                if (html == null) {
                        el.parentNode.innerHTML = '&nbsp;';
@@ -361,7 +369,7 @@ function columnMouse(el, className) {
  * @param string
  */
 function selectSearch(name) {
-       var el = document.getElementById('fieldset-search');
+       var el = qs('#fieldset-search');
        el.className = '';
        var divs = el.getElementsByTagName('div');
        for (var i=0; i < divs.length; i++) {
@@ -514,7 +522,7 @@ function fieldChange(field) {
 function ajax(url, callback, data, message) {
        var request = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : false));
        if (request) {
-               var ajaxStatus = document.getElementById('ajaxstatus');
+               var ajaxStatus = qs('#ajaxstatus');
                if (message) {
                        ajaxStatus.innerHTML = '<div class="message">' + message + '</div>';
                        ajaxStatus.className = ajaxStatus.className.replace(/ hidden/g, '');
@@ -584,7 +592,7 @@ function ajaxForm(form, message, button) {
        return ajax(url, function (request) {
                setHtml('ajaxstatus', request.responseText);
                if (window.jush) {
-                       jush.highlight_tag(document.getElementById('ajaxstatus').getElementsByTagName('code'), 0);
+                       jush.highlight_tag(qs('#ajaxstatus').getElementsByTagName('code'), 0);
                }
        }, data, message);
 }
@@ -678,7 +686,7 @@ function selectLoadMore(a, limit, loading) {
                return ajax(href, function (request) {
                        var tbody = document.createElement('tbody');
                        tbody.innerHTML = request.responseText;
-                       document.getElementById('table').appendChild(tbody);
+                       qs('#table').appendChild(tbody);
                        if (tbody.children.length < limit) {
                                a.parentNode.removeChild(a);
                        } else {
index 4270770e3b755676b6a4288c5768883de27cee83..42afb976c10ed0c399ec27404b5b08333eff0ad4 100644 (file)
@@ -40,7 +40,7 @@ page_header(($name != "" ? lang('Alter trigger') . ": " . h($name) : lang('Creat
 <tr><th><?php echo lang('Type'); ?><td><?php echo html_select("Type", $trigger_options["Type"], $row["Type"]); ?>
 </table>
 <p><?php echo lang('Name'); ?>: <input name="Trigger" value="<?php echo h($row["Trigger"]); ?>" maxlength="64" autocapitalize="off">
-<script type="text/javascript">document.getElementById('form')['Timing'].onchange();</script>
+<script type="text/javascript">qs('#form')['Timing'].onchange();</script>
 <p><?php textarea("Statement", $row["Statement"]); ?>
 <p>
 <input type="submit" value="<?php echo lang('Save'); ?>">
index f45078ab5062fc00fb4fcd81413167a274459edd..4d9afd9f81efd83f288e2225e8a58779e9cf2b3a 100644 (file)
@@ -135,7 +135,7 @@ if ($_POST) {
 <tr><th><?php echo lang('Server'); ?><td><input name="host" maxlength="60" value="<?php echo h($row["host"]); ?>" autocapitalize="off">
 <tr><th><?php echo lang('Username'); ?><td><input name="user" maxlength="16" value="<?php echo h($row["user"]); ?>" autocapitalize="off">
 <tr><th><?php echo lang('Password'); ?><td><input name="pass" id="pass" value="<?php echo h($row["pass"]); ?>">
-<?php if (!$row["hashed"]) { ?><script type="text/javascript">typePassword(document.getElementById('pass'));</script><?php } ?>
+<?php if (!$row["hashed"]) { ?><script type="text/javascript">typePassword(qs('#pass'));</script><?php } ?>
 <?php echo checkbox("hashed", 1, $row["hashed"], lang('Hashed'), "typePassword(this.form['pass'], this.checked);"); ?>
 </table>
 
index ae4052027a77406df633615967fc78a3d57f7706..e0dd13833635ce9b93e4bf1b069a4179ae8fe8ee 100644 (file)
@@ -59,7 +59,7 @@ class Adminer {
 <tr><th><?php echo lang('Password'); ?><td><input type="password" name="auth[password]">
 </table>
 <script type="text/javascript">
-focus(document.getElementById('username'));
+focus(qs('#username'));
 </script>
 <?php
                echo "<p><input type='submit' value='" . lang('Login') . "'>\n";
@@ -399,7 +399,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                                $field = idf_escape($_POST["email_field"]);
                                $subject = $_POST["email_subject"];
                                $message = $_POST["email_message"];
-                               preg_match_all('~\\{\\$([a-z0-9_]+)\\}~i', "$subject.$message", $matches); // allows {$name} in subject or message
+                               preg_match_all('~\\{\\$('#' + [a-z0-9_]+)\\}~i', "$subject.$message", $matches); // allows {$name} in subject or message
                                $rows = get_rows("SELECT DISTINCT $field" . ($matches[1] ? ", " . implode(", ", array_map('idf_escape', array_unique($matches[1]))) : "") . " FROM " . table($_GET["select"])
                                        . " WHERE $field IS NOT NULL AND $field != ''"
                                        . ($where ? " AND " . implode(" AND ", $where) : "")
@@ -488,7 +488,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                        return "$function()";
                }
                $return = $value;
-               if (preg_match('~date|timestamp~', $field["type"]) && preg_match('(^' . str_replace('\\$1', '(?P<p1>\\d*)', preg_replace('~(\\\\\\$([2-6]))~', '(?P<p\\2>\\d{1,2})', preg_quote(lang('$1-$3-$5')))) . '(.*))', $value, $match)) {
+               if (preg_match('~date|timestamp~', $field["type"]) && preg_match('(^' . str_replace('\\$1', '(?P<p1>\\d*)', preg_replace('~(\\\\\\$('#' + [2-6]))~', '(?P<p\\2>\\d{1,2})', preg_quote(lang('$1-$3-$5')))) . '(.*))', $value, $match)) {
                        $return = ($match["p1"] != "" ? $match["p1"] : ($match["p2"] != "" ? ($match["p2"] < 70 ? 20 : 19) . $match["p2"] : gmdate("Y"))) . "-$match[p3]$match[p4]-$match[p5]$match[p6]" . end($match);
                }
                $return = ($field["type"] == "bit" && preg_match('~^[0-9]+$~', $value) ? $return : q($return));
index 72297121a10b266dab715292ecfba0553450b51c..ef278f32d3369f3eb29453fc6d646c21d9e73d1c 100644 (file)
@@ -28,7 +28,7 @@ var tablesFilterTimeout = null;
 var tablesFilterValue = '';
 
 function tablesFilter(){
-       var value = document.getElementById('filter-field').value.toLowerCase();
+       var value = qs('#filter-field').value.toLowerCase();
        if (value == tablesFilterValue) {
                return;
        }
@@ -40,7 +40,7 @@ function tablesFilter(){
        if (sessionStorage) {
                sessionStorage.setItem('adminer_tables_filter', value);
        }
-       var tables = document.getElementById('tables').getElementsByTagName('li');
+       var tables = qs('#tables').getElementsByTagName('li');
        for (var i = 0; i < tables.length; i++) {
                var a = tables[i].getElementsByTagName('a')[1];
                var text = tables[i].getAttribute('data-table-name');
@@ -60,10 +60,10 @@ function tablesFilterInput() {
 }
 
 if (sessionStorage){
-       var db = document.getElementById('dbs').getElementsByTagName('select')[0];
+       var db = qs('#dbs').getElementsByTagName('select')[0];
        db = db.options[db.selectedIndex].text;
        if (db == sessionStorage.getItem('adminer_tables_filter_db') && sessionStorage.getItem('adminer_tables_filter')){
-               document.getElementById('filter-field').value = sessionStorage.getItem('adminer_tables_filter');
+               qs('#filter-field').value = sessionStorage.getItem('adminer_tables_filter');
                tablesFilter();
        }
        sessionStorage.setItem('adminer_tables_filter_db', db);
index 8e47516a0755d58c274869dac1a5a0f11dac082b..1bd52c7a6b37ada2d2ccb34fee2ec881621d324f 100644 (file)
@@ -71,7 +71,7 @@ tinyMCE.init({
                        return "<textarea$attrs id='fields-" . h($field["field"]) . "' rows='12' cols='50'>" . h($value) . "</textarea><script type='text/javascript'>
 tinyMCE.remove(tinyMCE.get('fields-" . js_escape($field["field"]) . "') || { });
 tinyMCE.execCommand('mceAddControl', true, 'fields-" . js_escape($field["field"]) . "');
-document.getElementById('form').onsubmit = function () {
+qs('#form').onsubmit = function () {
        tinyMCE.each(tinyMCE.editors, function (ed) {
                ed.remove();
        });