瀏覽代碼

HUE-5751 [core] Make HiveChooser binding and plugin updatable

Enrico Berti 8 年之前
父節點
當前提交
5ef998c

+ 3 - 0
desktop/core/src/desktop/static/desktop/js/jquery.hiveautocomplete.js

@@ -506,6 +506,9 @@
       if (!$.data(this, 'plugin_' + pluginName)) {
         $.data(this, 'plugin_' + pluginName, new Plugin(this, options));
       }
+      else {
+        $.data(this, 'plugin_' + pluginName).setOptions(options);
+      }
     });
   }
 

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

@@ -2728,7 +2728,7 @@
   };
 
   ko.bindingHandlers.hivechooser = {
-    init: function (element, valueAccessor, allBindingsAccessor, vm) {
+    update: function (element, valueAccessor, allBindingsAccessor, vm) {
       var self = $(element);
       var options = ko.unwrap(valueAccessor());
       var complexConfiguration = false;
@@ -2748,13 +2748,13 @@
       if (complexConfiguration) {
         self.jHueGenericAutocomplete({
           showOnFocus: true,
-          skipColumns: options.skipColumns,
+          skipColumns: ko.unwrap(options.skipColumns),
           startingPath: options.database + '.',
           rewriteVal: true,
           onPathChange: options.onChange,
-          searchEverywhere : options.searchEverywhere || false,
-          apiHelperUser: options.apiHelperUser || '',
-          apiHelperType: options.apiHelperType || '',
+          searchEverywhere : ko.unwrap(options.searchEverywhere) || false,
+          apiHelperUser: ko.unwrap(options.apiHelperUser) || '',
+          apiHelperType: ko.unwrap(options.apiHelperType) || '',
         });
       }
       else {
@@ -2775,9 +2775,9 @@
         self.jHueGenericAutocomplete({
           showOnFocus: true,
           home: "/",
-          skipColumns: options.skipColumns || false,
-          apiHelperUser: options.apiHelperUser || '',
-          apiHelperType: options.apiHelperType || '',
+          skipColumns: ko.unwrap(options.skipColumns) || false,
+          apiHelperUser: ko.unwrap(options.apiHelperUser) || '',
+          apiHelperType: ko.unwrap(options.apiHelperType) || '',
           onPathChange: function (path) {
             setPathFromAutocomplete(path);
           },

+ 2 - 1
desktop/libs/indexer/src/indexer/templates/importer.mako

@@ -379,7 +379,7 @@ ${ assist.assistPanel() }
 
           <div class="control-group" data-bind="visible: createWizard.source.inputFormat() == 'table'">
             <label for="path" class="control-label"><div>${ _('Table') }</div>
-              <input type="text" class="input-xlarge" data-bind="value: createWizard.source.table, hivechooser: createWizard.source.table, skipColumns: true, apiHelperUser: '${ user }', apiHelperType: 'hive'" placeholder="${ _('Table name or <database>.<table>') }">
+              <input type="text" class="input-xlarge" data-bind="value: createWizard.source.table, hivechooser: createWizard.source.table, skipColumns: true, apiHelperUser: '${ user }', apiHelperType: createWizard.source.apiHelperType" placeholder="${ _('Table name or <database>.<table>') }">
             </label>
           </div>
 
@@ -1134,6 +1134,7 @@ ${ assist.assistPanel() }
       self.table.subscribe(function(val) {
         resizeElements();
       });
+      self.apiHelperType = ko.observable('hive');
 
       // Queries
       self.query = ko.observable('');