Просмотр исходного кода

HUE-4530 [indexer] List available saved Hive queries

Romain Rigaux 9 лет назад
Родитель
Сommit
527e4e6
1 измененных файлов с 34 добавлено и 5 удалено
  1. 34 5
      desktop/libs/indexer/src/indexer/templates/indexer.mako

+ 34 - 5
desktop/libs/indexer/src/indexer/templates/indexer.mako

@@ -141,7 +141,7 @@ ${ assist.assistPanel() }
           <a href="javascript:void(0)" class="btn" data-bind="click: createWizard.guessFormat">${_('Guess Format')}</a>
         </div>
       </div>
-      
+
       <div data-bind="visible: createWizard.fileFormat().inputFormat() == 'table'">
         <label for="path" class="control-label">${ _('Table') }</label>
         <div class="controls">
@@ -149,11 +149,11 @@ ${ assist.assistPanel() }
           <a href="javascript:void(0)" class="btn" data-bind="click: createWizard.guessFormat">${_('Guess Format')}</a>
         </div>
       </div>
-      
+
       <div data-bind="visible: createWizard.fileFormat().inputFormat() == 'query'">
         <label for="path" class="control-label">${ _('Query') }</label>
         <div class="controls">
-          <input type="text" class="form-control path" data-bind="filechooser: createWizard.fileFormat().path, filechooserOptions: { skipInitialPathIfEmpty: true }">
+          <select data-bind="options: createWizard.fileFormat().queries, value: createWizard.fileFormat().query, optionsText: 'name', filechooserOptions: { skipInitialPathIfEmpty: true }"></select>
           <a href="javascript:void(0)" class="btn" data-bind="click: createWizard.guessFormat">${_('Select')}</a>
         </div>
       </div>
@@ -487,7 +487,6 @@ ${ assist.assistPanel() }
       init();
     }
 
-
     var IndexerFormat = function (vm) {
       var self = this;
 
@@ -497,14 +496,44 @@ ${ assist.assistPanel() }
       self.inputFormat = ko.observable('file');
       self.inputFormats = ko.observableArray(['file', 'table', 'query']);
 
+      self.inputFormat = ko.observable('file');
+      self.inputFormat.subscribe(function(val) {
+        if (val == 'query') {
+          self.getDocuments();
+        }
+      });
+      self.inputFormats = ko.observableArray(['file', 'table', 'query']);
+
+      // File
       self.path = ko.observable('');
+
+      // Table
       self.table = ko.observable('');
 
+      // Queries
+      self.query = ko.observable('');
+      self.queries = ko.observableArray([]);
+      self.getDocuments = function() {
+        $.get('/desktop/api2/docs/', {
+          type: 'query-hive',
+          include_trashed: false,
+          sort: '-last_modified',
+          limit: 100
+        }, function(data) {
+          if (data && data.documents) {
+            var queries = [];
+            $.each(data.documents, function(index, query) {
+              queries.push(ko.mapping.fromJS(query));
+            });
+            self.queries(queries);
+          }
+        });
+      };
+
       self.format = ko.observable();
       self.columns = ko.observableArray();
     };
 
-
     var CreateWizard = function (vm) {
       var self = this;
       var guessFieldTypesXhr;