]> git.joonet.de Git - adminer.git/commitdiff
Don't link first column id
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 3 Jul 2009 04:27:19 +0000 (04:27 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 3 Jul 2009 04:27:19 +0000 (04:27 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@781 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/functions.js

index 7ac1e3b74a93bb50a1e91d8a2f77a1d676dbbefd..abe2ec86d48e96c36a5c3b097be5c4203f3b0e5c 100644 (file)
@@ -86,24 +86,29 @@ function editing_name_change(field) {
        }
        var plural = '(?:e?s)?';
        var tab_col = table + plural + '_?' + column;
-       var re = new RegExp('^' + idf_escape(table + plural) + '\\.' + idf_escape(column) + '$'
-               + '|^' + idf_escape(tab_col) + '\\.'
-               + '|\\.' + idf_escape(tab_col) + '$'
-               + '|^' + idf_escape(column + plural) + '\\.' + idf_escape(table) + '$'
+       var re = new RegExp('(^' + idf_escape(table + plural) + '\\.' + idf_escape(column) + '$' // table_column
+               + '|^' + idf_escape(tab_col) + '\\.' // table
+               + '|^' + idf_escape(column + plural) + '\\.' + idf_escape(table) + '$' // column_table
+               + ')|\\.' + idf_escape(tab_col) + '$' // column
        , 'i');
        var candidate; // don't select anything with ambiguous match (like column `id`)
        for (var i = opts.length; i--; ) {
-               if (re.test(opts[i].value)) {
+               if (opts[i].value.substr(0, 1) != '`') { // common type
+                       if (i == opts.length - 2 && candidate && !match[1] && name == 'fields[1]') { // single target table, link to column, first field - probably `id`
+                               return false;
+                       }
+                       break;
+               }
+               if (match = re.exec(opts[i].value)) {
                        if (candidate) {
                                return false;
-                       } else {
-                               candidate = i;
                        }
+                       candidate = i;
                }
        }
        if (candidate) {
                opts.selectedIndex = candidate;
-               editing_type_change(type);
+               type.onchange();
        }
 }