]> git.joonet.de Git - adminer.git/commitdiff
Replace getElementsByTagName by shortcut for querySelectorAll
authorJakub Vrana <jakub@vrana.cz>
Thu, 11 Jan 2018 12:42:45 +0000 (13:42 +0100)
committerJakub Vrana <jakub@vrana.cz>
Thu, 11 Jan 2018 13:00:04 +0000 (14:00 +0100)
adminer/include/functions.inc.php
adminer/static/editing.js
adminer/static/functions.js
plugins/tables-filter.php

index ad71a3412fddc1b1e246bbebd62d5b490852a07c..81951fae07755b649dbfd5f2c6cf8c0536407819 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(qs('#form').getElementsByTagName('td')[1].firstChild);</script>\n")
+               : ($_POST || !$fields ? "" : "<script type='text/javascript'>focus(qsa('td', qs('#form'))[1].firstChild);</script>\n")
        );
        if (isset($_GET["select"])) {
                hidden_fields(array("check" => (array) $_POST["check"], "clone" => $_POST["clone"], "all" => $_POST["all"]));
index a1c1438fc80fc1dc2e35962e501d5cc60f23fd8b..e82dd5f40bef8655e9f0b4f59d2d1277f4710c8e 100644 (file)
@@ -23,7 +23,7 @@ function bodyLoad(version) {
                        jush.custom_links = jushLinks;
                }
                jush.highlight_tag('code', 0);
-               var tags = document.getElementsByTagName('textarea');
+               var tags = qsa('textarea', document);
                for (var i = 0; i < tags.length; i++) {
                        if (/(^|\s)jush-/.test(tags[i].className)) {
                                var pre = jush.textarea(tags[i]);
@@ -98,14 +98,14 @@ function dbChange(el) {
 */
 function selectFieldChange(form) {
        var ok = (function () {
-               var inputs = form.getElementsByTagName('input');
+               var inputs = qsa('input', form);
                for (var i=0; i < inputs.length; i++) {
                        if (inputs[i].value && /^fulltext/.test(inputs[i].name)) {
                                return true;
                        }
                }
                var ok = form.limit.value;
-               var selects = form.getElementsByTagName('select');
+               var selects = qsa('select', form);
                var group = false;
                var columns = {};
                for (var i=0; i < selects.length; i++) {
@@ -218,14 +218,14 @@ function editingAddRow(button, focus) {
        var x = match[0] + (match[2] ? added.substr(match[2].length) : added) + '1';
        var row = parentTag(button, 'tr');
        var row2 = cloneNode(row);
-       var tags = row.getElementsByTagName('select');
-       var tags2 = row2.getElementsByTagName('select');
+       var tags = qsa('select', row);
+       var tags2 = qsa('select', row2);
        for (var i=0; i < tags.length; i++) {
                tags2[i].name = tags[i].name.replace(/[0-9.]+/, x);
                tags2[i].selectedIndex = tags[i].selectedIndex;
        }
-       tags = row.getElementsByTagName('input');
-       tags2 = row2.getElementsByTagName('input');
+       tags = qsa('input', row);
+       tags2 = qsa('input', row2);
        var input = tags2[0]; // IE loose tags2 after insertBefore()
        for (var i=0; i < tags.length; i++) {
                if (tags[i].name == 'auto_increment_col') {
@@ -364,9 +364,9 @@ function editingLengthBlur(edit) {
 * @param number
 */
 function columnShow(checked, column) {
-       var trs = qs('#edit-fields').getElementsByTagName('tr');
+       var trs = qsa('tr', qs('#edit-fields'));
        for (var i=0; i < trs.length; i++) {
-               alterClass(trs[i].getElementsByTagName('td')[column], 'hidden', !checked);
+               alterClass(qsa('td', trs[i])[column], 'hidden', !checked);
        }
 }
 
@@ -407,7 +407,7 @@ function partitionNameChange(el) {
 function foreignAddRow(field) {
        field.onchange = function () { };
        var row = cloneNode(parentTag(field, 'tr'));
-       var selects = row.getElementsByTagName('select');
+       var selects = qsa('select', row);
        for (var i=0; i < selects.length; i++) {
                selects[i].name = selects[i].name.replace(/\]/, '1$&');
                selects[i].selectedIndex = 0;
@@ -423,12 +423,12 @@ function foreignAddRow(field) {
 function indexesAddRow(field) {
        field.onchange = function () { };
        var row = cloneNode(parentTag(field, 'tr'));
-       var selects = row.getElementsByTagName('select');
+       var selects = qsa('select', row);
        for (var i=0; i < selects.length; i++) {
                selects[i].name = selects[i].name.replace(/indexes\[\d+/, '$&1');
                selects[i].selectedIndex = 0;
        }
-       var inputs = row.getElementsByTagName('input');
+       var inputs = qsa('input', row);
        for (var i=0; i < inputs.length; i++) {
                inputs[i].name = inputs[i].name.replace(/indexes\[\d+/, '$&1');
                inputs[i].value = '';
@@ -443,7 +443,7 @@ function indexesAddRow(field) {
 function indexesChangeColumn(field, prefix) {
        var names = [];
        for (var tag in { 'select': 1, 'input': 1 }) {
-               var columns = parentTag(field, 'td').getElementsByTagName(tag);
+               var columns = qsa(tag, parentTag(field, 'td'));
                for (var i=0; i < columns.length; i++) {
                        if (/\[columns\]/.test(columns[i].name)) {
                                var value = selectValue(columns[i]);
@@ -472,13 +472,13 @@ function indexesAddColumn(field, prefix) {
                select.onchange();
        }
        var column = cloneNode(field.parentNode);
-       var selects = column.getElementsByTagName('select');
+       var selects = qsa('select', column);
        for (var i = 0; i < selects.length; i++) {
                select = selects[i];
                select.name = select.name.replace(/\]\[\d+/, '$&1');
                select.selectedIndex = 0;
        }
-       var inputs = column.getElementsByTagName('input');
+       var inputs = qsa('input', column);
        for (var i = 0; i < inputs.length; i++) {
                var input = inputs[i];
                input.name = input.name.replace(/\]\[\d+/, '$&1');
@@ -529,7 +529,7 @@ function schemaMousemove(ev) {
                ev = ev || event;
                var left = (ev.clientX - x) / em;
                var top = (ev.clientY - y) / em;
-               var divs = that.getElementsByTagName('div');
+               var divs = qsa('div', that);
                var lineSet = { };
                for (var i=0; i < divs.length; i++) {
                        if (divs[i].className == 'references') {
index e332373edcfbeffbd79eeef7d5f0b0fb2abffd5e..e503e37d35498251e424cecf85c5417809a72815 100644 (file)
@@ -7,6 +7,15 @@ function qs(selector) {
        return document.querySelector(selector);
 }
 
+/** Get all elements by selector
+* @param string
+* @param HTMLElement
+* @return NodeList
+*/
+function qsa(selector, context) {
+       return context.querySelectorAll(selector);
+}
+
 /** Add or remove CSS class
 * @param HTMLElement
 * @param string
@@ -116,7 +125,7 @@ function trCheck(el) {
 */
 function selectCount(id, count) {
        setHtml(id, (count === '' ? '' : '(' + (count + '').replace(/\B(?=(\d{3})+$)/g, ' ') + ')'));
-       var inputs = qs('#' + id).parentNode.parentNode.getElementsByTagName('input');
+       var inputs = qsa('input', qs('#' + id).parentNode.parentNode);
        for (var i = 0; i < inputs.length; i++) {
                var input = inputs[i];
                if (input.type == 'submit') {
@@ -142,10 +151,10 @@ function formCheck(el, name) {
 /** Check all rows in <table class="checkable">
 */
 function tableCheck() {
-       var tables = document.getElementsByTagName('table');
+       var tables = qsa('table', document);
        for (var i=0; i < tables.length; i++) {
                if (/(^|\s)checkable(\s|$)/.test(tables[i].className)) {
-                       var trs = tables[i].getElementsByTagName('tr');
+                       var trs = qsa('tr', tables[i]);
                        for (var j=0; j < trs.length; j++) {
                                trCheck(trs[j].firstChild.firstChild);
                        }
@@ -218,7 +227,7 @@ function checkboxClick(event, el) {
        }
        if (event.shiftKey && (!lastChecked || lastChecked.name == el.name)) {
                var checked = (lastChecked ? lastChecked.checked : true);
-               var inputs = parentTag(el, 'table').getElementsByTagName('input');
+               var inputs = qsa('input', parentTag(el, 'table'));
                var checking = !lastChecked;
                for (var i=0; i < inputs.length; i++) {
                        var input = inputs[i];
@@ -310,12 +319,12 @@ function selectAddRow(field) {
        };
        field.onchange();
        var row = cloneNode(field.parentNode);
-       var selects = row.getElementsByTagName('select');
+       var selects = qsa('select', row);
        for (var i=0; i < selects.length; i++) {
                selects[i].name = selects[i].name.replace(/[a-z]\[\d+/, '$&1');
                selects[i].selectedIndex = 0;
        }
-       var inputs = row.getElementsByTagName('input');
+       var inputs = qsa('input', row);
        for (var i=0; i < inputs.length; i++) {
                inputs[i].name = inputs[i].name.replace(/[a-z]\[\d+/, '$&1');
                inputs[i].className = '';
@@ -355,7 +364,7 @@ function selectSearchSearch(el) {
  * @param [string] extra class name
  */
 function columnMouse(el, className) {
-       var spans = el.getElementsByTagName('span');
+       var spans = qsa('span', el);
        for (var i=0; i < spans.length; i++) {
                if (/column/.test(spans[i].className)) {
                        spans[i].className = 'column' + (className || '');
@@ -371,7 +380,7 @@ function columnMouse(el, className) {
 function selectSearch(name) {
        var el = qs('#fieldset-search');
        el.className = '';
-       var divs = el.getElementsByTagName('div');
+       var divs = qsa('div', el);
        for (var i=0; i < divs.length; i++) {
                var div = divs[i];
                if (isTag(div.firstChild, 'select') && selectValue(div.firstChild) == name) {
@@ -501,7 +510,7 @@ function keyupChange() {
 */
 function fieldChange(field) {
        var row = cloneNode(parentTag(field, 'tr'));
-       var inputs = row.getElementsByTagName('input');
+       var inputs = qsa('input', row);
        for (var i = 0; i < inputs.length; i++) {
                inputs[i].value = '';
        }
@@ -592,7 +601,7 @@ function ajaxForm(form, message, button) {
        return ajax(url, function (request) {
                setHtml('ajaxstatus', request.responseText);
                if (window.jush) {
-                       jush.highlight_tag(qs('#ajaxstatus').getElementsByTagName('code'), 0);
+                       jush.highlight_tag(qsa('code', qs('#ajaxstatus')), 0);
                }
        }, data, message);
 }
@@ -635,7 +644,7 @@ function selectClick(td, event, text, warning) {
                });
                input.rows = rows;
        }
-       if (value == '\u00A0' || td.getElementsByTagName('i').length) { // &nbsp; or i - NULL
+       if (value == '\u00A0' || qsa('i', td).length) { // &nbsp; or i - NULL
                value = '';
        }
        if (document.selection) {
@@ -719,7 +728,7 @@ function eventStop(event) {
 */
 function setupSubmitHighlight(parent) {
        for (var key in { input: 1, select: 1, textarea: 1 }) {
-               var inputs = parent.getElementsByTagName(key);
+               var inputs = qsa(key, parent);
                for (var i = 0; i < inputs.length; i++) {
                        setupSubmitHighlightInput(inputs[i])
                }
@@ -764,7 +773,7 @@ function findDefaultSubmit(el) {
        if (el.jushTextarea) {
                el = el.jushTextarea;
        }
-       var inputs = el.form.getElementsByTagName('input');
+       var inputs = qsa('input', el.form);
        for (var i = 0; i < inputs.length; i++) {
                var input = inputs[i];
                if (input.type == 'submit' && !input.style.zIndex) {
index 0319bbf1aaba78779bb56319e34c7f2edaa5bafc..4c14b672deb933486d6b44b1be4aeadeff6736ce 100644 (file)
@@ -40,9 +40,9 @@ function tablesFilter(){
        if (sessionStorage) {
                sessionStorage.setItem('adminer_tables_filter', value);
        }
-       var tables = qs('#tables').getElementsByTagName('li');
+       var tables = qsa('li', qs('#tables'));
        for (var i = 0; i < tables.length; i++) {
-               var a = tables[i].getElementsByTagName('a')[1];
+               var a = qsa('a', tables[i])[1];
                var text = tables[i].getAttribute('data-table-name');
                if (value == '') {
                        tables[i].className = '';