]> git.joonet.de Git - adminer.git/commitdiff
Support one click search in Editor
authorJakub Vrana <jakub@vrana.cz>
Sun, 5 Aug 2012 05:52:50 +0000 (22:52 -0700)
committerJakub Vrana <jakub@vrana.cz>
Sun, 5 Aug 2012 05:52:50 +0000 (22:52 -0700)
adminer/static/editing.js
adminer/static/functions.js
editor/include/adminer.inc.php
editor/static/editing.js

index 3688882e2b16ad931b439a3470e58cbeabe026f2..ace7cf6b7ae105be87438157295b8d6421a82df3 100644 (file)
@@ -109,6 +109,64 @@ function textareaKeydown(target, event) {
 
 
 
+/** Check whether the query will be executed with index
+* @param HTMLFormElement
+*/
+function selectFieldChange(form) {
+       var ok = (function () {
+               var inputs = form.getElementsByTagName('input');
+               for (var i=0; i < inputs.length; i++) {
+                       if (inputs[i].value && /^fulltext/.test(inputs[i].name)) {
+                               return true;
+                       }
+               }
+               var ok = form.limit.value;
+               var selects = form.getElementsByTagName('select');
+               var group = false;
+               var columns = {};
+               for (var i=0; i < selects.length; i++) {
+                       var select = selects[i];
+                       var col = selectValue(select);
+                       var match = /^(where.+)col\]/.exec(select.name);
+                       if (match) {
+                               var op = selectValue(form[match[1] + 'op]']);
+                               var val = form[match[1] + 'val]'].value;
+                               if (col in indexColumns && (!/LIKE|REGEXP/.test(op) || (op == 'LIKE' && val.charAt(0) != '%'))) {
+                                       return true;
+                               } else if (col || val) {
+                                       ok = false;
+                               }
+                       }
+                       if ((match = /^(columns.+)fun\]/.exec(select.name))) {
+                               if (/^(avg|count|count distinct|group_concat|max|min|sum)$/.test(col)) {
+                                       group = true;
+                               }
+                               var val = selectValue(form[match[1] + 'col]']);
+                               if (val) {
+                                       columns[col && col != 'count' ? '' : val] = 1;
+                               }
+                       }
+                       if (col && /^order/.test(select.name)) {
+                               if (!(col in indexColumns)) {
+                                        ok = false;
+                               }
+                               break;
+                       }
+               }
+               if (group) {
+                       for (var col in columns) {
+                               if (!(col in indexColumns)) {
+                                       ok = false;
+                               }
+                       }
+               }
+               return ok;
+       })();
+       setHtml('noindex', (ok ? '' : '!'));
+}
+
+
+
 var added = '.', rowCount;
 
 /** Check if val is equal to a-delimiter-b where delimiter is '_', '' or big letter
index 5471d34d9396198608ea7c8db7bd5be4e57a5465..8afa5d506c470f955da7a8c8f17cf71cd5c936a6 100644 (file)
@@ -220,62 +220,6 @@ function selectAddRow(field) {
        field.parentNode.parentNode.appendChild(row);
 }
 
-/** Check whether the query will be executed with index
-* @param HTMLFormElement
-*/
-function selectFieldChange(form) {
-       var ok = (function () {
-               var inputs = form.getElementsByTagName('input');
-               for (var i=0; i < inputs.length; i++) {
-                       if (inputs[i].value && /^fulltext/.test(inputs[i].name)) {
-                               return true;
-                       }
-               }
-               var ok = form.limit.value;
-               var selects = form.getElementsByTagName('select');
-               var group = false;
-               var columns = {};
-               for (var i=0; i < selects.length; i++) {
-                       var select = selects[i];
-                       var col = selectValue(select);
-                       var match = /^(where.+)col\]/.exec(select.name);
-                       if (match) {
-                               var op = selectValue(form[match[1] + 'op]']);
-                               var val = form[match[1] + 'val]'].value;
-                               if (col in indexColumns && (!/LIKE|REGEXP/.test(op) || (op == 'LIKE' && val.charAt(0) != '%'))) {
-                                       return true;
-                               } else if (col || val) {
-                                       ok = false;
-                               }
-                       }
-                       if ((match = /^(columns.+)fun\]/.exec(select.name))) {
-                               if (/^(avg|count|count distinct|group_concat|max|min|sum)$/.test(col)) {
-                                       group = true;
-                               }
-                               var val = selectValue(form[match[1] + 'col]']);
-                               if (val) {
-                                       columns[col && col != 'count' ? '' : val] = 1;
-                               }
-                       }
-                       if (col && /^order/.test(select.name)) {
-                               if (!(col in indexColumns)) {
-                                        ok = false;
-                               }
-                               break;
-                       }
-               }
-               if (group) {
-                       for (var col in columns) {
-                               if (!(col in indexColumns)) {
-                                       ok = false;
-                               }
-                       }
-               }
-               return ok;
-       })();
-       setHtml('noindex', (ok ? '' : '!'));
-}
-
 
 
 /** Toggles column context menu
@@ -302,7 +246,7 @@ function selectSearch(name) {
        var divs = el.getElementsByTagName('div');
        for (var i=0; i < divs.length; i++) {
                var div = divs[i];
-               if (selectValue(div.firstChild) == name) {
+               if (/select/i.test(div.firstChild.tagName) && selectValue(div.firstChild) == name) {
                        break;
                }
        }
index 0d171ab152dc0d5b889d2c388df56a647327db0b..c89151f5d212fcb6aa2787b71c0a51d0312256e5 100644 (file)
@@ -193,7 +193,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
        
        function selectSearchPrint($where, $columns, $indexes) {
                $where = (array) $_GET["where"];
-               echo '<fieldset><legend>' . lang('Search') . "</legend><div>\n";
+               echo '<fieldset id="fieldset-search"><legend>' . lang('Search') . "</legend><div>\n";
                $keys = array();
                foreach ($where as $key => $val) {
                        $keys[$val["col"]] = $key;
index 662c45f462753429c70ee43d9739df3859ee3776..d92fe8b92438473cf2afdbb99ede769420509857 100644 (file)
@@ -3,6 +3,9 @@
 function bodyLoad(version) {
 }
 
+function selectFieldChange(form) {
+}
+
 function whisperClick(event, field) {
        var el = event.target || event.srcElement;
        if (/^a$/i.test(el.tagName) && !(event.button || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey)) {