浏览代码

[oozie] Disable current workflow as subworkflow from the workflow editor

Enrico Berti 10 年之前
父节点
当前提交
ceba42733d

+ 17 - 4
apps/oozie/src/oozie/static/oozie/js/workflow-editor.ko.js

@@ -258,7 +258,7 @@ var Workflow = function (vm, workflow) {
           });
 
           if (data.workflows.length > 0) {
-            viewModel.subworfklows(data.workflows);
+            viewModel.subworkflows(getOtherSubworkflows(viewModel, data.workflows));
           }
 
           if (callback) {
@@ -504,15 +504,18 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
     var _allFilled = true;
     ko.utils.arrayForEach(self.addActionProperties(), function (property) {
       var _val = property.value();
-      if (($.isArray(_val) && !_filledInternalValues(_val) ) || _val == '') {
+      if (($.isArray(_val) && !_filledInternalValues(_val) ) || _val == '' || _val == null || typeof _val == 'undefined') {
         _allFilled = false;
       }
     });
     return _allFilled;
   });
-  self.subworfklows = ko.observableArray(subworkflows_json);
+
+
+  self.subworkflows = ko.observableArray(getOtherSubworkflows(self, subworkflows_json));
+
   self.getSubWorkflow = function (uuid) {
-    var wf = $.grep(self.subworfklows(), function (wf, i) {
+    var wf = $.grep(self.subworkflows(), function (wf, i) {
       return wf.value == uuid;
     });
     if (wf[0]) {
@@ -1162,6 +1165,16 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
 };
 
 
+function getOtherSubworkflows(vm, workflows) {
+  var _cleanedSubworkflows = [];
+  workflows.forEach(function(sub){
+    if (sub.id != vm.workflow.id()){
+      _cleanedSubworkflows.push(sub);
+    }
+  });
+  return _cleanedSubworkflows;
+}
+
 function logGA(page) {
   if (typeof trackOnGA == 'function') {
     trackOnGA('oozie/editor/workflow' + page);

+ 1 - 1
apps/oozie/src/oozie/templates/editor2/common_workflow.mako

@@ -1047,7 +1047,7 @@
   <div class="row-fluid" data-bind="with: $root.workflow.getNodeById(id())" style="padding: 10px">
     <div data-bind="visible: $root.isEditing">
       <div data-bind="visible: ! $parent.ooziePropertiesExpanded()" class="nowrap">
-        <select data-bind="options: $root.subworfklows, optionsText: 'name', optionsValue: 'value', value: properties.workflow"></select>
+        <select data-bind="options: $root.subworkflows, optionsText: 'name', optionsValue: 'value', value: properties.workflow"></select>
         <span data-bind="visible: properties.workflow().length > 0">
           <a href="#" data-bind="attr: { href: '${ url('oozie:edit_workflow') }' + '?workflow=' + properties.workflow() }" target="_blank" title="${ _('Open') }">
             <i class="fa fa-external-link-square"></i>

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

@@ -239,7 +239,7 @@ ${ workflow.render() }
           <textarea data-bind="value: value, valueUpdate:'afterkeydown'" class="input-xlarge"></textarea>
           <!-- /ko -->
           <!-- ko if: type() == 'workflow' -->
-          <select data-bind="options: $root.subworfklows, optionsText: 'name', optionsValue: 'value', value: value"></select>
+          <select data-bind="options: $root.subworkflows, optionsText: 'name', optionsValue: 'value', value: value"></select>
           <!-- /ko -->
 
           <!-- ko if: type() == 'distcp' -->