Pārlūkot izejas kodu

HUE-2364 [beeswax] SQL of saved or history queries are not loaded back in FF

It now waits for codeMirror to be initialized before trying to set the value
Enrico Berti 11 gadi atpakaļ
vecāks
revīzija
2a45d5f
1 mainītis faili ar 15 papildinājumiem un 11 dzēšanām
  1. 15 11
      apps/beeswax/src/beeswax/templates/execute.mako

+ 15 - 11
apps/beeswax/src/beeswax/templates/execute.mako

@@ -2595,12 +2595,7 @@ function loadDesign(design_id) {
 
   $(document).one('fetched.design', saveLastUsedDatabase);
 
-  var codeMirrorSubscription = viewModel.design.query.value.subscribe(function(value) {
-    viewModel.queryEditorBlank(true);
-    codeMirror.setValue(value);
-    codeMirrorSubscription.dispose();
-  });
-
+  setupCodeMirrorSubscription();
   loadEditor();
 }
 
@@ -2612,13 +2607,22 @@ function loadQueryHistory(query_history_id) {
 
   $(document).one('fetched.query', saveLastUsedDatabase);
 
-  var codeMirrorSubscription = viewModel.design.query.value.subscribe(function(value) {
+  setupCodeMirrorSubscription();
+  loadEditor();
+}
+
+function setupCodeMirrorSubscription() {
+  var codeMirrorSubscription = viewModel.design.query.value.subscribe(function (value) {
     viewModel.queryEditorBlank(true);
-    codeMirror.setValue(value);
-    codeMirrorSubscription.dispose();
+    var _waitForCodemirrorInit = -1;
+    _waitForCodemirrorInit = window.setInterval(function () {
+      if (typeof codeMirror != "undefined") {
+        codeMirror.setValue(value);
+        codeMirrorSubscription.dispose();
+        window.clearInterval(_waitForCodemirrorInit);
+      }
+    }, 100);
   });
-
-  loadEditor();
 }
 
 // Knockout