瀏覽代碼

HUE-5952 [assist] Show a message in the search autocomplete on error if a reason is given

Johan Ahlen 8 年之前
父節點
當前提交
0bd166f

+ 5 - 0
desktop/core/src/desktop/static/desktop/js/apiHelper.js

@@ -1682,6 +1682,11 @@ var ApiHelper = (function () {
     }).done(function (data) {
       if (data.status === 0 && !self.successResponseIsError(data)) {
         options.successCallback(data);
+      } else if (data.status === -2 && typeof data.message !== 'undefined' && typeof data.message.message !== 'undefined') {
+        options.errorCallback({
+          source: 'navigator',
+          message: data.message.message
+        })
       } else {
         self.assistErrorCallback(options)(data);
       }

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

@@ -146,13 +146,13 @@
                   .addClass(this.options.classPrefix + 'autocomplete-item')
                   .appendTo(ul)
                   .data( "ui-autocomplete-item", item );
-              ko.applyBindings(item.data, $li[0]);
+              ko.applyBindings(item, $li[0]);
             } else 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]);
+              ko.applyBindings(item, $li[0]);
             } else if (item.divider) {
               $('<li/>').addClass(this.options.classPrefix + 'autocomplete-divider').appendTo(ul);
             } else {

+ 7 - 3
desktop/core/src/desktop/templates/assist_search.mako

@@ -50,7 +50,7 @@ from notebook.conf import ENABLE_QUERY_BUILDER
 
   <script type="text/html" id="nav-search-autocomp-error">
     <div class="nav-autocomplete-item-link" style="height: 30px;">
-      <div class="nav-autocomplete-empty">${ _('Error loading suggestions, see log for details.') }</div>
+      <div class="nav-autocomplete-empty" data-bind="text: typeof message !== 'undefined' ? message : '${ _ko("Error loading suggestions, see log for details.") }'"></div>
     </div>
   </script>
 
@@ -386,8 +386,12 @@ from notebook.conf import ENABLE_QUERY_BUILDER
               callback(values);
             },
             silenceErrors: true,
-            errorCallback: function () {
-              callback([{ error: true }]);
+            errorCallback: function (data) {
+              if (typeof data.message !== 'undefined' && data.source === 'navigator') {
+                callback([{ error: true, message: data.message }]);
+              } else {
+                callback([{ error: true }]);
+              }
             }
           });
         };