Browse Source

[assist] Insert HDFS path on double click

Johan Ahlen 10 years ago
parent
commit
9aa5415

+ 13 - 1
desktop/core/src/desktop/static/desktop/js/assist/assistHdfsEntry.js

@@ -37,7 +37,14 @@
     self.definition = options.definition;
     self.assistHelper = options.assistHelper;
     self.parent = options.parent;
-    self.path = self.parent !== null ? self.parent.path + self.definition.name + '/' : self.definition.name;
+    self.path = '';
+    if (self.parent !== null) {
+      self.path = self.parent.path;
+      if (self.parent.path !== '/') {
+        self.path += '/'
+      }
+    }
+    self.path += self.definition.name;
 
     self.entries = ko.observableArray([]);
 
@@ -55,6 +62,11 @@
     });
   }
 
+  AssistHdfsEntry.prototype.dblClick = function () {
+    var self = this;
+    huePubSub.publish('assist.dblClickHdfsItem', self);
+  };
+
   AssistHdfsEntry.prototype.loadEntries = function() {
     var self = this;
     if (self.loading()) {

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

@@ -2262,6 +2262,12 @@
         }
       });
 
+      huePubSub.subscribe("assist.dblClickHdfsItem", function(assistHdfsEntry) {
+        if ($el.data("last-active-editor")) {
+          editor.session.insert(editor.getCursorPosition(), "'" + assistHdfsEntry.path + "'");
+        }
+      });
+
       $el.droppable({
         accept: ".draggableText",
         drop: function (e, ui) {

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

@@ -263,7 +263,7 @@ from desktop.views import _ko
       <li>
         <ul class="assist-tables" data-bind="foreach: entries">
           <li class="assist-entry assist-table-link">
-            <a href="javascript:void(0)" class="assist-entry assist-table-link" data-bind="multiClick: { click: toggleOpen, dblClick: function () {} }, attr: {'title': definition.name }">
+            <a href="javascript:void(0)" class="assist-entry assist-table-link" data-bind="multiClick: { click: toggleOpen, dblClick: dblClick }, attr: {'title': definition.name }">
               <!-- ko if: definition.type === 'dir' -->
               <i class="fa fa-fw fa-folder muted"></i>
               <!-- /ko -->