]> git.joonet.de Git - adminer.git/commitdiff
Respect foreign key pseudo type after error
authorJakub Vrana <jakub@vrana.cz>
Fri, 9 Aug 2013 02:28:05 +0000 (19:28 -0700)
committerJakub Vrana <jakub@vrana.cz>
Fri, 9 Aug 2013 02:28:05 +0000 (19:28 -0700)
adminer/include/editing.inc.php

index 040766402de8814fce29b7235ad82ad6331ba8ed..0f81040331259ae8a6caf883d124a69dd2295191 100644 (file)
@@ -139,7 +139,14 @@ function textarea($name, $value, $rows = 10, $cols = 80) {
 function edit_type($key, $field, $collations, $foreign_keys = array()) {
        global $structured_types, $types, $unsigned, $on_actions;
        ?>
-<td><select name="<?php echo $key; ?>[type]" class="type" onfocus="lastType = selectValue(this);" onchange="editingTypeChange(this);"<?php echo on_help("getTarget(event).value", 1); ?>><?php echo optionlist((!$field["type"] || isset($types[$field["type"]]) ? array() : array($field["type"])) + $structured_types + ($foreign_keys ? array(lang('Foreign keys') => $foreign_keys) : array()), $field["type"]); ?></select>
+<td><select name="<?php echo $key; ?>[type]" class="type" onfocus="lastType = selectValue(this);" onchange="editingTypeChange(this);"<?php echo on_help("getTarget(event).value", 1); ?>><?php
+echo optionlist(
+       (!$field["type"] || isset($types[$field["type"]]) || isset($foreign_keys[$field["type"]]) ? array() : array($field["type"]))
+               + $structured_types
+               + ($foreign_keys ? array(lang('Foreign keys') => $foreign_keys) : array())
+       , $field["type"]
+);
+?></select>
 <td><input name="<?php echo $key; ?>[length]" value="<?php echo h($field["length"]); ?>" size="3" onfocus="editingLengthFocus(this);"<?php echo (!$field["length"] && preg_match('~var(char|binary)$~', $field["type"]) ? " class='required'" : ""); ?> onchange="editingLengthChange(this);" onkeyup="this.onchange();"><td class="options"><?php //! type="number" with enabled JavaScript
        echo "<select name='$key" . "[collation]'" . (preg_match('~(char|text|enum|set)$~', $field["type"]) ? "" : " class='hidden'") . '><option value="">(' . lang('collation') . ')' . optionlist($collations, $field["collation"]) . '</select>';
        echo ($unsigned ? "<select name='$key" . "[unsigned]'" . (!$field["type"] || preg_match('~((^|[^o])int|float|double|decimal)$~', $field["type"]) ? "" : " class='hidden'") . '><option>' . optionlist($unsigned, $field["unsigned"]) . '</select>' : '');