Denoting incomplete nodes (nodes where the resource has been deleted or null'd out by copy)

This commit is contained in:
Michael Abashian
2016-12-01 17:13:50 -05:00
parent 496d6ae278
commit 0dc7fa9890
5 changed files with 120 additions and 96 deletions

View File

@@ -22,7 +22,7 @@
.node { .node {
font-size: 12px; font-size: 12px;
font-family: 'Open Sans', sans-serif; font-family: 'Open Sans', sans-serif, 'FontAwesome';
} }
.WorkflowChart-defaultText { .WorkflowChart-defaultText {
@@ -83,3 +83,10 @@
fill: @default-link; fill: @default-link;
cursor: pointer; cursor: pointer;
} }
.WorkflowChart-incompleteIcon {
color: @default-warning;
}
.WorkflowChart-incompleteText {
width: 90px;
color: @default-interface-txt;
}

View File

@@ -171,6 +171,17 @@ export default [ '$state',
return (d.unifiedJobTemplate && d.unifiedJobTemplate.name) ? d.unifiedJobTemplate.name : ""; return (d.unifiedJobTemplate && d.unifiedJobTemplate.name) ? d.unifiedJobTemplate.name : "";
}).each(wrap); }).each(wrap);
thisNode.append("foreignObject")
.attr("x", 17)
.attr("y", 22)
.attr("dy", ".35em")
.attr("text-anchor", "middle")
.attr("class", "WorkflowChart-defaultText WorkflowChart-incompleteText")
.html(function () {
return "<span class=\"WorkflowChart-incompleteIcon\">\uf06a</span><span> INCOMPLETE</span>";
})
.style("display", function(d) { return d.unifiedJobTemplate || d.placeholder ? "none" : null; });
thisNode.append("circle") thisNode.append("circle")
.attr("cy", rectH) .attr("cy", rectH)
.attr("r", 10) .attr("r", 10)
@@ -544,6 +555,8 @@ export default [ '$state',
t.selectAll(".WorkflowChart-detailsLink") t.selectAll(".WorkflowChart-detailsLink")
.style("display", function(d){ return d.job && d.job.jobStatus && d.job.unified_job_id ? null : "none"; }); .style("display", function(d){ return d.job && d.job.jobStatus && d.job.unified_job_id ? null : "none"; });
t.selectAll(".WorkflowChart-incompleteText")
.style("display", function(d){ return d.unifiedJobTemplate || d.placeholder ? "none" : null; });
} }

View File

@@ -228,6 +228,7 @@ export default ['$scope', 'WorkflowService', 'generateList', 'TemplateList', 'Pr
let formValues = {}; let formValues = {};
if($scope.nodeBeingEdited.unifiedJobTemplate){
// build any prompt values // build any prompt values
if ($scope.nodeBeingEdited.unifiedJobTemplate.ask_credential_on_launch) { if ($scope.nodeBeingEdited.unifiedJobTemplate.ask_credential_on_launch) {
if ($scope.nodeBeingEdited.promptValues && $scope.nodeBeingEdited.promptValues.credential) { if ($scope.nodeBeingEdited.promptValues && $scope.nodeBeingEdited.promptValues.credential) {
@@ -327,8 +328,8 @@ export default ['$scope', 'WorkflowService', 'generateList', 'TemplateList', 'Pr
$scope.workflowMakerFormConfig.activeTab = "inventory_sync"; $scope.workflowMakerFormConfig.activeTab = "inventory_sync";
break; break;
} }
}
//formValues.edgeType = $scope.nodeBeingEdited.edgeType;
$scope.showTypeOptions = (parent && parent.isStartNode) ? false : true; $scope.showTypeOptions = (parent && parent.isStartNode) ? false : true;
$scope.$broadcast('setEdgeType', $scope.nodeBeingEdited.edgeType); $scope.$broadcast('setEdgeType', $scope.nodeBeingEdited.edgeType);
@@ -344,7 +345,7 @@ export default ['$scope', 'WorkflowService', 'generateList', 'TemplateList', 'Pr
// Determine whether or not we need to go out and GET this nodes unified job template // Determine whether or not we need to go out and GET this nodes unified job template
// in order to determine whether or not prompt fields are needed // in order to determine whether or not prompt fields are needed
if (!$scope.nodeBeingEdited.isNew && !$scope.nodeBeingEdited.edited && $scope.nodeBeingEdited.unifiedJobTemplate.unified_job_type && $scope.nodeBeingEdited.unifiedJobTemplate.unified_job_type === 'job') { if (!$scope.nodeBeingEdited.isNew && !$scope.nodeBeingEdited.edited && $scope.nodeBeingEdited.unifiedJobTemplate && $scope.nodeBeingEdited.unifiedJobTemplate.unified_job_type && $scope.nodeBeingEdited.unifiedJobTemplate.unified_job_type === 'job') {
// This is a node that we got back from the api with an incomplete // This is a node that we got back from the api with an incomplete
// unified job template so we're going to pull down the whole object // unified job template so we're going to pull down the whole object

View File

@@ -63,7 +63,7 @@
<workflow-chart tree-data="treeData.data" add-node="startAddNode(parent, betweenTwoNodes)" edit-node="startEditNode(nodeToEdit)" delete-node="startDeleteNode(nodeToDelete)" can-add-workflow-job-template="canAddWorkflowJobTemplate" mode="edit" class="WorkflowMaker-chart"></workflow-chart> <workflow-chart tree-data="treeData.data" add-node="startAddNode(parent, betweenTwoNodes)" edit-node="startEditNode(nodeToEdit)" delete-node="startDeleteNode(nodeToDelete)" can-add-workflow-job-template="canAddWorkflowJobTemplate" mode="edit" class="WorkflowMaker-chart"></workflow-chart>
</div> </div>
<div class="WorkflowMaker-contentRight"> <div class="WorkflowMaker-contentRight">
<div class="WorkflowMaker-formTitle">{{(workflowMakerFormConfig.nodeMode === 'edit' && nodeBeingEdited && nodeBeingEdited.unifiedJobTemplate && nodeBeingEdited.unifiedJobTemplate.name) ? nodeBeingEdited.unifiedJobTemplate.name : "ADD A TEMPLATE"}}</div> <div class="WorkflowMaker-formTitle">{{(workflowMakerFormConfig.nodeMode === 'edit' && nodeBeingEdited) ? ((nodeBeingEdited.unifiedJobTemplate && nodeBeingEdited.unifiedJobTemplate.name) ? nodeBeingEdited.unifiedJobTemplate.name : "EDIT TEMPLATE") : "ADD A TEMPLATE"}}</div>
<div class="WorkflowMaker-formHelp" ng-show="workflowMakerFormConfig.nodeMode === 'idle'">Please hover over a template and click the Add button.</div> <div class="WorkflowMaker-formHelp" ng-show="workflowMakerFormConfig.nodeMode === 'idle'">Please hover over a template and click the Add button.</div>
<div class="WorkflowMaker-form" ng-show="workflowMakerFormConfig.nodeMode === 'add' || workflowMakerFormConfig.nodeMode === 'edit'"> <div class="WorkflowMaker-form" ng-show="workflowMakerFormConfig.nodeMode === 'add' || workflowMakerFormConfig.nodeMode === 'edit'">
<div class="Form-tabHolder"> <div class="Form-tabHolder">

View File

@@ -203,7 +203,6 @@ export default [function(){
canAddTo: true, canAddTo: true,
placeholder: false, placeholder: false,
edgeType: params.edgeType, edgeType: params.edgeType,
unifiedJobTemplate: _.clone(params.nodesObj[params.nodeId].summary_fields.unified_job_template),
isNew: false, isNew: false,
edited: false, edited: false,
originalEdge: params.edgeType, originalEdge: params.edgeType,
@@ -227,6 +226,10 @@ export default [function(){
}; };
} }
if(params.nodesObj[params.nodeId].summary_fields.unified_job_template) {
treeNode.unifiedJobTemplate = _.clone(params.nodesObj[params.nodeId].summary_fields.unified_job_template);
}
// Loop across the success nodes and add them recursively // Loop across the success nodes and add them recursively
_.forEach(params.nodesObj[params.nodeId].success_nodes, function(successNodeId) { _.forEach(params.nodesObj[params.nodeId].success_nodes, function(successNodeId) {
treeNode.children.push(_this.buildBranch({ treeNode.children.push(_this.buildBranch({