]> git.joonet.de Git - adminer.git/commitdiff
JS: Use for..of
authorJakub Vrana <jakub@vrana.cz>
Wed, 19 Mar 2025 20:34:49 +0000 (21:34 +0100)
committerJakub Vrana <jakub@vrana.cz>
Wed, 19 Mar 2025 20:51:23 +0000 (21:51 +0100)
adminer/static/editing.js
adminer/static/functions.js

index 8e09c7ca63974551ba5a3748df2e631139824283..0754be5c806ce98c7e3af82892bc95c5004de38a 100644 (file)
@@ -41,10 +41,9 @@ function syntaxHighlighting(version, vendor) {
                        jush.custom_links = jushLinks;
                }
                jush.highlight_tag('code', 0);
-               var tags = qsa('textarea');
-               for (var i = 0; i < tags.length; i++) {
-                       if (/(^|\s)jush-/.test(tags[i].className)) {
-                               var pre = jush.textarea(tags[i]);
+               for (const tag of qsa('textarea')) {
+                       if (/(^|\s)jush-/.test(tag.className)) {
+                               var pre = jush.textarea(tag);
                                if (pre) {
                                        setupSubmitHighlightInput(pre);
                                }
@@ -81,10 +80,9 @@ function typePassword(el, disable) {
 /** Install toggle handler
 * @param [HTMLElement]
 */
-function messagesPrint(el) {
-       var els = qsa('.toggle', el);
-       for (var i = 0; i < els.length; i++) {
-               els[i].onclick = partial(toggle, els[i].getAttribute('href').substr(1));
+function messagesPrint(parent) {
+       for (const el of qsa('.toggle', parent)) {
+               el.onclick = partial(toggle, el.getAttribute('href').substr(1));
        }
 }
 
@@ -146,18 +144,15 @@ function dbChange() {
 function selectFieldChange() {
        var form = this.form;
        var ok = (function () {
-               var inputs = qsa('input', form);
-               for (var i=0; i < inputs.length; i++) {
-                       if (inputs[i].value && /^fulltext/.test(inputs[i].name)) {
+               for (const input of qsa('input', form)) {
+                       if (input.value && /^fulltext/.test(input.name)) {
                                return true;
                        }
                }
                var ok = form.limit.value;
-               var selects = qsa('select', form);
                var group = false;
                var columns = {};
-               for (var i=0; i < selects.length; i++) {
-                       var select = selects[i];
+               for (const select of qsa('select', form)) {
                        var col = selectValue(select);
                        var match = /^(where.+)col]/.exec(select.name);
                        if (match) {
@@ -224,22 +219,19 @@ function idfEscape(s) {
 /** Set up event handlers for edit_fields().
 */
 function editFields() {
-       var els = qsa('[name$="[field]"]');
-       for (var i = 0; i < els.length; i++) {
-               els[i].oninput = function () {
+       for (const el of qsa('[name$="[field]"]')) {
+               el.oninput = function () {
                        editingNameChange.call(this);
                        if (!this.defaultValue) {
                                editingAddRow.call(this);
                        }
                }
        }
-       els = qsa('[name$="[length]"]');
-       for (var i = 0; i < els.length; i++) {
-               mixin(els[i], {onfocus: editingLengthFocus, oninput: editingLengthChange});
+       for (const el of qsa('[name$="[length]"]')) {
+               mixin(el, {onfocus: editingLengthFocus, oninput: editingLengthChange});
        }
-       els = qsa('[name$="[type]"]');
-       for (var i = 0; i < els.length; i++) {
-               mixin(els[i], {
+       for (const el of qsa('[name$="[type]"]')) {
+               mixin(el, {
                        onfocus: function () {
                                lastType = selectValue(this);
                        },
@@ -314,11 +306,9 @@ function editingNameChange() {
                        }
                        break;
                }
-               var table = match[1];
+               var base = match[1];
                var column = match[2];
-               var tables = [ table, table.replace(/s$/, ''), table.replace(/es$/, '') ];
-               for (var j=0; j < tables.length; j++) {
-                       table = tables[j];
+               for (const table of [ base, base.replace(/s$/, ''), base.replace(/es$/, '') ]) {
                        if (val == column || val == table || delimiterEqual(val, table, column) || delimiterEqual(val, column, table)) {
                                if (candidate) {
                                        return;
@@ -415,8 +405,7 @@ function editingTypeChange() {
        var type = this;
        var name = type.name.substr(0, type.name.length - 6);
        var text = selectValue(type);
-       for (var i=0; i < type.form.elements.length; i++) {
-               var el = type.form.elements[i];
+       for (const el of type.form.elements.length) {
                if (el.name == name + '[length]') {
                        if (!(
                                (/(char|binary)$/.test(lastType) && /(char|binary)$/.test(text))
@@ -503,9 +492,8 @@ function editingLengthBlur() {
 * @param number
 */
 function columnShow(checked, column) {
-       var trs = qsa('tr', qs('#edit-fields'));
-       for (var i=0; i < trs.length; i++) {
-               alterClass(qsa('td', trs[i])[column], 'hidden', !checked);
+       for (const tr of qsa('tr', qs('#edit-fields'))) {
+               alterClass(qsa('td', tr)[column], 'hidden', !checked);
        }
 }
 
@@ -513,9 +501,8 @@ function columnShow(checked, column) {
 * @param boolean
 */
 function indexOptionsShow(checked) {
-       var options = qsa('.idxopts');
-       for (var i=0; i < options.length; i++) {
-               alterClass(options[i], 'hidden', !checked);
+       for (const option of qsa('.idxopts')) {
+               alterClass(option, 'hidden', !checked);
        }
 }
 
@@ -578,10 +565,9 @@ function dumpClick(event) {
 function foreignAddRow() {
        var row = cloneNode(parentTag(this, 'tr'));
        this.onchange = function () { };
-       var selects = qsa('select', row);
-       for (var i=0; i < selects.length; i++) {
-               selects[i].name = selects[i].name.replace(/\d+]/, '1$&');
-               selects[i].selectedIndex = 0;
+       for (const select of qsa('select', row)) {
+               select.name = select.name.replace(/\d+]/, '1$&');
+               select.selectedIndex = 0;
        }
        parentTag(this, 'table').appendChild(row);
 }
@@ -594,15 +580,13 @@ function foreignAddRow() {
 function indexesAddRow() {
        var row = cloneNode(parentTag(this, 'tr'));
        this.onchange = function () { };
-       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;
+       for (const select of qsa('select', row)) {
+               select.name = select.name.replace(/indexes\[\d+/, '$&1');
+               select.selectedIndex = 0;
        }
-       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 = '';
+       for (const input of qsa('input', row)) {
+               input.name = input.name.replace(/indexes\[\d+/, '$&1');
+               input.value = '';
        }
        parentTag(this, 'table').appendChild(row);
 }
@@ -614,10 +598,9 @@ function indexesAddRow() {
 function indexesChangeColumn(prefix) {
        var names = [];
        for (var tag in { 'select': 1, 'input': 1 }) {
-               var columns = qsa(tag, parentTag(this, 'td'));
-               for (var i=0; i < columns.length; i++) {
-                       if (/\[columns]/.test(columns[i].name)) {
-                               var value = selectValue(columns[i]);
+               for (const column of qsa(tag, parentTag(this, 'td'))) {
+                       if (/\[columns]/.test(column.name)) {
+                               var value = selectValue(column);
                                if (value) {
                                        names.push(value);
                                }
@@ -641,16 +624,12 @@ function indexesAddColumn(prefix) {
                select.onchange();
        }
        var column = cloneNode(field.parentNode);
-       var selects = qsa('select', column);
-       for (var i = 0; i < selects.length; i++) {
-               select = selects[i];
+       for (const select of qsa('select', column)) {
                select.name = select.name.replace(/]\[\d+/, '$&1');
                select.selectedIndex = 0;
        }
        field.onchange = partial(indexesChangeColumn, prefix);
-       var inputs = qsa('input', column);
-       for (var i = 0; i < inputs.length; i++) {
-               var input = inputs[i];
+       for (const input of qsa('input', column)) {
                input.name = input.name.replace(/]\[\d+/, '$&1');
                if (input.type != 'checkbox') {
                        input.value = '';
@@ -715,27 +694,26 @@ function schemaMousemove(event) {
        if (that !== undefined) {
                var left = (event.clientX - x) / em;
                var top = (event.clientY - y) / em;
-               var divs = qsa('div', that);
                var lineSet = { };
-               for (var i=0; i < divs.length; i++) {
-                       if (divs[i].className == 'references') {
-                               var div2 = qs('[id="' + (/^refs/.test(divs[i].id) ? 'refd' : 'refs') + divs[i].id.substr(4) + '"]');
-                               var ref = (tablePos[divs[i].title] || [ div2.parentNode.offsetTop / em, 0 ]);
+               for (const div of qsa('div', that)) {
+                       if (div.className == 'references') {
+                               var div2 = qs('[id="' + (/^refs/.test(div.id) ? 'refd' : 'refs') + div.id.substr(4) + '"]');
+                               var ref = (tablePos[div.title] || [ div2.parentNode.offsetTop / em, 0 ]);
                                var left1 = -1;
-                               var id = divs[i].id.replace(/^ref.(.+)-.+/, '$1');
-                               if (divs[i].parentNode != div2.parentNode) {
+                               var id = div.id.replace(/^ref.(.+)-.+/, '$1');
+                               if (div.parentNode != div2.parentNode) {
                                        left1 = Math.min(0, ref[1] - left) - 1;
-                                       divs[i].style.left = left1 + 'em';
-                                       divs[i].querySelector('div').style.width = -left1 + 'em';
+                                       div.style.left = left1 + 'em';
+                                       div.querySelector('div').style.width = -left1 + 'em';
                                        var left2 = Math.min(0, left - ref[1]) - 1;
                                        div2.style.left = left2 + 'em';
                                        div2.querySelector('div').style.width = -left2 + 'em';
                                }
                                if (!lineSet[id]) {
-                                       var line = qs('[id="' + divs[i].id.replace(/^....(.+)-.+$/, 'refl$1') + '"]');
-                                       var top1 = top + divs[i].offsetTop / em;
+                                       var line = qs('[id="' + div.id.replace(/^....(.+)-.+$/, 'refl$1') + '"]');
+                                       var top1 = top + div.offsetTop / em;
                                        var top2 = top + div2.offsetTop / em;
-                                       if (divs[i].parentNode != div2.parentNode) {
+                                       if (div.parentNode != div2.parentNode) {
                                                top2 += ref[0] - top;
                                                line.querySelector('div').style.height = Math.abs(top1 - top2) + 'em';
                                        }
index 5ab79191ec1d6c477ce7ee469d6e3a6bf25b150f..957b5c2dcfcc160a600b97ae554f3d78915e2097 100644 (file)
@@ -177,9 +177,7 @@ function selectCount(id, count) {
        setHtml(id, (count === '' ? '' : '(' + (count + '').replace(/\B(?=(\d{3})+$)/g, thousandsSeparator) + ')'));
        var el = qs('#' + id);
        if (el) {
-               var inputs = qsa('input', el.parentNode.parentNode);
-               for (var i = 0; i < inputs.length; i++) {
-                       var input = inputs[i];
+               for (const input of qsa('input', el.parentNode.parentNode)) {
                        if (input.type == 'submit') {
                                input.disabled = (count == '0');
                        }
@@ -192,11 +190,10 @@ function selectCount(id, count) {
 * @this HTMLInputElement
 */
 function formCheck(name) {
-       var elems = this.form.elements;
-       for (var i=0; i < elems.length; i++) {
-               if (name.test(elems[i].name)) {
-                       elems[i].checked = this.checked;
-                       trCheck(elems[i]);
+       for (const elem of this.form.elements) {
+               if (name.test(elem.name)) {
+                       elem.checked = this.checked;
+                       trCheck(elem);
                }
        }
 }
@@ -204,9 +201,8 @@ function formCheck(name) {
 /** Check all rows in <table class="checkable">
 */
 function tableCheck() {
-       var inputs = qsa('table.checkable td:first-child input');
-       for (var i=0; i < inputs.length; i++) {
-               trCheck(inputs[i]);
+       for (const input of qsa('table.checkable td:first-child input')) {
+               trCheck(input);
        }
 }
 
@@ -224,11 +220,10 @@ function formUncheck(id) {
 * @param RegExp
 * @return number
 */
-function formChecked(el, name) {
+function formChecked(input, name) {
        var checked = 0;
-       var elems = el.form.elements;
-       for (var i=0; i < elems.length; i++) {
-               if (name.test(elems[i].name) && elems[i].checked) {
+       for (const el of input.form.elements) {
+               if (name.test(el.name) && el.checked) {
                        checked++;
                }
        }
@@ -289,10 +284,8 @@ function checkboxClick(event) {
        }
        if (event.shiftKey && (!lastChecked || lastChecked.name == this.name)) {
                var checked = (lastChecked ? lastChecked.checked : true);
-               var inputs = qsa('input', parentTag(this, 'table'));
                var checking = !lastChecked;
-               for (var i=0; i < inputs.length; i++) {
-                       var input = inputs[i];
+               for (const input of qsa('input', parentTag(this, 'table'))) {
                        if (input.name === this.name) {
                                if (checking) {
                                        input.checked = checked;
@@ -378,19 +371,17 @@ function selectAddRow() {
        var row = cloneNode(field.parentNode);
        field.onchange = selectFieldChange;
        field.onchange();
-       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 = 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 = '';
-               if (inputs[i].type == 'checkbox') {
-                       inputs[i].checked = false;
+       for (const select of qsa('select', row)) {
+               select.name = select.name.replace(/[a-z]\[\d+/, '$&1');
+               select.selectedIndex = 0;
+       }
+       for (const input of qsa('input', row)) {
+               input.name = input.name.replace(/[a-z]\[\d+/, '$&1');
+               input.className = '';
+               if (input.type == 'checkbox') {
+                       input.checked = false;
                } else {
-                       inputs[i].value = '';
+                       input.value = '';
                }
        }
        field.parentNode.parentNode.appendChild(row);
@@ -423,10 +414,9 @@ function selectSearchSearch() {
 * @this HTMLElement
 */
 function columnMouse(className) {
-       var spans = qsa('span', this);
-       for (var i=0; i < spans.length; i++) {
-               if (/column/.test(spans[i].className)) {
-                       spans[i].className = 'column' + (className || '');
+       for (const span of qsa('span', this)) {
+               if (/column/.test(span.className)) {
+                       span.className = 'column' + (className || '');
                }
        }
 }
@@ -578,9 +568,8 @@ function skipOriginal(first) {
 */
 function fieldChange() {
        var row = cloneNode(parentTag(this, 'tr'));
-       var inputs = qsa('input', row);
-       for (var i = 0; i < inputs.length; i++) {
-               inputs[i].value = '';
+       for (const input of qsa('input', row)) {
+               input.value = '';
        }
        // keep value in <select> (function)
        parentTag(this, 'table').appendChild(row);
@@ -648,9 +637,7 @@ function ajaxSetHtml(url) {
 */
 function ajaxForm(form, message, button) {
        var data = [];
-       var els = form.elements;
-       for (var i = 0; i < els.length; i++) {
-               var el = els[i];
+       for (const el of form.elements) {
                if (el.name && !el.disabled) {
                        if (/^file$/i.test(el.type) && el.value) {
                                return false;
@@ -807,9 +794,8 @@ function eventStop(event) {
 */
 function setupSubmitHighlight(parent) {
        for (var key in { input: 1, select: 1, textarea: 1 }) {
-               var inputs = qsa(key, parent);
-               for (var i = 0; i < inputs.length; i++) {
-                       setupSubmitHighlightInput(inputs[i])
+               for (const input of qsa(key, parent)) {
+                       setupSubmitHighlightInput(input);
                }
        }
 }
@@ -855,9 +841,7 @@ function findDefaultSubmit(el) {
        if (!el.form) {
                return null;
        }
-       var inputs = qsa('input', el.form);
-       for (var i = 0; i < inputs.length; i++) {
-               var input = inputs[i];
+       for (const input of qsa('input', el.form)) {
                if (input.type == 'submit' && !input.style.zIndex) {
                        return input;
                }