Browse Source

HUE-4353 [search] Typing in the search bar always redirect to the end of the input

Enrico Berti 9 years ago
parent
commit
a3153f4

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

@@ -272,7 +272,7 @@ ${ commonheader(_('Search'), "search", user, "80px") | n,unicode }
   <h4 data-bind="text: collection.label"></h4>
   <form class="form-search" data-bind="submit: searchBtn">
   <span data-bind="foreach: query.qs">
-    <input data-bind="clearable: q, typeahead: { target: q, source: $root.collection.template.fieldsNames, multipleValues: true, multipleValuesSeparator: ':', extraKeywords: 'AND OR TO', completeSolrRanges: true }, css:{'input-xlarge': $root.query.qs().length == 1, 'input-medium': $root.query.qs().length < 4, 'input-small': $root.query.qs().length >= 4}" maxlength="4096" type="text" class="search-query">
+    <input data-bind="clearable: q, valueUpdate:'afterkeydown', typeahead: { target: q, source: $root.collection.template.fieldsNames, multipleValues: true, multipleValuesSeparator: ':', extraKeywords: 'AND OR TO', completeSolrRanges: true }, css:{'input-xlarge': $root.query.qs().length == 1, 'input-medium': $root.query.qs().length < 4, 'input-small': $root.query.qs().length >= 4}" maxlength="4096" type="text" class="search-query">
     <!-- ko if: $parent.query.qs().length > 1 -->
     <div class="pointer muted link" data-bind="click: $root.query.removeQ"><i class="fa fa-minus"></i></div>
     <!-- /ko -->

+ 10 - 6
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -1699,7 +1699,9 @@
       }
     },
     update: function (element, valueAccessor, allBindingsAccessor) {
-      $(element).val(ko.unwrap(valueAccessor()));
+      if (!$(element).is(':focus')) {
+        $(element).val(ko.unwrap(valueAccessor()));
+      }
       if ($(element).val() === '') {
         $(element).removeClass('x');
       }
@@ -1996,11 +1998,13 @@
     update: function (element, valueAccessor) {
       var elem = $(element);
       var valueAccessor = valueAccessor();
-      if (typeof valueAccessor.target == "function") {
-        elem.val(valueAccessor.target());
-      }
-      else {
-        elem.val(valueAccessor.target);
+      if (typeof valueAccessor.completeSolrRanges === 'undefined') {
+        if (typeof valueAccessor.target == "function") {
+          elem.val(valueAccessor.target());
+        }
+        else {
+          elem.val(valueAccessor.target);
+        }
       }
       if (valueAccessor.forceUpdateSource) {
         element.typeahead.data('typeahead').source = function () {