소스 검색

HUE-3804 [beeswax] Drop dependency on notebook.ko.js

The autocompleter needs a representation of a snippet to work and it was using a notebook instance for this purpose. To prevent the old editor from failing when the notebook view model is changed I've dropped the dependency and instead created dummy objects.
Johan Ahlen 10 년 전
부모
커밋
d1b254b
1개의 변경된 파일34개의 추가작업 그리고 5개의 파일을 삭제
  1. 34 5
      apps/beeswax/src/beeswax/templates/execute.mako

+ 34 - 5
apps/beeswax/src/beeswax/templates/execute.mako

@@ -809,7 +809,6 @@ ${ commonshare() | n,unicode }
 <script src="${ static('desktop/js/assist/assistDbSource.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/fileBrowser/hueFileEntry.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/autocompleter.js') }" type="text/javascript" charset="utf-8"></script>
-<script src="${ static('notebook/js/notebook.ko.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('beeswax/js/beeswax.vm.js') }"></script>
 <script src="${ static('desktop/js/share.vm.js') }"></script>
 <script src="${ static('desktop/js/vkbeautify.js') }" type="text/javascript" charset="utf-8"></script>
@@ -1193,10 +1192,27 @@ var i18n = {
   errorLoadingDatabases: "${ _('There was a problem loading the databases') }"
 };
 
-var editorViewModel = new EditorViewModel([], [], editorViewModelOptions, i18n);
-var notebook = editorViewModel.newNotebook();
-var snippet = notebook.newSnippet(snippetType);
-var apiHelper = snippet.getApiHelper();
+var apiHelper = ApiHelper.getInstance({
+  user: HIVE_AUTOCOMPLETE_USER,
+  i18n: i18n
+});
+
+var editorViewModel = {
+  sqlSourceTypes: [{
+    type: snippetType,
+    name: HIVE_AUTOCOMPLETE_APP == "impala" ? "Impala" : "Hive"
+  }]
+};
+
+var snippet = {
+  type: ko.observable(snippetType),
+  isSqlDialect: ko.observable(true),
+  getApiHelper: function() {
+    return apiHelper;
+  },
+  database: ko.observable()
+};
+
 var autocompleter = new Autocompleter({
   snippet: snippet,
   user: HIVE_AUTOCOMPLETE_USER,
@@ -2827,6 +2843,19 @@ function setupCodeMirrorSubscription() {
 viewModel = new BeeswaxViewModel("${app_name}", apiHelper);
 ko.applyBindings(viewModel, $("#beeswax-execute")[0]);
 
+var handleAssistSelection = function (databaseDef) {
+  if (databaseDef.source === snippetType && snippet.database() !== databaseDef.name) {
+    snippet.database(databaseDef.name);
+  }
+};
+
+huePubSub.subscribe("assist.database.set", handleAssistSelection);
+huePubSub.subscribe("assist.database.selected", handleAssistSelection);
+
+if (! snippet.database()) {
+  huePubSub.publish("assist.get.database", snippetType);
+}
+
 shareViewModel = initSharing("#documentShareModal");
 shareViewModel.setDocId(${doc_id});