mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 02:47:35 -02:30
Fixed several workflow prompting and edge type bugs
This commit is contained in:
@@ -349,7 +349,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
|
|||||||
|
|
||||||
let processed = PromptService.processSurveyQuestions({
|
let processed = PromptService.processSurveyQuestions({
|
||||||
surveyQuestions: surveyQuestionRes.data.spec,
|
surveyQuestions: surveyQuestionRes.data.spec,
|
||||||
extra_data: data.extra_data
|
extra_data: _.cloneDeep(data.extra_data)
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.missingSurveyValue = processed.missingSurveyValue;
|
$scope.missingSurveyValue = processed.missingSurveyValue;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
Empty, PromptService, Rest) {
|
Empty, PromptService, Rest) {
|
||||||
|
|
||||||
let form = WorkflowMakerForm();
|
let form = WorkflowMakerForm();
|
||||||
let promptWatcher;
|
let promptWatcher, surveyQuestionWatcher;
|
||||||
|
|
||||||
$scope.workflowMakerFormConfig = {
|
$scope.workflowMakerFormConfig = {
|
||||||
nodeMode: "idle",
|
nodeMode: "idle",
|
||||||
@@ -549,6 +549,10 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
promptWatcher();
|
promptWatcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(surveyQuestionWatcher) {
|
||||||
|
surveyQuestionWatcher();
|
||||||
|
}
|
||||||
|
|
||||||
$scope.promptData = null;
|
$scope.promptData = null;
|
||||||
|
|
||||||
// Reset the edgeConflict flag
|
// Reset the edgeConflict flag
|
||||||
@@ -572,6 +576,10 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
promptWatcher();
|
promptWatcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(surveyQuestionWatcher) {
|
||||||
|
surveyQuestionWatcher();
|
||||||
|
}
|
||||||
|
|
||||||
$scope.promptData = null;
|
$scope.promptData = null;
|
||||||
|
|
||||||
// Reset the edgeConflict flag
|
// Reset the edgeConflict flag
|
||||||
@@ -692,7 +700,7 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
|
|
||||||
let processed = PromptService.processSurveyQuestions({
|
let processed = PromptService.processSurveyQuestions({
|
||||||
surveyQuestions: surveyQuestionRes.data.spec,
|
surveyQuestions: surveyQuestionRes.data.spec,
|
||||||
extra_data: $scope.nodeBeingEdited.originalNodeObj.extra_data
|
extra_data: _.cloneDeep($scope.nodeBeingEdited.originalNodeObj.extra_data)
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.missingSurveyValue = processed.missingSurveyValue;
|
$scope.missingSurveyValue = processed.missingSurveyValue;
|
||||||
@@ -707,7 +715,7 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
template: $scope.nodeBeingEdited.unifiedJobTemplate.id
|
template: $scope.nodeBeingEdited.unifiedJobTemplate.id
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.$watch('promptData.surveyQuestions', () => {
|
surveyQuestionWatcher = $scope.$watch('promptData.surveyQuestions', () => {
|
||||||
let missingSurveyValue = false;
|
let missingSurveyValue = false;
|
||||||
_.each($scope.promptData.surveyQuestions, (question) => {
|
_.each($scope.promptData.surveyQuestions, (question) => {
|
||||||
if(question.required && (Empty(question.model) || question.model === [])) {
|
if(question.required && (Empty(question.model) || question.model === [])) {
|
||||||
@@ -778,19 +786,19 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
switch($scope.nodeBeingEdited.edgeType) {
|
switch($scope.nodeBeingEdited.edgeType) {
|
||||||
case "always":
|
case "always":
|
||||||
$scope.edgeType = {label: "Always", value: "always"};
|
$scope.edgeType = {label: "Always", value: "always"};
|
||||||
if(siblingConnectionTypes.length === 0 || (siblingConnectionTypes.length === 1 && _.includes(siblingConnectionTypes, "always"))) {
|
if(siblingConnectionTypes.length === 1 && _.includes(siblingConnectionTypes, "always")) {
|
||||||
edgeDropdownOptions = ["always"];
|
edgeDropdownOptions = ["always"];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "success":
|
case "success":
|
||||||
$scope.edgeType = {label: "On Success", value: "success"};
|
$scope.edgeType = {label: "On Success", value: "success"};
|
||||||
if(siblingConnectionTypes.length === 0 || (!_.includes(siblingConnectionTypes, "always"))) {
|
if(siblingConnectionTypes.length !== 0 && (!_.includes(siblingConnectionTypes, "always"))) {
|
||||||
edgeDropdownOptions = ["success", "failure"];
|
edgeDropdownOptions = ["success", "failure"];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "failure":
|
case "failure":
|
||||||
$scope.edgeType = {label: "On Failure", value: "failure"};
|
$scope.edgeType = {label: "On Failure", value: "failure"};
|
||||||
if(siblingConnectionTypes.length === 0 || (!_.includes(siblingConnectionTypes, "always"))) {
|
if(siblingConnectionTypes.length !== 0 && (!_.includes(siblingConnectionTypes, "always"))) {
|
||||||
edgeDropdownOptions = ["success", "failure"];
|
edgeDropdownOptions = ["success", "failure"];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -869,9 +877,10 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
$scope.$broadcast("refreshWorkflowChart");
|
$scope.$broadcast("refreshWorkflowChart");
|
||||||
|
|
||||||
if($scope.placeholderNode) {
|
if($scope.placeholderNode) {
|
||||||
let edgeType = "success";
|
let edgeType = {label: "On Success", value: "success"};
|
||||||
if($scope.placeholderNode.isRoot) {
|
if($scope.placeholderNode.isRoot) {
|
||||||
edgeType = "always";
|
updateEdgeDropdownOptions(["always"]);
|
||||||
|
edgeType = {label: "Always", value: "always"};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// we need to update the possible edges based on any new siblings
|
// we need to update the possible edges based on any new siblings
|
||||||
@@ -881,18 +890,24 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
childId: $scope.placeholderNode.id
|
childId: $scope.placeholderNode.id
|
||||||
});
|
});
|
||||||
|
|
||||||
if (_.includes(siblingConnectionTypes, "success") || _.includes(siblingConnectionTypes, "failure")) {
|
if (
|
||||||
|
(_.includes(siblingConnectionTypes, "success") || _.includes(siblingConnectionTypes, "failure")) &&
|
||||||
|
!_.includes(siblingConnectionTypes, "always")
|
||||||
|
) {
|
||||||
updateEdgeDropdownOptions(["success", "failure"]);
|
updateEdgeDropdownOptions(["success", "failure"]);
|
||||||
} else if (_.includes(siblingConnectionTypes, "always")) {
|
} else if (
|
||||||
|
_.includes(siblingConnectionTypes, "always") &&
|
||||||
|
!_.includes(siblingConnectionTypes, "success") &&
|
||||||
|
!_.includes(siblingConnectionTypes, "failure")
|
||||||
|
) {
|
||||||
updateEdgeDropdownOptions(["always"]);
|
updateEdgeDropdownOptions(["always"]);
|
||||||
edgeType = "always";
|
edgeType = {label: "Always", value: "always"};
|
||||||
} else {
|
} else {
|
||||||
updateEdgeDropdownOptions();
|
updateEdgeDropdownOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
$scope.edgeType = edgeType;
|
$scope.edgeType = edgeType;
|
||||||
// $scope.$broadcast("setEdgeType", edgeType);
|
|
||||||
}
|
}
|
||||||
else if($scope.nodeBeingEdited) {
|
else if($scope.nodeBeingEdited) {
|
||||||
let siblingConnectionTypes = WorkflowService.getSiblingConnectionTypes({
|
let siblingConnectionTypes = WorkflowService.getSiblingConnectionTypes({
|
||||||
@@ -912,12 +927,37 @@ export default ['$scope', 'WorkflowService', 'GetBasePath', 'TemplatesService',
|
|||||||
switch($scope.nodeBeingEdited.edgeType) {
|
switch($scope.nodeBeingEdited.edgeType) {
|
||||||
case "always":
|
case "always":
|
||||||
$scope.edgeType = {label: "Always", value: "always"};
|
$scope.edgeType = {label: "Always", value: "always"};
|
||||||
|
if (
|
||||||
|
_.includes(siblingConnectionTypes, "always") &&
|
||||||
|
!_.includes(siblingConnectionTypes, "success") &&
|
||||||
|
!_.includes(siblingConnectionTypes, "failure")
|
||||||
|
) {
|
||||||
|
updateEdgeDropdownOptions(["always"]);
|
||||||
|
} else {
|
||||||
|
updateEdgeDropdownOptions();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "success":
|
case "success":
|
||||||
$scope.edgeType = {label: "On Success", value: "success"};
|
$scope.edgeType = {label: "On Success", value: "success"};
|
||||||
|
if (
|
||||||
|
(_.includes(siblingConnectionTypes, "success") || _.includes(siblingConnectionTypes, "failure")) &&
|
||||||
|
!_.includes(siblingConnectionTypes, "always")
|
||||||
|
) {
|
||||||
|
updateEdgeDropdownOptions(["success", "failure"]);
|
||||||
|
} else {
|
||||||
|
updateEdgeDropdownOptions();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "failure":
|
case "failure":
|
||||||
$scope.edgeType = {label: "On Failure", value: "failure"};
|
$scope.edgeType = {label: "On Failure", value: "failure"};
|
||||||
|
if (
|
||||||
|
(_.includes(siblingConnectionTypes, "success") || _.includes(siblingConnectionTypes, "failure")) &&
|
||||||
|
!_.includes(siblingConnectionTypes, "always")
|
||||||
|
) {
|
||||||
|
updateEdgeDropdownOptions(["success", "failure"]);
|
||||||
|
} else {
|
||||||
|
updateEdgeDropdownOptions();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user