From 1bfffbf26baddc1ddea475b770890d0d0bb37f25 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Fri, 20 Dec 2019 13:50:20 +0100 Subject: [PATCH] Speed up alter table form --- adminer/create.inc.php | 1 + adminer/include/editing.inc.php | 6 ++---- adminer/procedure.inc.php | 1 + adminer/static/editing.js | 29 ++++++++++++++++++++++++++++- changes.txt | 3 ++- 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/adminer/create.inc.php b/adminer/create.inc.php index 0b34a90f..05a4df41 100644 --- a/adminer/create.inc.php +++ b/adminer/create.inc.php @@ -180,6 +180,7 @@ foreach ($engines as $engine) { edit_fields($row["fields"], $collations, "TABLE", $foreign_keys); ?> +

: "> diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index 18594eb3..c8677c85 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -177,9 +177,7 @@ if ($foreign_keys) { $structured_types[lang('Foreign keys')] = $foreign_keys; } echo optionlist(array_merge($extra_types, $structured_types), $type); -?> - -" size="3" aria-labelledby="label-length">" size="3" aria-labelledby="label-length">

diff --git a/adminer/static/editing.js b/adminer/static/editing.js index d4ae1d23..a3b51570 100644 --- a/adminer/static/editing.js +++ b/adminer/static/editing.js @@ -207,6 +207,33 @@ 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 () { + 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}); + } + els = qsa('[name$="[type]"]'); + for (var i = 0; i < els.length; i++) { + mixin(els[i], { + onfocus: function () { lastType = selectValue(this); }, + onchange: editingTypeChange, + onmouseover: function (event) { helpMouseover.call(this, event, getTarget(event).value, 1) }, + onmouseout: helpMouseout + }); + } +} + /** Handle clicks on fields editing * @param MouseEvent * @return boolean false to cancel action @@ -289,7 +316,7 @@ function editingNameChange() { } /** Add table row for next field -* @param boolean +* @param [boolean] * @return boolean false * @this HTMLInputElement */ diff --git a/changes.txt b/changes.txt index b7705c45..c43d33ce 100644 --- a/changes.txt +++ b/changes.txt @@ -1,4 +1,5 @@ Adminer 4.7.6-dev: +Speed up alter table form (regression from 4.4.0) Fix clicking on non-input fields in alter table (regression from 4.6.2) MySQL: Always set foreign_key_checks in export Editor: Fix focusing foreign key search in select @@ -686,7 +687,7 @@ Print ALTER export instead of executing it Click on row selects it Fix Editor date format Fix long SQL query crash (bug #2839231) -Speedup of simple alter table +Speed up simple alter table Traditional Chinese translation Adminer 2.0.0 (released 2009-08-06):