1
0
mirror of https://github.com/ansible/awx.git synced 2024-10-30 22:21:13 +03:00

Various bug fixes and minor ux enhancements

This commit is contained in:
mabashian 2019-08-20 15:53:17 -04:00 committed by Ryan Petrello
parent 5fc3b2c3f5
commit 3fa9497e3c
No known key found for this signature in database
GPG Key ID: F2AA5F2122351777
7 changed files with 136 additions and 109 deletions

View File

@ -150,7 +150,10 @@ function TemplatesStrings (BaseString) {
SAVE_AND_EXIT: t.s('SAVE & EXIT'),
APPROVAL: t.s('Approval'),
TIMEOUT_POPOVER: t.s('The amount of time to wait before this approval step is automatically denied. Defaults to 0 for no timeout.'),
TIMED_OUT: t.s('APPROVAL TIMED OUT')
TIMED_OUT: t.s('APPROVAL TIMED OUT'),
TIMEOUT: t.s('Timeout'),
APPROVED: t.s('APPROVED'),
DENIED: t.s('DENIED')
};
}

View File

@ -30,13 +30,13 @@
<div class="at-Row-container">
<at-row-item
header-value="{{ approval.summary_fields.source_workflow_job.name }}"
header-state="workflowResults({pid: {{approval.summary_fields.source_workflow_job.id}}})">
header-state="workflowResults({id: {{approval.summary_fields.source_workflow_job.id}}})">
</at-row-item>
</div>
</div>
<div class="at-Row-container--wrapped">
<at-row-item
value-bind-html="<b>Pause Node</b>">
value-bind-html="<b>{{:: vm.strings.get('approvals.APPROVAL') }}</b>">
</at-row-item>
<at-row-item
value-bind-html="{{ approval.name }}">

View File

@ -121,6 +121,7 @@ function ComponentsStrings (BaseString) {
};
ns.approvals = {
APPROVAL: t.s('APPROVAL'),
NONE: t.s('There are no jobs awaiting approval'),
APPROVE: t.s('APPROVE'),
DENY: t.s('DENY'),

View File

@ -97,7 +97,6 @@
color: @at-white;
height: 16px;
font-size: 11px;
font-weight: bold;
cursor: default;
display: flex;
align-items: center;

View File

@ -170,13 +170,20 @@
text-align: center;
}
.WorkflowChart-timedOutText {
.WorkflowChart-timedOutText, .WorkflowChart-deniedText {
width: 180px;
height: 14px;
color: @default-err;
text-align: center;
}
.WorkflowChart-approvedText {
width: 180px;
height: 14px;
color: @default-succ;
text-align: center;
}
.WorkflowChart-tooltip {
pointer-events: none;
text-align: center;

View File

@ -835,6 +835,12 @@ export default ['moment', '$timeout', '$window', '$filter', 'TemplatesStrings',
baseSvg.selectAll(".WorkflowChart-timedOutText")
.style("display", (d) => { return d.job && d.job.timed_out ? null : "none"; });
baseSvg.selectAll(".WorkflowChart-deniedText")
.style("display", (d) => { return d.job && d.job.type === "workflow_approval" && d.job.status === "failed" && !d.job.timed_out ? null : "none"; });
baseSvg.selectAll(".WorkflowChart-approvedText")
.style("display", (d) => { return d.job && d.job.type === "workflow_approval" && d.job.status === "successful" && !d.job.timed_out ? null : "none"; });
baseSvg.selectAll(".WorkflowChart-activeNode")
.style("display", (d) => { return d.id === scope.graphState.nodeBeingEdited ? null : "none"; });
@ -950,7 +956,25 @@ export default ['moment', '$timeout', '$window', '$filter', 'TemplatesStrings',
.attr("text-anchor", "middle")
.attr("class", "WorkflowChart-defaultText WorkflowChart-timedOutText")
.html(`<span>${TemplatesStrings.get('workflow_maker.TIMED_OUT')}</span>`)
.style("display", (d) => { return d.job && d.job.timed_out ? null : "none"; });
.style("display", (d) => { return d.job && d.job.type === "workflow_approval" && d.job.timed_out ? null : "none"; });
thisNode.append("foreignObject")
.attr("x", 0)
.attr("y", 22)
.attr("dy", ".35em")
.attr("text-anchor", "middle")
.attr("class", "WorkflowChart-defaultText WorkflowChart-deniedText")
.html(`<span>${TemplatesStrings.get('workflow_maker.DENIED')}</span>`)
.style("display", (d) => { return d.job && d.job.type === "workflow_approval" && d.job.status === "failed" && !d.job.timed_out ? null : "none"; });
thisNode.append("foreignObject")
.attr("x", 0)
.attr("y", 22)
.attr("dy", ".35em")
.attr("text-anchor", "middle")
.attr("class", "WorkflowChart-defaultText WorkflowChart-approvedText")
.html(`<span>${TemplatesStrings.get('workflow_maker.APPROVED')}</span>`)
.style("display", (d) => { return d.job && d.job.type === "workflow_approval" && d.job.status === "successful" && !d.job.timed_out ? null : "none"; });
thisNode.append("circle")
.attr("cy", nodeH)

View File

@ -159,11 +159,6 @@
<span>{{:: strings.get('workflows.INVALID_JOB_TEMPLATE') }}</span>
</div>
</div>
<div ng-if="selectedTemplate && credentialRequiresPassword">
<div class="WorkflowMaker-invalidJobTemplateWarning">
<span class="fa fa-warning"></span>
<span>{{:: strings.get('workflows.CREDENTIAL_WITH_PASS') }}</span>
</div>
<div ng-if="selectedTemplate && jobNodeState.credentialRequiresPassword">
<div class="WorkflowMaker-invalidJobTemplateWarning">
<span class="fa fa-warning"></span>
@ -266,7 +261,6 @@
</div>
</div>
</div>
</div>
<div class="Prompt-previewRow--flex" ng-if="nodeConfig.node.originalNodeObject.diff_mode !== null">
<div class="Prompt-previewRowTitle">{{:: strings.get('prompt.SHOW_CHANGES') }}</div>
<div class="Prompt-previewRowValue">
@ -294,5 +288,4 @@
<button type="button" class="btn btn-sm Form-saveButton" id="workflow_maker_select_node_btn" ng-show="!readOnly" ng-click="confirmNodeForm()" ng-disabled="selectIsDisabled()"> {{:: strings.get('workflow_maker.SELECT') }}</button>
</div>
<prompt prompt-data="jobNodeState.promptData" action-text="{{:: strings.get('prompt.CONFIRM')}}" prevent-creds-with-passwords="preventCredsWithPasswords" read-only-prompts="readOnly"></prompt>
</div>
</div>