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

HUE-3722 [core] Add basic jasmine tests for assistHelper and rename to apiHelper

Johan Ahlen 9 жил өмнө
parent
commit
6b02353
30 өөрчлөгдсөн 237 нэмэгдсэн , 198 устгасан
  1. 1 1
      apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js
  2. 5 5
      apps/beeswax/src/beeswax/templates/create_database.mako
  3. 4 4
      apps/beeswax/src/beeswax/templates/create_table_manually.mako
  4. 4 4
      apps/beeswax/src/beeswax/templates/execute.mako
  5. 4 4
      apps/beeswax/src/beeswax/templates/import_wizard_choose_delimiter.mako
  6. 4 4
      apps/beeswax/src/beeswax/templates/import_wizard_choose_file.mako
  7. 4 4
      apps/beeswax/src/beeswax/templates/import_wizard_define_columns.mako
  8. 25 25
      apps/metastore/src/metastore/static/metastore/js/metastore.ko.js
  9. 4 4
      apps/metastore/src/metastore/templates/describe_partitions.mako
  10. 2 2
      apps/metastore/src/metastore/templates/metastore.mako
  11. 4 4
      apps/pig/src/pig/templates/app.mako
  12. 33 33
      desktop/core/src/desktop/static/desktop/js/apiHelper.js
  13. 1 1
      desktop/core/src/desktop/static/desktop/js/assist/assistDbEntry.js
  14. 5 5
      desktop/core/src/desktop/static/desktop/js/assist/assistDbSource.js
  15. 4 4
      desktop/core/src/desktop/static/desktop/js/assist/assistHdfsEntry.js
  16. 7 7
      desktop/core/src/desktop/static/desktop/js/assist/tableStats.js
  17. 3 3
      desktop/core/src/desktop/static/desktop/js/fileBrowser/hueDocument.js
  18. 10 10
      desktop/core/src/desktop/static/desktop/js/fileBrowser/hueFileEntry.js
  19. 1 1
      desktop/core/src/desktop/static/desktop/js/hdfsAutocompleter.js
  20. 6 6
      desktop/core/src/desktop/static/desktop/js/home2.vm.js
  21. 5 5
      desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js
  22. 12 12
      desktop/core/src/desktop/static/desktop/js/sqlAutocompleter.js
  23. 32 0
      desktop/core/src/desktop/static/desktop/spec/apiHelperSpec.js
  24. 4 4
      desktop/core/src/desktop/static/desktop/spec/hdfsAutocompleterSpec.js
  25. 5 5
      desktop/core/src/desktop/static/desktop/spec/sqlAutocompleterSpec.js
  26. 28 28
      desktop/core/src/desktop/templates/assist.mako
  27. 1 1
      desktop/core/src/desktop/templates/common_header.mako
  28. 2 1
      desktop/core/src/desktop/templates/jasmine.mako
  29. 1 1
      desktop/core/src/desktop/templates/table_stats.mako
  30. 16 10
      desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

+ 1 - 1
apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js

@@ -14,7 +14,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-function BeeswaxViewModel(server, assistHelper) {
+function BeeswaxViewModel(server, apiHelper) {
   var self = this;
 
   var DESIGN_DEFAULTS = {

+ 5 - 5
apps/beeswax/src/beeswax/templates/create_database.mako

@@ -238,24 +238,24 @@ ${ assist.assistPanel() }
   require([
     "knockout",
     "ko.charts",
-    "desktop/js/assist/assistHelper",
+    "desktop/js/apiHelper",
     "assistPanel",
     "tableStats",
     "knockout-mapping",
     "knockout-sortable",
     "ko.editable",
     "ko.hue-bindings"
-  ], function (ko, charts, AssistHelper) {
+  ], function (ko, charts, ApiHelper) {
 
     ko.options.deferUpdates = true;
 
     function MetastoreViewModel(options) {
       var self = this;
-      self.assistHelper = AssistHelper.getInstance(options);
+      self.apiHelper = ApiHelper.getInstance(options);
 
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable();
-      self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+      self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
 
       huePubSub.subscribe("assist.table.selected", function (tableDef) {
@@ -275,7 +275,7 @@ ${ assist.assistPanel() }
           errorLoadingDatabases: "${ _('There was a problem loading the databases') }",
           errorLoadingTablePreview: "${ _('There was a problem loading the table preview.') }"
         }
-      }
+      };
 
       var viewModel = new MetastoreViewModel(options);
 

+ 4 - 4
apps/beeswax/src/beeswax/templates/create_table_manually.mako

@@ -547,23 +547,23 @@ ${ assist.assistPanel() }
   require([
     "knockout",
     "ko.charts",
-    "desktop/js/assist/assistHelper",
+    "desktop/js/apiHelper",
     "assistPanel",
     "tableStats",
     "knockout-mapping",
     "knockout-sortable",
     "ko.editable",
     "ko.hue-bindings"
-  ], function (ko, charts, AssistHelper) {
+  ], function (ko, charts, ApiHelper) {
 
     ko.options.deferUpdates = true;
 
     function MetastoreViewModel(options) {
       var self = this;
-      self.assistHelper = AssistHelper.getInstance(options);
+      self.apiHelper = ApiHelper.getInstance(options);
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable();
-      self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+      self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
 
       huePubSub.subscribe("assist.table.selected", function (tableDef) {

+ 4 - 4
apps/beeswax/src/beeswax/templates/execute.mako

@@ -803,7 +803,7 @@ ${ commonshare() | n,unicode }
 <script src="${ static('desktop/js/sqlAutocompleter.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/hdfsAutocompleter.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/assist/tableStats.js') }" type="text/javascript" charset="utf-8"></script>
-<script src="${ static('desktop/js/assist/assistHelper.js') }" type="text/javascript" charset="utf-8"></script>
+<script src="${ static('desktop/js/apiHelper.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/assist/assistHdfsEntry.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/assist/assistDbEntry.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/assist/assistDbSource.js') }" type="text/javascript" charset="utf-8"></script>
@@ -1196,7 +1196,7 @@ var i18n = {
 var editorViewModel = new EditorViewModel([], editorViewModelOptions, i18n);
 var notebook = editorViewModel.newNotebook();
 var snippet = notebook.newSnippet(snippetType);
-var assistHelper = snippet.getAssistHelper();
+var apiHelper = snippet.getApiHelper();
 var autocompleter = new Autocompleter({
   snippet: snippet,
   user: HIVE_AUTOCOMPLETE_USER,
@@ -1204,7 +1204,7 @@ var autocompleter = new Autocompleter({
   optEnabled: false
 });
 
-var totalStorageUserPrefix = assistHelper.getTotalStorageUserPrefix(snippetType);
+var totalStorageUserPrefix = apiHelper.getTotalStorageUserPrefix(snippetType);
 
 var escapeOutput = function (str) {
   return $('<span>').text(str).html().trim();
@@ -2824,7 +2824,7 @@ function setupCodeMirrorSubscription() {
 }
 
 // Knockout
-viewModel = new BeeswaxViewModel("${app_name}", assistHelper);
+viewModel = new BeeswaxViewModel("${app_name}", apiHelper);
 ko.applyBindings(viewModel, $("#beeswax-execute")[0]);
 
 shareViewModel = initSharing("#documentShareModal");

+ 4 - 4
apps/beeswax/src/beeswax/templates/import_wizard_choose_delimiter.mako

@@ -191,23 +191,23 @@ ${ assist.assistPanel() }
   require([
     "knockout",
     "ko.charts",
-    "desktop/js/assist/assistHelper",
+    "desktop/js/apiHelper",
     "assistPanel",
     "tableStats",
     "knockout-mapping",
     "knockout-sortable",
     "ko.editable",
     "ko.hue-bindings"
-  ], function (ko, charts, AssistHelper) {
+  ], function (ko, charts, ApiHelper) {
 
     ko.options.deferUpdates = true;
 
     function MetastoreViewModel(options) {
       var self = this;
-      self.assistHelper = AssistHelper.getInstance(options);
+      self.apiHelper = ApiHelper.getInstance(options);
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable();
-      self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+      self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
 
       huePubSub.subscribe("assist.table.selected", function (tableDef) {

+ 4 - 4
apps/beeswax/src/beeswax/templates/import_wizard_choose_file.mako

@@ -213,23 +213,23 @@ ${ assist.assistPanel() }
   require([
     "knockout",
     "ko.charts",
-    "desktop/js/assist/assistHelper",
+    "desktop/js/apiHelper",
     "assistPanel",
     "tableStats",
     "knockout-mapping",
     "knockout-sortable",
     "ko.editable",
     "ko.hue-bindings"
-  ], function (ko, charts, AssistHelper) {
+  ], function (ko, charts, ApiHelper) {
 
     ko.options.deferUpdates = true;
 
     function MetastoreViewModel(options) {
       var self = this;
-      self.assistHelper = AssistHelper.getInstance(options);
+      self.apiHelper = ApiHelper.getInstance(options);
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable();
-      self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+      self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
 
       huePubSub.subscribe("assist.table.selected", function (tableDef) {

+ 4 - 4
apps/beeswax/src/beeswax/templates/import_wizard_define_columns.mako

@@ -225,23 +225,23 @@ ${ assist.assistPanel() }
   require([
     "knockout",
     "ko.charts",
-    "desktop/js/assist/assistHelper",
+    "desktop/js/apiHelper",
     "assistPanel",
     "tableStats",
     "knockout-mapping",
     "knockout-sortable",
     "ko.editable",
     "ko.hue-bindings"
-  ], function (ko, charts, AssistHelper) {
+  ], function (ko, charts, ApiHelper) {
 
     ko.options.deferUpdates = true;
 
     function MetastoreViewModel(options) {
       var self = this;
-      self.assistHelper = AssistHelper.getInstance(options);
+      self.apiHelper = ApiHelper.getInstance(options);
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable();
-      self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+      self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
 
       huePubSub.subscribe("assist.table.selected", function (tableDef) {

+ 25 - 25
apps/metastore/src/metastore/static/metastore/js/metastore.ko.js

@@ -18,17 +18,17 @@
   if(typeof define === "function" && define.amd) {
     define([
       'knockout',
-      'desktop/js/assist/assistHelper'
+      'desktop/js/apiHelper'
     ], factory);
   } else {
-    root.EditorViewModel = factory(ko, assistHelper);
+    root.EditorViewModel = factory(ko, apiHelper);
   }
-}(this, function (ko, AssistHelper) {
+}(this, function (ko, ApiHelper) {
 
   /**
    * @param {Object} options
    * @param {string} options.name
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {string} [options.tableName]
    * @param {string} [options.tableComment]
    * @param {Object} options.i18n
@@ -40,7 +40,7 @@
    */
   function MetastoreDatabase(options) {
     var self = this;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.i18n = options.i18n;
     self.name = options.name;
 
@@ -125,7 +125,7 @@
     }
 
     self.loading(true);
-    self.assistHelper.fetchTables({
+    self.apiHelper.fetchTables({
       sourceType: 'hive',
       databaseName: self.name,
       successCallback: function (data) {
@@ -135,7 +135,7 @@
             name: tableMeta.name,
             type: tableMeta.type,
             comment: tableMeta.comment,
-            assistHelper: self.assistHelper,
+            apiHelper: self.apiHelper,
             i18n: self.i18n,
             optimizerEnabled: optimizerEnabled
           })
@@ -228,7 +228,7 @@
 
   /**
    * @param {Object} options
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {MetastoreTable} options.metastoreTable
    */
   function MetastoreTablePartitions(options) {
@@ -237,7 +237,7 @@
     self.keys = ko.observableArray();
     self.values = ko.observableArray();
     self.metastoreTable = options.metastoreTable;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
 
     self.loaded = ko.observable(false);
     self.loading = ko.observable(true);
@@ -253,7 +253,7 @@
     if (self.loaded()) {
       return;
     }
-    self.assistHelper.fetchPartitions({
+    self.apiHelper.fetchPartitions({
       databaseName: self.metastoreTable.database.name,
       tableName: self.metastoreTable.name,
       successCallback: function (data) {
@@ -273,7 +273,7 @@
 
   /**
    * @param {Object} options
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {MetastoreTable} options.metastoreTable
    * @param {Object} options.i18n
    * @param {string} options.i18n.errorFetchingTableSample
@@ -283,7 +283,7 @@
     self.rows = ko.observableArray();
     self.headers = ko.observableArray();
     self.metastoreTable = options.metastoreTable;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.i18n = options.i18n;
 
     self.loaded = ko.observable(false);
@@ -300,7 +300,7 @@
     if (self.loaded()) {
       return;
     }
-    self.assistHelper.fetchTableSample({
+    self.apiHelper.fetchTableSample({
       sourceType: "hive",
       databaseName: self.metastoreTable.database.name,
       tableName: self.metastoreTable.name,
@@ -329,7 +329,7 @@
    * @param {string} options.name
    * @param {string} options.type
    * @param {string} options.comment
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {Object} options.i18n
    * @param {string} options.i18n.errorFetchingTableDetails
    * @param {string} options.i18n.errorFetchingTableFields
@@ -340,7 +340,7 @@
   function MetastoreTable(options) {
     var self = this;
     self.database = options.database;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.i18n = options.i18n;
     self.optimizerEnabled = options.optimizerEnabled;
     self.name = options.name;
@@ -360,12 +360,12 @@
     self.columns = ko.observableArray();
     self.favouriteColumns = ko.observableArray();
     self.samples = new MetastoreTableSamples({
-      assistHelper: self.assistHelper,
+      apiHelper: self.apiHelper,
       i18n: self.i18n,
       metastoreTable: self
     });
     self.partitions = new MetastoreTablePartitions({
-      assistHelper: self.assistHelper,
+      apiHelper: self.apiHelper,
       metastoreTable: self
     });
     self.tableDetails = ko.observable();
@@ -394,7 +394,7 @@
         return;
       }
       self.refreshingTableStats(true);
-      self.assistHelper.refreshTableStats({
+      self.apiHelper.refreshTableStats({
         tableName: self.name,
         databaseName: self.database.name,
         sourceType: "hive",
@@ -404,7 +404,7 @@
         errorCallback: function (data) {
           self.refreshingTableStats(false);
           $.jHueNotify.error(self.i18n.errorRefreshingTableStats);
-          console.error('assistHelper.refreshTableStats error');
+          console.error('apiHelper.refreshTableStats error');
           console.error(data);
         }
       })
@@ -413,7 +413,7 @@
     self.fetchFields = function () {
       var self = this;
       self.loadingColumns(true);
-      self.assistHelper.fetchFields({
+      self.apiHelper.fetchFields({
         sourceType: "hive",
         databaseName: self.database.name,
         tableName: self.name,
@@ -437,7 +437,7 @@
     self.fetchDetails = function () {
       var self = this;
       self.loadingDetails(true);
-      self.assistHelper.fetchTableDetails({
+      self.apiHelper.fetchTableDetails({
         sourceType: "hive",
         databaseName: self.database.name,
         tableName: self.name,
@@ -630,9 +630,9 @@
   function MetastoreViewModel(options) {
     var self = this;
     self.assistAvailable = ko.observable(true);
-    self.assistHelper = AssistHelper.getInstance(options);
+    self.apiHelper = ApiHelper.getInstance(options);
     self.isLeftPanelVisible = ko.observable();
-    self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+    self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
     self.optimizerEnabled = ko.observable(options.optimizerEnabled || false);
 
     self.optimizerEnabled.subscribe(function (newValue) {
@@ -675,13 +675,13 @@
         return;
       }
       self.loading(true);
-      self.assistHelper.loadDatabases({
+      self.apiHelper.loadDatabases({
         sourceType: 'hive',
         successCallback: function (databaseNames) {
           self.databases($.map(databaseNames, function (name) {
             return new MetastoreDatabase({
               name: name,
-              assistHelper: self.assistHelper,
+              apiHelper: self.apiHelper,
               i18n: self.i18n,
               optimizerEnabled: self.optimizerEnabled
             })

+ 4 - 4
apps/metastore/src/metastore/templates/describe_partitions.mako

@@ -177,23 +177,23 @@ ${ assist.assistPanel() }
   require([
     "knockout",
     "ko.charts",
-    "desktop/js/assist/assistHelper",
+    "desktop/js/apiHelper",
     "assistPanel",
     "tableStats",
     "knockout-mapping",
     "knockout-sortable",
     "ko.editable",
     "ko.hue-bindings"
-  ], function (ko, charts, AssistHelper) {
+  ], function (ko, charts, ApiHelper) {
 
     ko.options.deferUpdates = true;
 
     function PartitionViewModel(options, partition_keys_json, partition_values_json) {
       var self = this;
-      self.assistHelper = AssistHelper.getInstance(options);
+      self.apiHelper = ApiHelper.getInstance(options);
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable();
-      self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+      self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
 
       self.isLoading = ko.observable(false);

+ 2 - 2
apps/metastore/src/metastore/templates/metastore.mako

@@ -124,7 +124,7 @@ ${ assist.assistPanel() }
               tableName: table.name,
               columnName: name,
               fieldType: type,
-              assistHelper: table.assistHelper,
+              apiHelper: table.apiHelper,
               showViewMore: false
             } }"></span>
           </td>
@@ -478,7 +478,7 @@ ${ assist.assistPanel() }
                   databaseName: database.name,
                   tableName: name,
                   fieldType: type,
-                  assistHelper: assistHelper,
+                  apiHelper: apiHelper,
                   showViewMore: false
                 } }"></span></td>
               <td>

+ 4 - 4
apps/pig/src/pig/templates/app.mako

@@ -737,7 +737,7 @@ ${ commonshare() | n,unicode }
 <script src="${ static('pig/js/utils.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('pig/js/pig.ko.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/js/share.vm.js') }" type="text/javascript" charset="utf-8"></script>
-<script src="${ static('desktop/js/assist/assistHelper.js') }" type="text/javascript" charset="utf-8"></script>
+<script src="${ static('desktop/js/apiHelper.js') }" type="text/javascript" charset="utf-8"></script>
 
 <script src="${ static('desktop/ext/js/routie-0.3.0.min.js') }" type="text/javascript" charset="utf-8"></script>
 <script src="${ static('desktop/ext/js/codemirror-3.11.js') }"></script>
@@ -955,7 +955,7 @@ ${ commonshare() | n,unicode }
         CodeMirror.isHCatHint = false;
         CodeMirror.showHint(codeMirror, CodeMirror.pigHint);
       }
-    }
+    };
     codeMirror = CodeMirror(function (elt) {
       scriptEditor.parentNode.replaceChild(elt, scriptEditor);
     }, {
@@ -1030,10 +1030,10 @@ ${ commonshare() | n,unicode }
     var availableTables = '';
 
     % if autocomplete_base_url != '':
-      var assistHelper = AssistHelper.getInstance({
+      var apiHelper = ApiHelper.getInstance({
         user: '${ user }'
       });
-      assistHelper.fetchTables({
+      apiHelper.fetchTables({
         successCallback: function (data) {
           if (data && data.status == 0 && data.tables_meta) {
             availableTables = data.tables_meta.map(function (t) {

+ 33 - 33
desktop/core/src/desktop/static/desktop/js/assist/assistHelper.js → desktop/core/src/desktop/static/desktop/js/apiHelper.js

@@ -18,7 +18,7 @@
   if(typeof define === "function" && define.amd) {
     define(['knockout'], factory);
   } else {
-    root.AssistHelper = factory(ko);
+    root.ApiHelper = factory(ko);
   }
 }(this, function (ko) {
 
@@ -41,7 +41,7 @@
    *
    * @constructor
    */
-  function AssistHelper (i18n, user) {
+  function ApiHelper (i18n, user) {
     var self = this;
     self.i18n = i18n;
     self.user = user;
@@ -58,7 +58,7 @@
     });
   }
 
-  AssistHelper.prototype.hasExpired = function (timestamp) {
+  ApiHelper.prototype.hasExpired = function (timestamp) {
     return (new Date()).getTime() - timestamp > TIME_TO_LIVE_IN_MILLIS;
   };
 
@@ -66,7 +66,7 @@
    * @param {string} sourceType
    * @returns {string}
    */
-  AssistHelper.prototype.getTotalStorageUserPrefix = function (sourceType) {
+  ApiHelper.prototype.getTotalStorageUserPrefix = function (sourceType) {
     var self = this;
     return sourceType + "_" + self.user;
   };
@@ -77,7 +77,7 @@
    * @param {string} id
    * @param {*} [value] - Optional, undefined and null will remove the value
    */
-  AssistHelper.prototype.setInTotalStorage = function(owner, id, value) {
+  ApiHelper.prototype.setInTotalStorage = function(owner, id, value) {
     var self = this;
     var cachedData = $.totalStorage("hue.user.settings." + self.getTotalStorageUserPrefix(owner)) || {};
     if (typeof value !== 'undefined' && value !== null) {
@@ -96,7 +96,7 @@
    * @param {*} [defaultValue]
    * @returns {*}
    */
-  AssistHelper.prototype.getFromTotalStorage = function(owner, id, defaultValue) {
+  ApiHelper.prototype.getFromTotalStorage = function(owner, id, defaultValue) {
     var self = this;
     var cachedData = $.totalStorage("hue.user.settings." + self.getTotalStorageUserPrefix(owner)) || {};
     return typeof cachedData[id] !== 'undefined' ? cachedData[id] : defaultValue;
@@ -108,7 +108,7 @@
    * @param {Observable} observable
    * @param {*} [defaultValue] - Optional default value to use if not in total storage initially
    */
-  AssistHelper.prototype.withTotalStorage = function(owner, id, observable, defaultValue, noInit) {
+  ApiHelper.prototype.withTotalStorage = function(owner, id, observable, defaultValue, noInit) {
     var self = this;
 
     var cachedValue = self.getFromTotalStorage(owner, id, defaultValue);
@@ -130,7 +130,7 @@
    * @param {number} [response.status]
    * @returns {boolean} - True if actually an error
    */
-  AssistHelper.prototype.successResponseIsError = function (response) {
+  ApiHelper.prototype.successResponseIsError = function (response) {
     return typeof response !== 'undefined' && (response.status === -1 || response.status === 500 || response.code === 503 || response.code === 500);
   };
 
@@ -140,7 +140,7 @@
    * @param {boolean} [options.silenceErrors]
    * @returns {Function}
    */
-  AssistHelper.prototype.assistErrorCallback = function (options) {
+  ApiHelper.prototype.assistErrorCallback = function (options) {
     return function (errorResponse) {
       var errorMessage = 'Unknown error occurred';
       if (errorResponse !== 'undefined') {
@@ -188,7 +188,7 @@
    * @param {function} [options.errorCallback]
    * @param {boolean} [options.silenceErrors]
    */
-  AssistHelper.prototype.simplePost = function (url, data, options) {
+  ApiHelper.prototype.simplePost = function (url, data, options) {
     var self = this;
     $.post(url, data, function (data) {
       if (self.successResponseIsError(data)) {
@@ -209,7 +209,7 @@
    *
    * @param {string[]} options.pathParts
    */
-  AssistHelper.prototype.fetchHdfsPath = function (options) {
+  ApiHelper.prototype.fetchHdfsPath = function (options) {
     var self = this;
     var url = HDFS_API_PREFIX + "/" + options.pathParts.join("/") + HDFS_PARAMETERS;
 
@@ -243,7 +243,7 @@
     }));
   };
 
-  AssistHelper.prototype.getFetchQueue = function (fetchFunction, identifier) {
+  ApiHelper.prototype.getFetchQueue = function (fetchFunction, identifier) {
     var self = this;
     if (! self.fetchQueue[fetchFunction]) {
       self.fetchQueue[fetchFunction] = {};
@@ -270,7 +270,7 @@
    * @param {Number} [options.groupId]
    * @param {Number} [options.userId]
    */
-  AssistHelper.prototype.saveConfiguration = function (options) {
+  ApiHelper.prototype.saveConfiguration = function (options) {
     var self = this;
     self.simplePost(CONFIG_SAVE_API, {
       app: options.app,
@@ -289,7 +289,7 @@
    *
    * @param {string} [options.uuid]
    */
-  AssistHelper.prototype.fetchDocuments = function (options) {
+  ApiHelper.prototype.fetchDocuments = function (options) {
     var self = this;
 
     var queue = self.getFetchQueue('fetchDocuments', options.uuid);
@@ -334,7 +334,7 @@
    * @param {int} [options.page]
    * @param {int} [options.limit]
    */
-  AssistHelper.prototype.searchDocuments = function (options) {
+  ApiHelper.prototype.searchDocuments = function (options) {
     var self = this;
     $.ajax({
       url: DOCUMENTS_SEARCH_API,
@@ -364,7 +364,7 @@
    *
    * @param {number} options.uuid
    */
-  AssistHelper.prototype.fetchDocument = function (options) {
+  ApiHelper.prototype.fetchDocument = function (options) {
     var self = this;
     $.ajax({
       url: DOCUMENTS_API,
@@ -391,7 +391,7 @@
    * @param {string} options.parentUuid
    * @param {string} options.name
    */
-  AssistHelper.prototype.createDocumentsFolder = function (options) {
+  ApiHelper.prototype.createDocumentsFolder = function (options) {
     var self = this;
     self.simplePost("/desktop/api2/doc/mkdir", {
       parent_uuid: ko.mapping.toJSON(options.parentUuid),
@@ -408,7 +408,7 @@
    *
    * @param {FormData} options.formData
    */
-  AssistHelper.prototype.uploadDocument = function (options) {
+  ApiHelper.prototype.uploadDocument = function (options) {
     var self = this;
     $.ajax({
       url: '/desktop/api2/doc/import',
@@ -445,7 +445,7 @@
    * @param {number} options.sourceId - The ID of the source document
    * @param {number} options.destinationId - The ID of the target document
    */
-  AssistHelper.prototype.moveDocument = function (options) {
+  ApiHelper.prototype.moveDocument = function (options) {
     var self = this;
     self.simplePost("/desktop/api2/doc/move", {
       source_doc_uuid: ko.mapping.toJSON(options.sourceId),
@@ -462,7 +462,7 @@
    * @param {string} options.uuid
    * @param {string} [options.skipTrash] - Default false
    */
-  AssistHelper.prototype.deleteDocument = function (options) {
+  ApiHelper.prototype.deleteDocument = function (options) {
     var self = this;
     self.simplePost("/desktop/api2/doc/delete", {
       uuid: ko.mapping.toJSON(options.uuid),
@@ -480,7 +480,7 @@
    * @param {string[]} [options.fields]
    * @param {boolean} [options.clearAll]
    */
-  AssistHelper.prototype.clearDbCache = function (options) {
+  ApiHelper.prototype.clearDbCache = function (options) {
     var self = this;
     self.invalidateImpala = options.invalidateImpala || 'cache';
     if (options.clearAll) {
@@ -510,7 +510,7 @@
    *
    * @param {string} options.sourceType
    **/
-  AssistHelper.prototype.loadDatabases = function (options) {
+  ApiHelper.prototype.loadDatabases = function (options) {
     var self = this;
 
     var loadFunction = function () {
@@ -561,7 +561,7 @@
    * @param {string} options.databaseName
    * @param {string} options.tableName
    */
-  AssistHelper.prototype.fetchPartitions = function (options) {
+  ApiHelper.prototype.fetchPartitions = function (options) {
     var self = this;
     $.ajax({
       url: "/metastore/table/" + options.databaseName + "/" + options.tableName + "/partitions",
@@ -593,7 +593,7 @@
    * @param {string} options.databaseName
    * @param {string} options.tableName
    */
-  AssistHelper.prototype.fetchTableDetails = function (options) {
+  ApiHelper.prototype.fetchTableDetails = function (options) {
     var self = this;
     $.ajax({
       url: "/" + (options.sourceType == "hive" ? "beeswax" : options.sourceType) + "/api/table/" + options.databaseName + "/" + options.tableName,
@@ -627,7 +627,7 @@
    * @param {string} [options.columnName]
    * @param {Object} [options.editor] - Ace editor
    */
-  AssistHelper.prototype.fetchTableSample = function (options) {
+  ApiHelper.prototype.fetchTableSample = function (options) {
     var self = this;
     var url = SAMPLE_API_PREFIX + options.databaseName + '/' + options.tableName + (options.columnName ? '/' + options.columnName : '');
 
@@ -678,7 +678,7 @@
    * @param {string} options.tableName
    * @param {string} options.columnName
    */
-  AssistHelper.prototype.refreshTableStats = function (options) {
+  ApiHelper.prototype.refreshTableStats = function (options) {
     var self = this;
     var pollRefresh = function (url) {
       $.post(url, function (data) {
@@ -714,7 +714,7 @@
    * @param {string} options.tableName
    * @param {string} options.columnName
    */
-  AssistHelper.prototype.fetchStats = function (options) {
+  ApiHelper.prototype.fetchStats = function (options) {
     var self = this;
     $.ajax({
       url: "/" + options.sourceType + "/api/table/" + options.databaseName + "/" + options.tableName + "/stats/" + ( options.columnName || ""),
@@ -746,7 +746,7 @@
    * @param {string} options.tableName
    * @param {string} options.columnName
    */
-  AssistHelper.prototype.fetchTerms = function (options) {
+  ApiHelper.prototype.fetchTerms = function (options) {
     var self = this;
     $.ajax({
       url: "/" + options.sourceType + "/api/table/" + options.databaseName + "/" + options.tableName + "/terms/" + options.columnName + "/" + (options.prefixFilter || ""),
@@ -776,7 +776,7 @@
    *
    * @param {string} options.databaseName
    */
-  AssistHelper.prototype.fetchTables = function (options) {
+  ApiHelper.prototype.fetchTables = function (options) {
     var self = this;
     fetchAssistData.bind(self)($.extend({}, options, {
       url: AUTOCOMPLETE_API_PREFIX + options.databaseName,
@@ -811,7 +811,7 @@
    * @param {string} options.tableName
    * @param {string[]} options.fields
    */
-  AssistHelper.prototype.fetchFields = function (options) {
+  ApiHelper.prototype.fetchFields = function (options) {
     var self = this;
     var fieldPart = options.fields.length > 0 ? "/" + options.fields.join("/") : "";
     fetchAssistData.bind(self)($.extend({}, options, {
@@ -830,7 +830,7 @@
    *
    * @param {string[]} options.hierarchy
    */
-  AssistHelper.prototype.fetchPanelData = function (options) {
+  ApiHelper.prototype.fetchPanelData = function (options) {
     var self = this;
     fetchAssistData.bind(self)($.extend({}, options, {
       url: AUTOCOMPLETE_API_PREFIX + options.hierarchy.join("/"),
@@ -945,11 +945,11 @@
      * @param {string} options.i18n.errorLoadingTablePreview
      * @param {string} options.user
      *
-     * @returns {AssistHelper}
+     * @returns {ApiHelper}
      */
     getInstance: function (options) {
       if (instance === null) {
-        instance = new AssistHelper(options.i18n, options.user);
+        instance = new ApiHelper(options.i18n, options.user);
       }
       return instance;
     }

+ 1 - 1
desktop/core/src/desktop/static/desktop/js/assist/assistDbEntry.js

@@ -261,7 +261,7 @@
       self.loading(false);
     };
 
-    self.assistDbSource.assistHelper.fetchPanelData({
+    self.assistDbSource.apiHelper.fetchPanelData({
       sourceType: self.assistDbSource.sourceType,
       hierarchy: self.getHierarchy(),
       successCallback: successCallback,

+ 5 - 5
desktop/core/src/desktop/static/desktop/js/assist/assistDbSource.js

@@ -25,7 +25,7 @@
   /**
    * @param {Object} options
    * @param {Object} options.i18n
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {string} options.type
    * @param {string} options.name
    * @param {Object} options.navigationSettings
@@ -36,7 +36,7 @@
     var self = this;
     self.i18n = options.i18n;
     self.navigationSettings = options.navigationSettings;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.sourceType = options.type;
     self.name = options.name;
 
@@ -100,7 +100,7 @@
         if (!newValue.hasEntries() && !newValue.loading()) {
           newValue.loadEntries()
         }
-        self.assistHelper.setInTotalStorage('assist_' + self.sourceType, 'lastSelectedDb', newValue.definition.name)
+        self.apiHelper.setInTotalStorage('assist_' + self.sourceType, 'lastSelectedDb', newValue.definition.name)
         huePubSub.publish("assist.database.set", {
           source: self.sourceType,
           name: newValue.definition.name
@@ -144,7 +144,7 @@
         self.selectedDatabase(dbIndex[databaseName]);
         return;
       }
-      var lastSelectedDb = self.assistHelper.getFromTotalStorage('assist_' + self.sourceType, 'lastSelectedDb', 'default');
+      var lastSelectedDb = self.apiHelper.getFromTotalStorage('assist_' + self.sourceType, 'lastSelectedDb', 'default');
       if (lastSelectedDb && dbIndex[lastSelectedDb]) {
         self.selectedDatabase(dbIndex[lastSelectedDb]);
       } else if (self.databases().length > 0) {
@@ -160,7 +160,7 @@
       var lastSelectedDb = self.selectedDatabase() ? self.selectedDatabase().definition.name : null;
       self.selectedDatabase(null);
       self.databases([]);
-      self.assistHelper.loadDatabases({
+      self.apiHelper.loadDatabases({
         sourceType: self.sourceType,
         successCallback: function(data) {
           self.hasErrors(false);

+ 4 - 4
desktop/core/src/desktop/static/desktop/js/assist/assistHdfsEntry.js

@@ -28,14 +28,14 @@
    * @param {string} options.definition.name
    * @param {string} options.definition.type (file, dir)
    * @param {AssistHdfsEntry} options.parent
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @constructor
    */
   function AssistHdfsEntry (options) {
     var self = this;
 
     self.definition = options.definition;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.parent = options.parent;
     self.path = '';
     if (self.parent !== null) {
@@ -85,7 +85,7 @@
         return new AssistHdfsEntry({
           definition: file,
           parent: self,
-          assistHelper: self.assistHelper
+          apiHelper: self.apiHelper
         })
       }));
       self.loaded = true;
@@ -103,7 +103,7 @@
       }
     };
 
-    self.assistHelper.fetchHdfsPath({
+    self.apiHelper.fetchHdfsPath({
       pathParts: self.getHierarchy(),
       successCallback: successCallback,
       errorCallback: errorCallback

+ 7 - 7
desktop/core/src/desktop/static/desktop/js/assist/tableStats.js

@@ -29,7 +29,7 @@
    * @param {string} options.i18n.errorLoadingStats
    * @param {string} options.i18n.errorLoadingTerms
    * @param {string} options.i18n.errorRefreshingStats
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {string} options.sourceType
    * @param {string} options.databaseName
    * @param {string} options.tableName
@@ -44,7 +44,7 @@
     self.database = options.databaseName;
     self.table = options.tableName;
     self.column = options.columnName || null;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.type = options.type;
     self.showViewMore = options.showViewMore;
     self.isComplexType = /^(map|array|struct)/i.test(options.type);
@@ -67,7 +67,7 @@
     self.showAnalysis = ko.observable(false);
 
     if (self.column === null) {
-      self.assistHelper.fetchTableDetails({
+      self.apiHelper.fetchTableDetails({
         tableName: ko.isObservable(self.table) ? self.table() : self.table,
         databaseName: ko.isObservable(self.database) ? self.database() : self.database,
         sourceType: self.sourceType,
@@ -133,7 +133,7 @@
       self.loadingStats(false);
     };
 
-    self.assistHelper.fetchStats({
+    self.apiHelper.fetchStats({
       sourceType: self.sourceType === "hive" ? "beeswax" : self.sourceType,
       databaseName: ko.isObservable(self.database) ? self.database() : self.database,
       tableName: ko.isObservable(self.table) ? self.table() : self.table,
@@ -155,7 +155,7 @@
       self.fetchSamples();
     } else {
       var shouldFetchTerms = self.termsTabActive() || self.terms().length > 0;
-      self.assistHelper.refreshTableStats({
+      self.apiHelper.refreshTableStats({
         sourceType: self.sourceType === "hive" ? "beeswax" : self.sourceType,
         databaseName: ko.isObservable(self.database) ? self.database() : self.database,
         tableName: ko.isObservable(self.table) ? self.table() : self.table,
@@ -182,7 +182,7 @@
     }
 
     self.loadingTerms(true);
-    self.assistHelper.fetchTerms({
+    self.apiHelper.fetchTerms({
       sourceType: self.sourceType === "hive" ? "beeswax" : self.sourceType,
       databaseName: ko.isObservable(self.database) ? self.database() : self.database,
       tableName: ko.isObservable(self.table) ? self.table() : self.table,
@@ -219,7 +219,7 @@
     self.loadingSamples(true);
     self.samples({});
 
-    self.assistHelper.fetchTableSample({
+    self.apiHelper.fetchTableSample({
       sourceType: self.sourceType,
       databaseName: ko.isObservable(self.database) ? self.database() : self.database,
       tableName: ko.isObservable(self.table) ? self.table() : self.table,

+ 3 - 3
desktop/core/src/desktop/static/desktop/js/fileBrowser/hueDocument.js

@@ -27,7 +27,7 @@
   /**
    *
    * @param {Object} options
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {HueFileEntry} options.fileEntry
    *
    * @constructor
@@ -35,7 +35,7 @@
   function HueDocument (options) {
     var self = this;
     self.fileEntry = options.fileEntry;
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.definition = ko.observable();
     self.loaded = ko.observable(false);
     self.loading = ko.observable(false);
@@ -168,7 +168,7 @@
     self.hasErrors(false);
 
     var fetchFunction = function () {
-      self.assistHelper.fetchDocument({
+      self.apiHelper.fetchDocument({
         uuid: self.fileEntry.definition().uuid,
         successCallback: function (data) {
           self.prettifyUserNames(data.document.perms.write.users);

+ 10 - 10
desktop/core/src/desktop/static/desktop/js/fileBrowser/hueFileEntry.js

@@ -55,7 +55,7 @@
   /**
    *
    * @param {Object} options
-   * @param {AssistHelper} options.assistHelper
+   * @param {ApiHelper} options.apiHelper
    * @param {Object} options.definition
    * @param {Function} options.activeEntry - The observable keeping track of the current open directory
    * @param {Function} options.trashEntry - The observable keeping track of the trash directory
@@ -71,7 +71,7 @@
     self.trashEntry = options.trashEntry;
     self.parent = options.parent;
     self.definition = ko.observable(options.definition);
-    self.assistHelper = options.assistHelper;
+    self.apiHelper = options.apiHelper;
     self.app = options.app;
     self.user = options.user;
     self.userGroups = options.userGroups;
@@ -229,7 +229,7 @@
   HueFileEntry.prototype.loadDocument = function () {
     var self = this;
     self.document(new HueDocument({
-      assistHelper: self.assistHelper,
+      apiHelper: self.apiHelper,
       fileEntry: self
     }));
     self.document().load();
@@ -244,7 +244,7 @@
       var moveNext = function () {
         if (entries.length > 0) {
           var nextId = entries.shift().definition().uuid;
-          self.assistHelper.moveDocument({
+          self.apiHelper.moveDocument({
             successCallback: function () {
               moveNext();
             },
@@ -271,7 +271,7 @@
       activeEntry: self.activeEntry,
       activeSort: self.activeSort,
       trashEntry: self.trashEntry,
-      assistHelper: self.assistHelper,
+      apiHelper: self.apiHelper,
       app: self.app,
       user: self.user,
       superuser: self.superuser
@@ -302,7 +302,7 @@
 
     resultEntry.loading(true);
 
-    self.assistHelper.searchDocuments({
+    self.apiHelper.searchDocuments({
       uuid: owner.uuid,
       query: query,
       successCallback: function (data) {
@@ -364,7 +364,7 @@
     self.loading(true);
 
     if (self.app === 'documents') {
-      self.assistHelper.fetchDocuments({
+      self.apiHelper.fetchDocuments({
         uuid: self.definition().uuid,
         successCallback: function(data) {
           self.definition(data.document);
@@ -443,7 +443,7 @@
       var deleteNext = function () {
         if (self.entriesToDelete().length > 0) {
           var nextUuid = self.entriesToDelete().shift().definition().uuid;
-          self.assistHelper.deleteDocument({
+          self.apiHelper.deleteDocument({
             uuid: nextUuid,
             skipTrash: deleteForever,
             successCallback: function () {
@@ -483,7 +483,7 @@
       self.uploading(true);
       self.uploadComplete(false);
       self.uploadFailed(false);
-      self.assistHelper.uploadDocument({
+      self.apiHelper.uploadDocument({
         formData: new FormData($('#importDocumentsForm')[0]),
         successCallback: function () {
           self.uploading(false);
@@ -545,7 +545,7 @@
   HueFileEntry.prototype.createDirectory = function (name) {
     var self = this;
     if (name && self.app === 'documents') {
-      self.assistHelper.createDocumentsFolder({
+      self.apiHelper.createDocumentsFolder({
         successCallback: self.load.bind(self),
         parentUuid: self.definition().uuid,
         name: name

+ 1 - 1
desktop/core/src/desktop/static/desktop/js/hdfsAutocompleter.js

@@ -95,7 +95,7 @@
         }
       };
 
-      self.snippet.getAssistHelper().fetchHdfsPath({
+      self.snippet.getApiHelper().fetchHdfsPath({
         pathParts: parts,
         successCallback: successCallback,
         silenceErrors: true,

+ 6 - 6
desktop/core/src/desktop/static/desktop/js/home2.vm.js

@@ -18,14 +18,14 @@
   if(typeof define === "function" && define.amd) {
     define([
       'knockout',
-      'desktop/js/assist/assistHelper',
+      'desktop/js/apiHelper',
       'desktop/js/fileBrowser/hueFileEntry',
       'knockout-mapping'
     ], factory);
   } else {
-    root.HomeViewModel = factory(ko, assistHelper, HueFileEntry);
+    root.HomeViewModel = factory(ko, apiHelper, HueFileEntry);
   }
-}(this, function (ko, AssistHelper, HueFileEntry) {
+}(this, function (ko, ApiHelper, HueFileEntry) {
 
 
   /**
@@ -40,16 +40,16 @@
 
     self.user = options.user;
     self.superuser = options.superuser;
-    self.assistHelper = AssistHelper.getInstance(options);
+    self.apiHelper = ApiHelper.getInstance(options);
     self.isLeftPanelVisible = ko.observable();
-    self.assistHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+    self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
     self.activeEntry = ko.observable();
     self.trashEntry = ko.observable();
     self.activeEntry(new HueFileEntry({
       activeEntry: self.activeEntry,
       trashEntry: self.trashEntry,
-      assistHelper: self.assistHelper,
+      apiHelper: self.apiHelper,
       app: 'documents',
       user: self.user,
       superuser: self.superuser,

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

@@ -1175,7 +1175,7 @@
     updateWhenRendered: function (element, valueAccessor) {
       var self = this;
       var options = ko.unwrap(valueAccessor());
-      var assistHelper = options.assistHelper;
+      var apiHelper = options.apiHelper;
       var panelDefinitions = options.panels;
 
       var $container = $(element);
@@ -1212,7 +1212,7 @@
         return;
       }
 
-      var panelRatios = assistHelper.getFromTotalStorage('assist', 'innerPanelRatios', {});
+      var panelRatios = apiHelper.getFromTotalStorage('assist', 'innerPanelRatios', {});
 
       var totalRatios = 0;
       $.each($allPanels, function (idx, panel) {
@@ -1377,7 +1377,7 @@
             $allPanels.each(function (idx, panel) {
               panelRatios[panelDefinitions()[idx].type] = $(panel).outerHeight(true) / totalHeightForPanels;
             });
-            assistHelper.setInTotalStorage('assist', 'innerPanelRatios', panelRatios);
+            apiHelper.setInTotalStorage('assist', 'innerPanelRatios', panelRatios);
             $('.assist-flex-fill').getNiceScroll().resize();
           }
         });
@@ -2486,7 +2486,7 @@
       var $el = $(element);
       var options = ko.unwrap(valueAccessor());
       var snippet = options.snippet;
-      var assistHelper = snippet.getAssistHelper();
+      var apiHelper = snippet.getApiHelper();
       var aceOptions = options.aceOptions || {};
 
       $el.text(snippet.statement_raw());
@@ -2606,7 +2606,7 @@
       var refreshTables = function() {
         currentAssistTables = {};
         if (snippet.database()) {
-          assistHelper.fetchTables({
+          apiHelper.fetchTables({
             sourceType: snippet.type(),
             databaseName: snippet.database(),
             successCallback: function(data) {

+ 12 - 12
desktop/core/src/desktop/static/desktop/js/sqlAutocompleter.js

@@ -41,12 +41,12 @@
 
     // Speed up by caching the databases
     var initDatabases = function () {
-      self.snippet.getAssistHelper().loadDatabases({
+      self.snippet.getApiHelper().loadDatabases({
         sourceType: self.snippet.type(),
         silenceErrors: true,
         successCallback: function () {
           if (self.optEnabled) {
-            $.each(self.snippet.getAssistHelper().lastKnownDatabases[self.snippet.type()], function (idx, db) {
+            $.each(self.snippet.getApiHelper().lastKnownDatabases[self.snippet.type()], function (idx, db) {
               if (db === 'default') {
                 $.post('/metadata/api/optimizer_api/top_tables', {
                   database: db
@@ -96,7 +96,7 @@
         if (ref.indexOf('.') > 0) {
           var refParts = ref.split('.');
 
-          if(self.snippet.getAssistHelper().lastKnownDatabases[self.snippet.type()].indexOf(refParts[0]) > -1) {
+          if(self.snippet.getApiHelper().lastKnownDatabases[self.snippet.type()].indexOf(refParts[0]) > -1) {
             return {
               database: refParts.shift(),
               table: refParts.join('.')
@@ -256,7 +256,7 @@
         if (remainingParts.length > 0 && remainingParts[0] == "value" || remainingParts[0] == "key") {
           fetchImpalaFields(remainingParts, topValues);
         } else {
-          self.snippet.getAssistHelper().fetchFields({
+          self.snippet.getApiHelper().fetchFields({
             sourceType: self.snippet.type(),
             databaseName: database,
             tableName: tableName,
@@ -292,7 +292,7 @@
       };
 
       if (fields.length === 1 && !self.optEnabled) {
-        self.snippet.getAssistHelper().fetchTableSample({
+        self.snippet.getApiHelper().fetchTableSample({
           sourceType: self.snippet.type(),
           databaseName: database,
           tableName: tableName,
@@ -395,7 +395,7 @@
       if (! excludeDatabases && ! self.oldEditor) {
         // No FROM prefix
         prependedFields = prependedFields.concat(fields);
-        fields = $.map(self.snippet.getAssistHelper().lastKnownDatabases[self.snippet.type()], function(database) {
+        fields = $.map(self.snippet.getApiHelper().lastKnownDatabases[self.snippet.type()], function(database) {
           return {
             name: database + ".",
             type: "database"
@@ -512,7 +512,7 @@
     var impalaFieldRef = impalaSyntax && beforeCursor.slice(-1) === '.';
 
     if (keywordBeforeCursor === "USE") {
-      var databases = self.snippet.getAssistHelper().lastKnownDatabases[self.snippet.type()];
+      var databases = self.snippet.getApiHelper().lastKnownDatabases[self.snippet.type()];
       databases.sort();
       callback($.map(databases, function(db, idx) {
         return {
@@ -572,14 +572,14 @@
       var dbRefMatch = beforeCursor.match(/.*from\s+([^\.\s]+).$/i);
       var partialMatch = beforeCursor.match(/.*from\s+([\S]+)$/i);
       var partialTableOrDb = null;
-      if (dbRefMatch && self.snippet.getAssistHelper().lastKnownDatabases[self.snippet.type()].indexOf(dbRefMatch[1]) > -1) {
+      if (dbRefMatch && self.snippet.getApiHelper().lastKnownDatabases[self.snippet.type()].indexOf(dbRefMatch[1]) > -1) {
         database = dbRefMatch[1];
       } else if (dbRefMatch && partialMatch) {
         partialTableOrDb = partialMatch[1].toLowerCase();
         database = self.snippet.database();
       }
 
-      self.snippet.getAssistHelper().fetchTables({
+      self.snippet.getApiHelper().fetchTables({
         sourceType: self.snippet.type(),
         databaseName: database,
         successCallback: function (data) {
@@ -705,7 +705,7 @@
 
       var getFields = function (database, remainingParts, fields) {
         if (remainingParts.length == 0) {
-          self.snippet.getAssistHelper().fetchFields({
+          self.snippet.getApiHelper().fetchFields({
             sourceType: self.snippet.type(),
             databaseName: database,
             tableName: tableName,
@@ -782,7 +782,7 @@
             var mapOrArrayMatch = part.match(/([^\[]*)\[[^\]]*\]$/i);
             if (mapOrArrayMatch !== null) {
               fields.push(mapOrArrayMatch[1]);
-              self.snippet.getAssistHelper().fetchFields({
+              self.snippet.getApiHelper().fetchFields({
                 sourceType: self.snippet.type(),
                 databaseName: database,
                 tableName: tableName,
@@ -843,7 +843,7 @@
             };
             // For impala we have to fetch info about each field as we don't know
             // whether it's a map or array for hive the [ and ] gives it away...
-            self.snippet.getAssistHelper().fetchFields({
+            self.snippet.getApiHelper().fetchFields({
               sourceType: self.snippet.type(),
               databaseName: database,
               tableName: tableName,

+ 32 - 0
desktop/core/src/desktop/static/desktop/spec/apiHelperSpec.js

@@ -0,0 +1,32 @@
+// Licensed to Cloudera, Inc. under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  Cloudera, Inc. licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+define([
+  'knockout',
+  'desktop/js/apiHelper'
+], function(ko, ApiHelper) {
+
+  describe("apiHelper.js", function() {
+    var subject = ApiHelper.getInstance({
+      i18n: {},
+      user: 'testUser'
+    });
+
+    it("should be singleton", function() {
+      var otherHelper = ApiHelper.getInstance();
+      expect(subject == otherHelper).toBeTruthy();
+    });
+  });
+});

+ 4 - 4
desktop/core/src/desktop/static/desktop/spec/hdfsAutocompleterSpec.js

@@ -16,9 +16,9 @@
 define([
   'knockout',
   'desktop/js/hdfsAutocompleter',
-  'desktop/js/Assist/assistHelper',
+  'desktop/js/apiHelper',
   'desktop/spec/autocompleterTestUtils'
-], function(ko, HdfsAutocompleter, AssistHelper, testUtils) {
+], function(ko, HdfsAutocompleter, ApiHelper, testUtils) {
   describe("hdfsAutocompleter.js", function() {
     var subject;
 
@@ -26,7 +26,7 @@ define([
       responseForUrls: {}
     };
 
-    var assistHelper = AssistHelper.getInstance({
+    var apiHelper = ApiHelper.getInstance({
       i18n: {},
       user: 'testUser'
     });
@@ -36,7 +36,7 @@ define([
       database: ko.observable("database_one"),
       isSqlDialect: function () { return true; },
       getContext: function () { return ko.mapping.fromJS(null) },
-      getAssistHelper: function () { return assistHelper }
+      getApiHelper: function () { return apiHelper }
     };
 
 

+ 5 - 5
desktop/core/src/desktop/static/desktop/spec/sqlAutocompleterSpec.js

@@ -16,9 +16,9 @@
 define([
   'knockout',
   'desktop/js/sqlAutocompleter',
-  'desktop/js/assist/assistHelper',
-  'desktop/spec/autocompleterTestUtils',
-], function(ko, SqlAutocompleter, AssistHelper, testUtils) {
+  'desktop/js/apiHelper',
+  'desktop/spec/autocompleterTestUtils'
+], function(ko, SqlAutocompleter, ApiHelper, testUtils) {
   describe("sqlAutocompleter.js", function() {
     var subject;
 
@@ -26,7 +26,7 @@ define([
       responseForUrls: {}
     };
 
-    var assistHelper = AssistHelper.getInstance({
+    var apiHelper = ApiHelper.getInstance({
       i18n: {},
       user: 'testUser'
     });
@@ -36,7 +36,7 @@ define([
       database: ko.observable("database_one"),
       isSqlDialect: function () { return true; },
       getContext: function () { return ko.mapping.fromJS(null) },
-      getAssistHelper: function () { return assistHelper }
+      getApiHelper: function () { return apiHelper }
     };
 
     var changeType = function (newType, callback) {

+ 28 - 28
desktop/core/src/desktop/templates/assist.mako

@@ -401,7 +401,7 @@ from desktop.views import _ko
           tableName: tableName,
           columnName: columnName,
           fieldType: definition.type,
-          assistHelper: assistDbSource.assistHelper
+          apiHelper: assistDbSource.apiHelper
         } }"></span>
       <a class="inactive-action" href="javascript:void(0)" data-bind="visible: navigationSettings.openItem || (navigationSettings.openDatabase && definition.isDatabase), click: openItem"><i class="fa fa-long-arrow-right" title="${_('Open')}"></i></a>
     </div>
@@ -410,7 +410,7 @@ from desktop.views import _ko
   <script type="text/html" id="assist-table-entry">
     <li class="assist-table" data-bind="visibleOnHover: { override: statsVisible, selector: '.table-actions' }">
       <div class="assist-actions table-actions" style="opacity: 0">
-        <span data-bind="visible: navigationSettings.showStats, component: { name: 'table-stats', params: { statsVisible: statsVisible, sourceType: sourceType, snippet: assistDbSource.snippet, databaseName: databaseName, tableName: tableName, columnName: columnName, fieldType: definition.type, assistHelper: assistDbSource.assistHelper }}"></span>
+        <span data-bind="visible: navigationSettings.showStats, component: { name: 'table-stats', params: { statsVisible: statsVisible, sourceType: sourceType, snippet: assistDbSource.snippet, databaseName: databaseName, tableName: tableName, columnName: columnName, fieldType: definition.type, apiHelper: assistDbSource.apiHelper }}"></span>
         <a class="inactive-action" href="javascript:void(0)" data-bind="visible: navigationSettings.openItem, click: openItem"><i class="fa fa-long-arrow-right" title="${_('Open')}"></i></a>
       </div>
       <a class="assist-entry assist-table-link" href="javascript:void(0)" data-bind="multiClick: { click: toggleOpen, dblClick: dblClick }, attr: {'title': definition.title }"><i class="fa fa-fw fa-table muted valign-middle"></i><span data-bind="text: definition.displayName, draggableText: { text: editorText,  meta: {'table': tableName, 'database': databaseName} }"></span></a>
@@ -774,7 +774,7 @@ from desktop.views import _ko
 
   <script type="text/html" id="assist-panel-template">
     <!-- ko if: (searchInput() === '' && !searchHasFocus()) || ! navigatorEnabled() -->
-    <div style="position:relative; height: 100%; overflow: hidden" data-bind="assistVerticalResizer: { panels: visiblePanels, assistHelper: assistHelper, noFixedHeights: onlySql }">
+    <div style="position:relative; height: 100%; overflow: hidden" data-bind="assistVerticalResizer: { panels: visiblePanels, apiHelper: apiHelper, noFixedHeights: onlySql }">
       <!-- ko template: { if: navigatorEnabled, name: 'assist-panel-navigator-search' }--><!-- /ko -->
       <!-- ko template: { if: availablePanels.length > 1, name: 'assist-panel-switches' }--><!-- /ko -->
       <div data-bind="visible: visiblePanels().length === 0" style="margin:10px; font-style: italic; display:none;">${_('Select your assist contents above.')}</div>
@@ -861,14 +861,14 @@ from desktop.views import _ko
           'knockout',
           'desktop/js/assist/assistDbSource',
           'desktop/js/assist/assistHdfsEntry',
-          'desktop/js/assist/assistHelper',
+          'desktop/js/apiHelper',
           'desktop/js/fileBrowser/hueFileEntry',
           'tableStats'
         ], factory);
       } else {
-        factory(ko, AssistDbSource, AssistHdfsEntry, AssistHelper, HueFileEntry);
+        factory(ko, AssistDbSource, AssistHdfsEntry, ApiHelper, HueFileEntry);
       }
-    }(function (ko, AssistDbSource, AssistHdfsEntry, AssistHelper, HueFileEntry) {
+    }(function (ko, AssistDbSource, AssistHdfsEntry, ApiHelper, HueFileEntry) {
 
       ko.bindingHandlers.assistFileDroppable = {
         init: function(element, valueAccessor, allBindings, boundEntry) {
@@ -900,7 +900,7 @@ from desktop.views import _ko
 
       /**
        * @param {Object} options
-       * @param {AssistHelper} options.assistHelper
+       * @param {ApiHelper} options.apiHelper
        * @param {string} options.type
        * @param {number} options.minHeight
        * @param {string} options.icon
@@ -917,7 +917,7 @@ from desktop.views import _ko
         self.panelData = options.panelData;
 
         self.visible = ko.observable(options.visible);
-        options.assistHelper.withTotalStorage('assist', 'showingPanel_' + self.type, self.visible, false, options.visible);
+        options.apiHelper.withTotalStorage('assist', 'showingPanel_' + self.type, self.visible, false, options.visible);
         self.templateName = 'assist-' + self.type + '-inner-panel';
 
         var loadWhenVisible = function () {
@@ -935,7 +935,7 @@ from desktop.views import _ko
 
       /**
        * @param {Object} options
-       * @param {AssistHelper} options.assistHelper
+       * @param {ApiHelper} options.apiHelper
        * @param {Object} options.i18n
        * @param {Object[]} options.sourceTypes - All the available SQL source types
        * @param {string} options.sourceTypes[].name - Example: Hive SQL
@@ -949,14 +949,14 @@ from desktop.views import _ko
        **/
       function AssistDbPanel (options) {
         var self = this;
-        self.assistHelper = options.assistHelper;
+        self.apiHelper = options.apiHelper;
         self.i18n = options.i18n;
 
         self.sources = ko.observableArray();
         var sourceIndex = {};
         $.each(options.sourceTypes, function (idx, sourceType) {
           sourceIndex[sourceType.type] = new AssistDbSource({
-            assistHelper: self.assistHelper,
+            apiHelper: self.apiHelper,
             i18n: self.i18n,
             type: sourceType.type,
             name: sourceType.name,
@@ -1010,13 +1010,13 @@ from desktop.views import _ko
         self.selectedSource.subscribe(function (newSource) {
           if (newSource) {
             newSource.initDatabases();
-            self.assistHelper.setInTotalStorage('assist', 'lastSelectedSource', newSource.sourceType);
+            self.apiHelper.setInTotalStorage('assist', 'lastSelectedSource', newSource.sourceType);
           } else {
-            self.assistHelper.setInTotalStorage('assist', 'lastSelectedSource');
+            self.apiHelper.setInTotalStorage('assist', 'lastSelectedSource');
           }
         });
 
-        var storageSourceType = self.assistHelper.getFromTotalStorage('assist', 'lastSelectedSource');
+        var storageSourceType = self.apiHelper.getFromTotalStorage('assist', 'lastSelectedSource');
 
         if (! self.selectedSource()) {
           if (options.activeSourceType) {
@@ -1050,7 +1050,7 @@ from desktop.views import _ko
 
       /**
        * @param {Object} options
-       * @param {AssistHelper} options.assistHelper
+       * @param {ApiHelper} options.apiHelper
        * @param {string} options.user
        * @param {Object} options.i18n
        * @constructor
@@ -1062,7 +1062,7 @@ from desktop.views import _ko
         self.activeEntry(new HueFileEntry({
           activeEntry: self.activeEntry,
           trashEntry: ko.observable,
-          assistHelper: options.assistHelper,
+          apiHelper: options.apiHelper,
           app: 'documents',
           user: options.user,
           activeSort: ko.observable('name'),
@@ -1075,16 +1075,16 @@ from desktop.views import _ko
 
       /**
        * @param {Object} options
-       * @param {AssistHelper} options.assistHelper
+       * @param {ApiHelper} options.apiHelper
        * @constructor
        **/
       function AssistHdfsPanel (options) {
         var self = this;
-        self.assistHelper = options.assistHelper;
+        self.apiHelper = options.apiHelper;
 
         self.selectedHdfsEntry = ko.observable();
         var reload = function () {
-          var lastKnownPath = self.assistHelper.getFromTotalStorage('assist', 'currentHdfsPath', '/');
+          var lastKnownPath = self.apiHelper.getFromTotalStorage('assist', 'currentHdfsPath', '/');
           var parts = lastKnownPath.split('/');
           parts.shift();
 
@@ -1094,7 +1094,7 @@ from desktop.views import _ko
               type: 'dir'
             },
             parent: null,
-            assistHelper: self.assistHelper
+            apiHelper: self.apiHelper
           });
 
           currentEntry.loadDeep(parts, function (entry) {
@@ -1107,7 +1107,7 @@ from desktop.views import _ko
 
         huePubSub.subscribe('assist.selectHdfsEntry', function (entry) {
           self.selectedHdfsEntry(entry);
-          self.assistHelper.setInTotalStorage('assist', 'currentHdfsPath', entry.path);
+          self.apiHelper.setInTotalStorage('assist', 'currentHdfsPath', entry.path);
         });
 
         huePubSub.subscribe('assist.hdfs.refresh', function () {
@@ -1142,7 +1142,7 @@ from desktop.views import _ko
             'notebook' : "${ _('Notebook') }"
           }
         };
-        self.assistHelper = AssistHelper.getInstance({
+        self.apiHelper = ApiHelper.getInstance({
           i18n: i18n,
           user: params.user
         });
@@ -1211,10 +1211,10 @@ from desktop.views import _ko
         self.availablePanels = [
           new AssistInnerPanel({
             panelData: new AssistDbPanel($.extend({
-              assistHelper: self.assistHelper,
+              apiHelper: self.apiHelper,
               i18n: i18n
             }, params.sql)),
-            assistHelper: self.assistHelper,
+            apiHelper: self.apiHelper,
             name: '${ _("SQL") }',
             type: 'db',
             icon: 'fa-database',
@@ -1226,9 +1226,9 @@ from desktop.views import _ko
         if (! self.onlySql) {
           self.availablePanels.push(new AssistInnerPanel({
             panelData: new AssistHdfsPanel({
-              assistHelper: self.assistHelper
+              apiHelper: self.apiHelper
             }),
-            assistHelper: self.assistHelper,
+            apiHelper: self.apiHelper,
             name: '${ _("HDFS") }',
             type: 'hdfs',
             icon: 'fa-folder-o',
@@ -1242,10 +1242,10 @@ from desktop.views import _ko
           self.availablePanels.push(new AssistInnerPanel({
             panelData: new AssistDocumentsPanel({
               user: params.user,
-              assistHelper: self.assistHelper,
+              apiHelper: self.apiHelper,
               i18n: i18n
             }),
-            assistHelper: self.assistHelper,
+            apiHelper: self.apiHelper,
             name: '${ _("Documents") }',
             type: 'documents',
             icon: 'fa-files-o',

+ 1 - 1
desktop/core/src/desktop/templates/common_header.mako

@@ -221,7 +221,7 @@ if USE_NEW_EDITOR.get():
 
     $.fn.dataTableExt.sErrMode = "throw";
 
-    // sets global assistHelper TTL
+    // sets global apiHelper TTL
     $.totalStorage('hue.cacheable.ttl', ${conf.CUSTOM.CACHEABLE_TTL.get()});
 
     $(document).ready(function () {

+ 2 - 1
desktop/core/src/desktop/templates/jasmine.mako

@@ -23,7 +23,8 @@
     // Add specs below
     require([
       'desktop/spec/sqlAutocompleterSpec',
-      'desktop/spec/hdfsAutocompleterSpec'
+      'desktop/spec/hdfsAutocompleterSpec',
+      'desktop/spec/apiHelperSpec'
     ], function() {
       window.onload();
     });

+ 1 - 1
desktop/core/src/desktop/templates/table_stats.mako

@@ -254,7 +254,7 @@ from desktop.views import _ko
               databaseName: self.params.databaseName,
               tableName: self.params.tableName,
               columnName: self.params.columnName,
-              assistHelper: self.params.assistHelper,
+              apiHelper: self.params.apiHelper,
               showViewMore: typeof self.params.showViewMore === 'undefined' || self.params.showViewMore,
               type: self.params.fieldType
             }));

+ 16 - 10
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -16,11 +16,17 @@
 
 (function (root, factory) {
   if(typeof define === "function" && define.amd) {
-    define(['knockout', 'desktop/js/assist/assistHelper', 'desktop/js/autocompleter', 'knockout-mapping', 'ko.charts'], factory);
+    define([
+      'knockout',
+      'desktop/js/apiHelper',
+      'desktop/js/autocompleter',
+      'knockout-mapping',
+      'ko.charts'
+    ], factory);
   } else {
-    root.EditorViewModel = factory(ko, AssistHelper, Autocompleter);
+    root.EditorViewModel = factory(ko, ApiHelper, Autocompleter);
   }
-}(this, function (ko, AssistHelper, Autocompleter) {
+}(this, function (ko, ApiHelper, Autocompleter) {
 
   var NOTEBOOK_MAPPING = {
     ignore: [
@@ -195,8 +201,8 @@
       return vm.getSnippetViewSettings(self.type()).placeHolder;
     };
 
-    self.getAssistHelper = function() {
-      return AssistHelper.getInstance(vm);
+    self.getApiHelper = function() {
+      return ApiHelper.getInstance(vm);
     };
 
     self.database = ko.observable(typeof snippet.database != "undefined" && snippet.database != null ? snippet.database : null);
@@ -205,7 +211,7 @@
 
     var updateDatabases = function () {
       if (self.isSqlDialect()) {
-        self.getAssistHelper().loadDatabases({
+        self.getApiHelper().loadDatabases({
           sourceType: self.type(),
           silenceErrors: true,
           successCallback: self.availableDatabases
@@ -233,7 +239,7 @@
       lastQueriesPage = self.queriesCurrentPage();
       self.loadingQueries(true);
       self.queriesHasErrors(false);
-      self.getAssistHelper().searchDocuments({
+      self.getApiHelper().searchDocuments({
         successCallback: function (result) {
           self.queriesTotalPages(Math.ceil(result.count / QUERIES_PER_PAGE));
           self.queries(result.documents);
@@ -1267,8 +1273,8 @@
     };
 
     self.saveDefaultUserProperties = function (session) {
-      var assistHelper = AssistHelper.getInstance();
-      assistHelper.saveConfiguration({
+      var apiHelper = ApiHelper.getInstance();
+      apiHelper.saveConfiguration({
         app: session.type(),
         properties: session.properties,
         userId: vm.userId
@@ -1516,7 +1522,7 @@
     self.assistAvailable = ko.observable(options.assistAvailable);
 
     self.isLeftPanelVisible = ko.observable();
-    AssistHelper.getInstance(self).withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+    ApiHelper.getInstance(self).withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
 
     self.availableSnippets = ko.mapping.fromJS(options.languages);