Browse Source

[oozie] Added parameters typeahead for Pig

Enrico Berti 11 năm trước cách đây
mục cha
commit
fb8d12d

+ 1 - 1
apps/oozie/src/oozie/templates/editor/workflow_editor.mako

@@ -609,7 +609,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
   </h6>
   <ul class="unstyled" data-bind="foreach: properties.parameters">
     <li style="margin-bottom: 3px">
-      <input type="text" class="span11" data-bind="value: value, attr: { placeholder: $parent.actionParametersUI }"/>
+      <input type="text" class="span11" data-bind="value: value, attr: { placeholder: $parent.actionParametersUI }, typeahead: { target: value, source: $parent.actionParameters, sourceSuffix: '=', triggerOnFocus: true }"/>
       <a href="#" data-bind="click: function(){ $parent.properties.parameters.remove(this); $(document).trigger('drawArrows') }">
         <i class="fa fa-minus"></i>
       </a>

+ 3 - 1
apps/oozie/static/js/workflow-editor.ko.js

@@ -86,7 +86,9 @@ var Node = function (node) {
 
   self.actionParameters = ko.observableArray([]);
   self.actionParametersUI = ko.computed(function() { // TODO: remove truncation when autocomplete
-    return $.map(self.actionParameters().slice(0, 3), function(param) {return param + '=...'}).join();
+    if (self.actionParameters()){
+      return $.map(self.actionParameters().slice(0, 3), function(param) {return param + '=...'}).join();  
+    }
   });
   self.actionParametersFetched = ko.observable(false);
   

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

@@ -734,10 +734,23 @@ ko.bindingHandlers.typeahead = {
         if (valueAccessor.extraKeywords) {
           _source = _source.concat(valueAccessor.extraKeywords.split(" "))
         }
+
+        if (valueAccessor.sourceSuffix && _source) {
+          var _tmp = [];
+          _source.forEach(function(item){
+            _tmp.push(item + valueAccessor.sourceSuffix);
+          });
+          _source = _tmp;
+        }
         return _source;
       },
       onselect: function (val) {
-        valueAccessor.target(val);
+        if (typeof valueAccessor.target == "function") {
+          valueAccessor.target(val);
+        }
+        else {
+         valueAccessor.target = val;
+        }
       }
     }
 
@@ -807,13 +820,23 @@ ko.bindingHandlers.typeahead = {
     }
 
     elem.blur(function () {
-      valueAccessor.target(elem.val());
+      if (typeof valueAccessor.target == "function") {
+        valueAccessor.target(elem.val());
+      }
+      else {
+       valueAccessor.target = elem.val();
+      }
     });
   },
   update: function (element, valueAccessor) {
     var elem = $(element);
     var value = valueAccessor();
-    elem.val(value.target());
+    if (typeof value.target == "function") {
+      elem.val(value.target());
+    }
+    else {
+      elem.val(value.target);
+    }
   }
 };