]> git.joonet.de Git - adminer.git/commitdiff
Unselect original function on key up
authorJakub Vrana <jakub@vrana.cz>
Sat, 10 Aug 2013 00:00:05 +0000 (17:00 -0700)
committerJakub Vrana <jakub@vrana.cz>
Sat, 10 Aug 2013 00:00:05 +0000 (17:00 -0700)
adminer/include/editing.inc.php
adminer/include/functions.inc.php
adminer/static/functions.js

index 4f4f615fa8bcd3ba70fa89b076718a15f3d5e9a6..2c09aec77b665ccd3fa9d6af693c14e8973046df 100644 (file)
@@ -267,7 +267,7 @@ function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = arra
 <?php if ($type == "TABLE") { ?>
 <td><?php echo checkbox("fields[$i][null]", 1, $field["null"], "", "", "block"); ?>
 <td><label class="block"><input type="radio" name="auto_increment_col" value="<?php echo $i; ?>"<?php if ($field["auto_increment"]) { ?> checked<?php } ?> onclick="var field = this.form['fields[' + this.value + '][field]']; if (!field.value) { field.value = 'id'; field.onchange(); }"></label><td><?php
-echo checkbox("fields[$i][has_default]", 1, $field["has_default"]); ?><input name="fields[<?php echo $i; ?>][default]" value="<?php echo h($field["default"]); ?>" onkeyup="if (this.value != this.getAttribute('value')) { this.onchange(); this.setAttribute('value', this.value) }" onchange="this.previousSibling.checked = true;">
+echo checkbox("fields[$i][has_default]", 1, $field["has_default"]); ?><input name="fields[<?php echo $i; ?>][default]" value="<?php echo h($field["default"]); ?>" onkeyup="keyupChange.call(this);" onchange="this.previousSibling.checked = true;">
 <?php echo (support("comment") ? "<td" . ($comments ? "" : " class='hidden'") . "><input name='fields[$i][comment]' value='" . h($field["comment"]) . "' maxlength='" . ($connection->server_info >= 5.5 ? 1024 : 255) . "'>" : ""); ?>
 <?php } ?>
 <?php
index 85ecb28dfba9ed45b59dec0a232be3936aeb1d39..7ac377febf0f6e8bb7262790030e32c02f19eed2 100644 (file)
@@ -805,7 +805,7 @@ function input($field, $value, $function) {
                        }
                        $first++;
                }
-               $onchange = ($first ? " onchange=\"var f = this.form['function[" . h(js_escape(bracket_escape($field["field"]))) . "]']; if ($first > f.selectedIndex) f.selectedIndex = $first;\"" : "");
+               $onchange = ($first ? " onchange=\"var f = this.form['function[" . h(js_escape(bracket_escape($field["field"]))) . "]']; if ($first > f.selectedIndex) f.selectedIndex = $first;\" onkeyup='keyupChange.call(this);'" : "");
                $attrs .= $onchange;
                echo (count($functions) > 1
                        ? "<select name='function[$name]' onchange='functionChange(this);'" . on_help("getTarget(event).value.replace(/^SQL\$/, '')", 1) . ">" . optionlist($functions, $function === null || in_array($function, $functions) || isset($functions[$function]) ? $function : "") . "</select>"
index 506ba0540cf4d80c6f7bb689137fa472dbf84e0f..819e66556367958621081c3dac227eb82cf4d533 100644 (file)
@@ -435,6 +435,16 @@ function functionChange(select) {
        helpClose();
 }
 
+/** Call this.onchange() if value changes
+* @this HTMLInputElement
+*/
+function keyupChange() {
+       if (this.value != this.getAttribute('value')) {
+               this.onchange();
+               this.setAttribute('value', this.value);
+       }
+}
+
 
 
 /** Create AJAX request