From 89ed9efe8d9d811fb366ae2df02588e452e43e03 Mon Sep 17 00:00:00 2001 From: Michael Abashian Date: Mon, 20 Feb 2017 15:49:00 -0500 Subject: [PATCH] Fixed bug rendering workflow details --- .../workflow-chart.directive.js | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/awx/ui/client/src/templates/workflows/workflow-chart/workflow-chart.directive.js b/awx/ui/client/src/templates/workflows/workflow-chart/workflow-chart.directive.js index 6b4444a71d..ef9e40642c 100644 --- a/awx/ui/client/src/templates/workflows/workflow-chart/workflow-chart.directive.js +++ b/awx/ui/client/src/templates/workflows/workflow-chart/workflow-chart.directive.js @@ -209,6 +209,7 @@ export default [ '$state','moment', '$timeout', '$window', } function update() { + let userCanAddEdit = (scope.workflowJobTemplateObjt && scope.workflowJobTemplateObj.summary_fields && scope.workflowJobTemplateObj.summary_fields.user_capabilities && scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit) || scope.canAddWorkflowJobTemplate; if(scope.dimensionsSet) { // Declare the nodes let nodes = tree.nodes(scope.treeData), @@ -371,7 +372,7 @@ export default [ '$state','moment', '$timeout', '$window', .attr("cx", nodeW) .attr("r", 10) .attr("class", "addCircle nodeCircle") - .style("display", function(d) { return d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) ? "none" : null; }) + .style("display", function(d) { return d.placeholder || !(userCanAddEdit) ? "none" : null; }) .call(add_node) .on("mouseover", function(d) { d3.select("#node-" + d.id) @@ -393,7 +394,7 @@ export default [ '$state','moment', '$timeout', '$window', .size(60) .type("cross") ) - .style("display", function(d) { return d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) ? "none" : null; }) + .style("display", function(d) { return d.placeholder || !(userCanAddEdit) ? "none" : null; }) .call(add_node) .on("mouseover", function(d) { d3.select("#node-" + d.id) @@ -413,7 +414,7 @@ export default [ '$state','moment', '$timeout', '$window', .attr("cy", nodeH) .attr("r", 10) .attr("class", "removeCircle") - .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }) + .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(userCanAddEdit)) ? "none" : null; }) .call(remove_node) .on("mouseover", function(d) { d3.select("#node-" + d.id) @@ -435,7 +436,7 @@ export default [ '$state','moment', '$timeout', '$window', .size(60) .type("cross") ) - .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }) + .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(userCanAddEdit)) ? "none" : null; }) .call(remove_node) .on("mouseover", function(d) { d3.select("#node-" + d.id) @@ -550,7 +551,7 @@ export default [ '$state','moment', '$timeout', '$window', }) .attr("r", 10) .attr("class", "addCircle linkCircle") - .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }) + .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(userCanAddEdit)) ? "none" : null; }) .call(add_node_between) .on("mouseover", function(d) { d3.select("#link-" + d.source.id + "-" + d.target.id) @@ -582,7 +583,7 @@ export default [ '$state','moment', '$timeout', '$window', .size(60) .type("cross") ) - .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }) + .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(userCanAddEdit)) ? "none" : null; }) .call(add_node_between) .on("mouseover", function(d) { d3.select("#link-" + d.source.id + "-" + d.target.id) @@ -603,16 +604,16 @@ export default [ '$state','moment', '$timeout', '$window', let t = baseSvg.transition(); t.selectAll(".nodeCircle") - .style("display", function(d) { return d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) ? "none" : null; }); + .style("display", function(d) { return d.placeholder || !(userCanAddEdit) ? "none" : null; }); t.selectAll(".nodeAddCross") - .style("display", function(d) { return d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) ? "none" : null; }); + .style("display", function(d) { return d.placeholder || !(userCanAddEdit) ? "none" : null; }); t.selectAll(".removeCircle") - .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }); + .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(userCanAddEdit)) ? "none" : null; }); t.selectAll(".nodeRemoveCross") - .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }); + .style("display", function(d) { return (d.canDelete === false || d.placeholder || !(userCanAddEdit)) ? "none" : null; }); t.selectAll(".linkPath") .attr("class", function(d) { @@ -637,7 +638,7 @@ export default [ '$state','moment', '$timeout', '$window', }); t.selectAll(".linkCircle") - .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }) + .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(userCanAddEdit)) ? "none" : null; }) .attr("cx", function(d) { return (d.source.isStartNode) ? (d.target.y + d.source.y + rootW) / 2 : (d.target.y + d.source.y + nodeW) / 2; }) @@ -646,7 +647,7 @@ export default [ '$state','moment', '$timeout', '$window', }); t.selectAll(".linkCross") - .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate)) ? "none" : null; }) + .style("display", function(d) { return (d.source.placeholder || d.target.placeholder || !(userCanAddEdit)) ? "none" : null; }) .attr("transform", function(d) { let translate; if(d.source.isStartNode) { @@ -779,7 +780,7 @@ export default [ '$state','moment', '$timeout', '$window', function add_node() { this.on("click", function(d) { - if(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) { + if((scope.workflowJobTemplateObjt && scope.workflowJobTemplateObj.summary_fields && scope.workflowJobTemplateObj.summary_fields.user_capabilities && scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit) || scope.canAddWorkflowJobTemplate) { scope.addNode({ parent: d, betweenTwoNodes: false @@ -790,7 +791,7 @@ export default [ '$state','moment', '$timeout', '$window', function add_node_between() { this.on("click", function(d) { - if(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) { + if((scope.workflowJobTemplateObjt && scope.workflowJobTemplateObj.summary_fields && scope.workflowJobTemplateObj.summary_fields.user_capabilities && scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit) || scope.canAddWorkflowJobTemplate) { scope.addNode({ parent: d, betweenTwoNodes: true @@ -801,7 +802,7 @@ export default [ '$state','moment', '$timeout', '$window', function remove_node() { this.on("click", function(d) { - if(scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit || scope.canAddWorkflowJobTemplate) { + if((scope.workflowJobTemplateObjt && scope.workflowJobTemplateObj.summary_fields && scope.workflowJobTemplateObj.summary_fields.user_capabilities && scope.workflowJobTemplateObj.summary_fields.user_capabilities.edit) || scope.canAddWorkflowJobTemplate) { scope.deleteNode({ nodeToDelete: d });