]> git.joonet.de Git - adminer.git/commitdiff
Support camelCase in automatic foreign keys
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 2 Jul 2009 22:52:40 +0000 (22:52 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 2 Jul 2009 22:52:40 +0000 (22:52 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@779 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/functions.js
adminer/include/editing.inc.php

index 2f5750cf69e0776d31265a4d4b880f58fb1fba9d..7ac1e3b74a93bb50a1e91d8a2f77a1d676dbbefd 100644 (file)
@@ -80,7 +80,7 @@ function editing_name_change(field) {
        var table = re_escape(field.value);
        var column = '';
        var match;
-       if (match = /(.+)_(.+)/.exec(table)) { // limited to columns not containing underscores
+       if ((match = /(.+)_(.+)/.exec(table)) || (match = /(.*[a-z])([A-Z].*)/.exec(table))) { // limited to single word columns
                table = match[1];
                column = match[2];
        }
@@ -151,13 +151,14 @@ function editing_remove_row(button) {
 
 function editing_type_change(type) {
        var name = type.name.substr(0, type.name.length - 6);
+       var text = type.options[type.selectedIndex].text;
        for (var i=0; i < type.form.elements.length; i++) {
                var el = type.form.elements[i];
                if (el.name == name + '[collation]') {
-                       el.className = (/char|text|enum|set/.test(type.options[type.selectedIndex].text) ? '' : 'hidden');
+                       el.className = (/(char|text|enum|set)$/.test(text) ? '' : 'hidden');
                }
                if (el.name == name + '[unsigned]') {
-                       el.className = (/int|float|double|decimal/.test(type.options[type.selectedIndex].text) ? '' : 'hidden');
+                       el.className = (/(int|float|double|decimal)$/.test(text) ? '' : 'hidden');
                }
        }
 }
index abb9da6b41abddaef2e4649bf0d8e1449853e3a2..416ee346a7171187dddfd075da99c225038ff0a0 100644 (file)
@@ -123,8 +123,8 @@ function edit_type($key, $field, $collations, $foreign_keys = array()) {
 <td><select name="<?php echo $key; ?>[type]" onchange="editing_type_change(this);"><?php echo optionlist(array_keys($types) + ($foreign_keys ? array(lang('Foreign keys') => $foreign_keys) : array()), $field["type"]); ?></select></td>
 <td><input name="<?php echo $key; ?>[length]" value="<?php echo htmlspecialchars($field["length"]); ?>" size="3" /></td>
 <td><?php
-echo "<select name=\"$key" . '[collation]"' . (ereg('~(char|text|enum|set)$~', $field["type"]) ? "" : " class='hidden'") . '><option value="">(' . lang('collation') . ')</option>' . optionlist($collations, $field["collation"]) . '</select>';
-echo ($unsigned ? " <select name=\"$key" . '[unsigned]"' . (!$field["type"] || ereg('~(int|float|double|decimal)$~', $field["type"]) ? "" : " class='hidden'") . '><option></option>' . optionlist($unsigned, $field["unsigned"]) . '</select>' : '');
+echo "<select name=\"$key" . '[collation]"' . (ereg('(char|text|enum|set)$', $field["type"]) ? "" : " class='hidden'") . '><option value="">(' . lang('collation') . ')</option>' . optionlist($collations, $field["collation"]) . '</select>';
+echo ($unsigned ? " <select name=\"$key" . '[unsigned]"' . (!$field["type"] || ereg('(int|float|double|decimal)$', $field["type"]) ? "" : " class='hidden'") . '><option></option>' . optionlist($unsigned, $field["unsigned"]) . '</select>' : '');
 ?></td>
 <?php
 }