Эх сурвалжийг харах

HUE-3619 [editor] Fix HiveHighlightRules js error from query history

Johan Ahlen 9 жил өмнө
parent
commit
2a2b66a

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

@@ -3721,25 +3721,26 @@
 
   ko.bindingHandlers.highlight = {
     update: function (element, valueAccessor, allBindingsAccessor) {
-
       var value = ko.unwrap(valueAccessor());
-
       var options = ko.unwrap(allBindingsAccessor());
 
-      if (value !== undefined) { // allows highlighting static code
-
-        window.setTimeout(function () {
+      if (typeof value !== 'undefined') { // allows highlighting static code
+        ace.require([
+          'ace/mode/impala_highlight_rules',
+          'ace/mode/hive_highlight_rules',
+          'ace/tokenizer',
+          'ace/layer/text'
+        ], function (impalaRules, hiveRules, tokenizer, text) {
           var res = [];
 
-          var Tokenizer = ace.require('ace/tokenizer').Tokenizer;
+          var Tokenizer = tokenizer.Tokenizer;
           var Rules;
           if (options.flavor() == 'impala') {
-            Rules = ace.require('ace/mode/impala_highlight_rules').ImpalaHighlightRules;
-          }
-          else {
-            Rules = ace.require('ace/mode/hive_highlight_rules').HiveHighlightRules;
+            Rules = impalaRules.ImpalaHighlightRules;
+          } else {
+            Rules = hiveRules.HiveHighlightRules;
           }
-          var Text = ace.require('ace/layer/text').Text;
+          var Text = text.Text;
 
           var tok = new Tokenizer(new Rules().getRules());
           var lines = value.split('\n');
@@ -3753,15 +3754,12 @@
             }
 
             res.push('<div class="ace_line pull-left">' + renderedTokens.join('') + ' </div>');
-          });
-
+          })
 
           element.innerHTML = '<div class="ace_editor ace-hue"><div class="ace_layer" style="position: static;">' + res.join('') + '</div></div>';
-        }, 0)
+        });
       }
-
     }
-
   };
 
 }));

+ 2 - 0
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -132,6 +132,8 @@ from notebook.conf import ENABLE_QUERY_BUILDER
 <script src="${ static('desktop/ext/js/medium-editor.min.js') }" type="text/javascript" charset="utf-8"></script>
 
 <script src="${ static('desktop/js/ace/ace.js') }"></script>
+<script src="${ static('desktop/js/ace/mode-impala.js') }"></script>
+<script src="${ static('desktop/js/ace/mode-hive.js') }"></script>
 <script src="${ static('desktop/js/ace/ext-language_tools.js') }"></script>
 <script src="${ static('desktop/js/ace.extended.js') }"></script>