فهرست منبع

HUE-6132 [assistant] Support a list of hints

For now pickup the first one for the top alert.
Romain Rigaux 8 سال پیش
والد
کامیت
fe5739e487

+ 5 - 5
desktop/libs/notebook/src/notebook/connectors/hiveserver2.py

@@ -536,11 +536,11 @@ DROP TABLE IF EXISTS `%(table)s`;
     data = api.query_risk(query=query)
     data = data.get(snippet['type'] + 'Risk', {})
 
-    return {
-      'risk': data.get('risk'),
-      'riskAnalysis': data.get('riskAnalysis'),
-      'riskRecommendation': data.get('riskRecommendation')
-    }
+    return [{
+      'risk': risk.get('risk'),
+      'riskAnalysis': risk.get('riskAnalysis'),
+      'riskRecommendation': risk.get('riskRecommendation')
+    } for risk in data]
 
 
   def statement_compatibility(self, notebook, snippet, source_platform, target_platform):

+ 4 - 4
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -826,12 +826,12 @@ var EditorViewModel = (function() {
       };
     };
 
-    self.complexity = ko.observable();
+    self.complexity = ko.observableArray();
     self.hasComplexity = ko.computed(function () {
-      return self.complexity();
+      return self.complexity().length > 0;
     });
 
-    self.suggestion = ko.observable(typeof snippet.complexity != "undefined" && snippet.complexity != null ? snippet.complexity : '');
+    self.suggestion = ko.observable('');
     self.hasSuggestion = ko.observable(null);
 
     self.complexityCheckRunning = ko.observable(false);
@@ -901,7 +901,7 @@ var EditorViewModel = (function() {
           },
           success: function(data) {
             if (data.status == 0) {
-              self.complexity(ko.mapping.fromJS(data.query_complexity));
+              self.complexity(data.query_complexity);
             } else {
               // TODO: Silence errors
               $(document).trigger('error', data.message);

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

@@ -1101,7 +1101,7 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
       <!-- /ko -->
     <!-- /ko -->
     <!-- ko if: hasComplexity() && hasSuggestion() && compatibilitySourcePlatform() === type() && compatibilityTargetPlatform() === type() && suggestion() && !suggestion().parseError() -->
-      <!-- ko if: complexity() && complexity().risk() && (complexity().risk().length === 0 || complexity().risk() === 'low') -->
+      <!-- ko if: complexity()[0].risk && (complexity()[0].risk.length === 0 || complexity()[0].risk === 'low') -->
         <div class="round-icon success" data-bind="click: function(){ showOptimizer(! showOptimizer()) }, attr: { 'title': showOptimizer() ? '${ _ko('Close Validator') }' : '${ _ko('Open Validator') }'}">
           <i class="fa fa-check"></i>
         </div>
@@ -1109,12 +1109,12 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
         <span class="optimizer-explanation alert-success alert-neutral">${ _('Query validated.') }</span>
         <!-- /ko -->
       <!-- /ko -->
-      <!-- ko if: complexity() && complexity().risk() && complexity().risk() === 'high' -->
+      <!-- ko if: complexity()[0].risk === 'high' -->
         <div class="round-icon error" data-bind="click: function(){ showOptimizer(! showOptimizer()) }">
           <i class="fa fa-exclamation"></i>
         </div>
         <!-- ko if: showOptimizer -->
-        <span class="optimizer-explanation alert-error alert-neutral"><strong data-bind="text: complexity().riskAnalysis"></strong> <span data-bind="text: complexity().riskRecommendation"></span></span>
+        <span class="optimizer-explanation alert-error alert-neutral"><strong data-bind="text: complexity()[0].riskAnalysis"></strong> <span data-bind="text: complexity()[0].riskRecommendation"></span></span>
         <!-- /ko -->
       <!-- /ko -->
     <!-- /ko -->