Browse Source

HUE-5590 [importer] Added support for openOnFocus on the filechooser binding

Enrico Berti 9 years ago
parent
commit
3d48a64

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

@@ -2880,6 +2880,14 @@
       }
 
       self.after(getFileBrowseButton(self, true, valueAccessor, true, allBindingsAccessor, valueAccessor().isAddon, valueAccessor().isNestedModal, allBindingsAccessor && allBindingsAccessor().filechooserOptions && allBindingsAccessor().filechooserOptions.linkMarkup));
+
+      if (allBindingsAccessor && allBindingsAccessor().filechooserOptions && allBindingsAccessor().filechooserOptions.openOnFocus) {
+        self.on('focus', function () {
+          if (self.val() === '') {
+            self.siblings('.filechooser-clickable').click();
+          }
+        });
+      }
     }
   };
 
@@ -2887,13 +2895,13 @@
   function getFileBrowseButton(inputElement, selectFolder, valueAccessor, stripHdfsPrefix, allBindingsAccessor, isAddon, isNestedModal, linkMarkup) {
     var _btn;
     if (isAddon) {
-      _btn = $("<span>").addClass("add-on muted pointer").text("..");
+      _btn = $("<span>").addClass("add-on muted pointer filechooser-clickable").text("..");
     }
     else if (linkMarkup) {
-      _btn = $("<a>").addClass("btn").addClass("fileChooserBtn").text("..");
+      _btn = $("<a>").addClass("btn").addClass("fileChooserBtn filechooser-clickable").text("..");
     }
     else {
-      _btn = $("<button>").addClass("btn").addClass("fileChooserBtn").text("..");
+      _btn = $("<button>").addClass("btn").addClass("fileChooserBtn filechooser-clickable").text("..");
     }
     _btn.click(function (e) {
       e.preventDefault();

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

@@ -253,7 +253,7 @@ ${ assist.assistPanel() }
 
           <div class="control-group" data-bind="visible: createWizard.source.inputFormat() == 'file'">
             <label for="path" class="control-label"><div>${ _('Path') }</div>
-              <input type="text" class="form-control path input-xxlarge" data-bind="value: createWizard.source.path, filechooser: createWizard.source.path, filechooserOptions: { linkMarkup: true, skipInitialPathIfEmpty: true }" placeholder="${ _('Click or drag & drop') }">
+              <input type="text" class="form-control path input-xxlarge" data-bind="value: createWizard.source.path, filechooser: createWizard.source.path, filechooserOptions: { linkMarkup: true, skipInitialPathIfEmpty: true, openOnFocus: true }" placeholder="${ _('Click or drag & drop') }">
             </label>
           </div>