Selaa lähdekoodia

HUE-5148 [metadata] Show message when no autocomplete result is found for nav search

Johan Ahlen 9 vuotta sitten
vanhempi
commit
be5216f

+ 11 - 3
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -44,10 +44,12 @@
         options.source = function (request, callback) {
           oldSource(request, function (values) {
             callback(values);
-            var count = options.realCountCallback ? options.realCountCallback() : values.filter(function (value) { return ! value.divider }).length;
             var $menu = $($element.data('custom-hueAutocomplete').menu.element);
             $menu.children('.autocomplete-count').remove();
-            $('<div>').addClass('autocomplete-count').text('(' + count + ')').appendTo($menu);
+            var count = options.realCountCallback ? options.realCountCallback() : values.filter(function (value) { return ! value.divider && ! value.noMatch }).length;
+            if (count > 0) {
+              $('<div>').addClass('autocomplete-count').text('(' + count + ')').appendTo($menu);
+            }
           });
         }
       }
@@ -55,7 +57,13 @@
       if (typeof $().hueAutocomplete === 'undefined') {
         $.widget('custom.hueAutocomplete', $.ui.autocomplete, {
           _renderItemData: function( ul, item ) {
-            if (item.divider) {
+            if (item.noMatch && this.options.noMatchTemplate) {
+              var $li = $('<li data-bind="template: { name: \'' + this.options.noMatchTemplate + '\' }">')
+                  .addClass(this.options.classPrefix + 'autocomplete-item')
+                  .appendTo(ul)
+                  .data( "ui-autocomplete-item", item );
+              ko.applyBindings(item.data, $li[0]);
+            } else if (item.divider) {
               $('<li/>').addClass(this.options.classPrefix + 'autocomplete-divider').appendTo(ul);
             } else {
               var $li = $('<li data-bind="template: { name: \'' + this.options.itemTemplate + '\', data: $data }">')

+ 10 - 0
desktop/core/src/desktop/templates/assist.mako

@@ -949,6 +949,12 @@ from metadata.conf import has_navigator
     </a>
   </script>
 
+  <script type="text/html" id="nav-search-autocomp-no-match">
+    <div class="nav-autocomplete-item-link" style="height: 30px;">
+      <div style="font-size: 12px; margin: 6px 8px; color: #737373; font-style: italic;">${ _('No match found') }</div>
+    </div>
+  </script>
+
   <script type="text/html" id="assist-panel-navigator-search">
     <!-- ko if: navigatorEnabled -->
       <div class="nav-assist-search">
@@ -958,6 +964,7 @@ from metadata.conf import has_navigator
             addCount: true,
             realCountCallback: navAutocompleteLatestCount,
             itemTemplate: 'nav-search-autocomp-item',
+            noMatchTemplate: 'nav-search-autocomp-no-match',
             classPrefix: 'nav-',
             showOnFocus: true,
             onEnter: performSearch,
@@ -1680,6 +1687,9 @@ from metadata.conf import has_navigator
               if (values.length > 0 && values[values.length - 1].divider) {
                 values.pop();
               }
+              if (values.length === 0) {
+                values.push({ noMatch: true });
+              }
               callback(values);
             },
             silenceErrors: true,