浏览代码

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});