You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by gn...@apache.org on 2017/02/16 13:01:10 UTC
ambari git commit: AMBARI-20040. Workflow Manager workflow rendering
is broken in designer page. (Belliraj HB via gauravn7)
Repository: ambari
Updated Branches:
refs/heads/trunk fa527360b -> fb322e276
AMBARI-20040. Workflow Manager workflow rendering is broken in designer page. (Belliraj HB via gauravn7)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fb322e27
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fb322e27
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fb322e27
Branch: refs/heads/trunk
Commit: fb322e2763382eb7aa6ed54fabb508482dcaebb0
Parents: fa52736
Author: Gaurav Nagar <gr...@gmail.com>
Authored: Thu Feb 16 18:31:00 2017 +0530
Committer: Gaurav Nagar <gr...@gmail.com>
Committed: Thu Feb 16 18:31:00 2017 +0530
----------------------------------------------------------------------
.../ui/app/domain/cytoscape-flow-renderer.js | 43 ++++++++++++++------
.../resources/ui/app/domain/cytoscape-style.js | 6 +++
.../app/validators/duplicate-data-node-name.js | 2 +-
3 files changed, 38 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb322e27/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-flow-renderer.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-flow-renderer.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-flow-renderer.js
index 4194d5e..6f46fdc 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-flow-renderer.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-flow-renderer.js
@@ -75,26 +75,28 @@ var CytoscapeRenderer= Ember.Object.extend({
case 'end' :
case 'kill' :
case 'placeholder' :
- return 'ellipse';
+ return 'ellipse';
case 'action' :
- return 'roundrectangle';
+ return 'roundrectangle';
case 'fork' :
case 'join' :
- return 'roundrectangle';
+ return 'roundrectangle';
case 'decision' :
- return 'diamond';
+ return 'diamond';
default :
- return 'star';
+ return 'star';
}
},
_getCyDataNodes(workflow){
this.get('dataNodes').clear();
var self=this;
+ var errorNodeCounter=1;
workflow.nodeVisitor.process(workflow.startNode, function(node) {
if (node.type === 'kill') {
return;
}
+
self.get('dataNodes').pushObject({
data: {
id: node.id, name: node.name, type: node.type,
@@ -106,20 +108,37 @@ var CytoscapeRenderer= Ember.Object.extend({
});
if (node.transitions.length > 0) {
node.transitions.forEach(function(transition){
- if (transition.isOnError()|| transition.targetNode.isKillNode()){
+ //if (transition.isOnError()|| transition.targetNode.isKillNode()){
+ if ((transition.isOnError() && transition.getTargetNode().isKillNode())){
return;
}
+ var targetNodeId=transition.targetNode.id;
+ if (transition.targetNode.isKillNode()){
+ errorNodeCounter++;
+ var errorNode=transition.targetNode;
+ targetNodeId=errorNode.id+errorNodeCounter;
+ self.get('dataNodes').pushObject({
+ data: {
+ id: targetNodeId, name: errorNode.name, type: errorNode.type,
+ shape: self._getShape(errorNode.type),
+ type : errorNode.type,
+ node: errorNode
+ },
+ dataNodeName: Ember.computed.alias('errorNode.node.name')
+ });
+ }
self.get('dataNodes').pushObject(
{
data: {
- id: transition.sourceNodeId + '_to_' + transition.targetNode.id,
+ id: transition.sourceNodeId + '_to_' + targetNodeId,
source:transition.sourceNodeId,
- target: transition.targetNode.id,
+ target: targetNodeId,
transition: transition,
transitionCount: node.getOkTransitionCount()
}
}
);
+
});
}
});
@@ -192,7 +211,7 @@ var CytoscapeRenderer= Ember.Object.extend({
var node = event.cyTarget;
var nodeObj = cy.$('#' + node.id());
this._showNodeEditor(node, nodeObj);
- if (!(node.data().type === 'start' || node.data().type === 'end' || node.data().type === 'placeholder')) {
+ if (!(node.data().type === 'start' || node.data().type === 'end' || node.data().type === 'placeholder' || node.data().type === 'kill')) {
this.get("context").$(".overlay-node-actions, .overlay-trash-icon").show();
}
if (node.data().type === 'action' || node.data().type === 'decision') {
@@ -226,9 +245,9 @@ var CytoscapeRenderer= Ember.Object.extend({
left: event.originalEvent.offsetX + 15
});
if (event.cyTarget.data().transitionCount>1){
- this.get("context").$(".overlay-trash-transition-icon").show();
+ this.get("context").$(".overlay-trash-transition-icon").show();
}else{
- this.get("context").$(".overlay-trash-transition-icon").hide();
+ this.get("context").$(".overlay-trash-transition-icon").hide();
}
this.get("context").$(".overlay-transition-content").data("sourceNode",event.cyTarget.source().data("node"));
this.get("context").$(".overlay-transition-content").data("targetNode",event.cyTarget.target().data("node"));
@@ -276,7 +295,7 @@ var CytoscapeRenderer= Ember.Object.extend({
if (incomingTran.targetNode.id===currentNodeId){
incomingTran.sourceNode=incomingNode;
transitionList=transitionList.concat(incomingTran);
- }
+ }
}
}
this.get("context").deleteWorkflowNode(this.get("context").$(".overlay-trash-icon").data("node"),transitionList);
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb322e27/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-style.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-style.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-style.js
index 5a074df..2eb01d1 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-style.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/cytoscape-style.js
@@ -83,6 +83,12 @@ export default Ember.Object.create({
}
},
{
+ selector: 'node[type = "kill"]',
+ style: {
+ 'color': '#a52a2a'
+ }
+ },
+ {
selector: 'node[type = "placeholder"]',
style: {
width: 1,
http://git-wip-us.apache.org/repos/asf/ambari/blob/fb322e27/contrib/views/wfmanager/src/main/resources/ui/app/validators/duplicate-data-node-name.js
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/validators/duplicate-data-node-name.js b/contrib/views/wfmanager/src/main/resources/ui/app/validators/duplicate-data-node-name.js
index 5282544..86e5182 100644
--- a/contrib/views/wfmanager/src/main/resources/ui/app/validators/duplicate-data-node-name.js
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/validators/duplicate-data-node-name.js
@@ -25,7 +25,7 @@ const DuplicateDataNodeName = BaseValidator.extend({
model.get('dataNodes').forEach((item)=>{
if (item.data.node && item.data.node.name) {
Ember.set(item.data.node, "errors", false);
- if(nodeNames.get(item.data.node.name)){
+ if(nodeNames.get(item.data.node.name) && item.data.node.type!=='kill'){
Ember.set(item.data.node, "errors", true);
model.get("validationErrors").pushObject({node:item.data,message:"Node name should be unique"});
}else{