浏览代码

HUE-5092 [editor] Column search just by type or name

Enrico Berti 9 年之前
父节点
当前提交
37d3df9

+ 22 - 1
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -69,7 +69,28 @@ var EditorViewModel = (function() {
         if (typeof item.originalIndex === 'undefined') {
           item.originalIndex = i;
         }
-        return item.name !== '' && (item.name.toLowerCase().indexOf(self.metaFilter().toLowerCase()) > -1 || item.type.toLowerCase().indexOf(self.metaFilter().toLowerCase()) > -1);
+        var metaFilterValue = self.metaFilter().toLowerCase();
+        var metaFilterValues = metaFilterValue.split(' ');
+        var toBeReturned = item.name !== '';
+        var hasPartial = false;
+        metaFilterValues.forEach(function (partial) {
+          if (partial.indexOf('column:') > -1) {
+            partial = $.trim(partial.split('column:')[1]);
+            toBeReturned = toBeReturned && item.name.toLowerCase().indexOf(partial) > -1;
+            hasPartial = true;
+          }
+          if (partial.indexOf('type:') > -1) {
+            partial = $.trim(partial.split('type:')[1]);
+            toBeReturned = toBeReturned && item.type.toLowerCase().indexOf(partial) > -1;
+            hasPartial = true;
+          }
+          if (partial.indexOf('column:') === -1 && partial.indexOf('type:') === -1) {
+            if (!hasPartial) {
+              toBeReturned = toBeReturned && (item.name.toLowerCase().indexOf(partial) > -1 || item.type.toLowerCase().indexOf(partial) > -1);
+            }
+          }
+        });
+        return toBeReturned;
       });
     });
 

+ 1 - 1
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -1740,7 +1740,7 @@ ${ hueIcons.symbols() }
           </th>
         </tr>
         <tr data-bind="visible: result.isMetaFilterVisible">
-          <td colspan="3"><input class="meta-filter" type="text" data-bind="blurHide: result.isMetaFilterVisible, clearable: result.metaFilter, valueUpdate:'afterkeydown'" placeholder="${ _('Filter columns...') }" style="width: 257px" /></td>
+          <td colspan="3"><input class="meta-filter" type="text" data-bind="blurHide: result.isMetaFilterVisible, clearable: result.metaFilter, valueUpdate:'afterkeydown'" placeholder="${ _('Filter columns...') }" title="${ _('Type column:xxx or type:yyy for specific filters.') }" style="width: 257px" /></td>
         </tr>
       </thead>
       <tbody class="unstyled filtered-meta" data-bind="foreach: result.filteredMeta">