Browse Source

[oozie] Require all fields on the add action modal before adding

Enrico Berti 11 years ago
parent
commit
c7541a48f3

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

@@ -1661,7 +1661,7 @@ ${ commonheader(_("Workflow Editor"), "Oozie", user, "40px") | n,unicode }
     </table>
 
     <br/>
-    <a class="btn btn-primary disable-feedback" data-bind="click: addActionDemiModalFieldPreview">
+    <a class="btn btn-primary disable-feedback" data-bind="css: {'disabled': ! addActionPropertiesFilledOut()}, click: function(field){ addActionPropertiesFilledOut() ? addActionDemiModalFieldPreview(field) : void(0) } ">
       ${ _('Add') }
     </a>
   </div>

+ 19 - 0
apps/oozie/static/js/workflow-editor.ko.js

@@ -460,6 +460,25 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
   };
 
   self.addActionProperties = ko.observableArray([]);
+  self.addActionPropertiesFilledOut = ko.computed(function (){
+    var _filledInternalValues = function (val) {
+      var _iAllFilled = true;
+      val.forEach(function(iVal){
+        if (iVal.value() == ''){
+          _iAllFilled = false;
+        }
+      });
+      return _iAllFilled;
+    }
+    var _allFilled = true;
+    ko.utils.arrayForEach(self.addActionProperties(), function (property) {
+      var _val = property.value();
+      if (($.isArray(_val) && !_filledInternalValues(_val) ) || _val == ''){
+        _allFilled = false;
+      }
+    });
+    return _allFilled;
+  });
   self.subworfklows = ko.observableArray(subworkflows_json);
   self.getSubWorkflow = function(uuid) {
     var wf = $.grep(self.subworfklows(), function(wf, i) {