浏览代码

HUE-2173 [search] Fix pre-population of the field chooser

Enrico Berti 9 年之前
父节点
当前提交
7b28677
共有 2 个文件被更改,包括 9 次插入12 次删除
  1. 9 11
      apps/search/src/search/static/search/js/search.ko.js
  2. 0 1
      apps/search/src/search/templates/search.mako

+ 9 - 11
apps/search/src/search/static/search/js/search.ko.js

@@ -930,7 +930,6 @@ var Collection = function (vm, collection) {
   self.template.fieldsModalType = ko.observable(""); // For UI
   self.template.fieldsAttributesFilter = ko.observable(""); // For UI
 
-  self.template.filteredModalFields = ko.observableArray();
   self.template.filteredAttributeFieldsAll = ko.observable(true);
   self.template.filteredAttributeFields = ko.computed(function() {
     var _fields = [];
@@ -971,16 +970,15 @@ var Collection = function (vm, collection) {
     });
   });
 
-  self.template.fieldsModalFilter.subscribe(function(value) {
-    var _fields = [];
-    var _availableFields = self.template.availableWidgetFields();
-
-    $.each(_availableFields, function (index, field) {
-      if (self.template.fieldsModalFilter() == "" || field.name().toLowerCase().indexOf(self.template.fieldsModalFilter().toLowerCase()) > -1){
-        _fields.push(field);
-      }
-    });
-    self.template.filteredModalFields(_fields);
+  self.template.filteredModalFields = ko.pureComputed(function () {
+    var filter = self.template.fieldsModalFilter();
+    if (!filter) {
+      return self.template.availableWidgetFields();
+    } else {
+      return ko.utils.arrayFilter(self.template.availableWidgetFields(), function (field) {
+        return field.name().toLowerCase().indexOf(filter.toLowerCase()) > -1;
+      });
+    }
   });
 
   self.switchCollection = function() { // Long term would be to reload the page

+ 0 - 1
apps/search/src/search/templates/search.mako

@@ -3023,7 +3023,6 @@ $(document).ready(function () {
     if (["resultset-widget", "html-resultset-widget", "filter-widget", "leafletmap-widget"].indexOf(widget.widgetType()) == -1) {
       viewModel.collection.template.fieldsModalFilter("");
       viewModel.collection.template.fieldsModalType(widget.widgetType());
-      viewModel.collection.template.fieldsModalFilter.valueHasMutated();
       $('#addFacetInput').typeahead({
         'source': viewModel.collection.template.availableWidgetFieldsNames(),
         'updater': function (item) {