mirror of
https://github.com/ansible/awx.git
synced 2026-01-20 06:01:25 -03:30
ProjectList: Change job status UI update logic.
1. Render current job status if there is current waiting, pending or running job.\n 2. Render last job status if there is no current job.
This commit is contained in:
parent
30d78e8857
commit
0886414c72
@ -93,6 +93,14 @@ function ProjectListItem({
|
||||
const missingExecutionEnvironment =
|
||||
project.custom_virtualenv && !project.default_environment;
|
||||
|
||||
let job = null;
|
||||
|
||||
if (project.summary_fields?.current_job) {
|
||||
job = project.summary_fields.current_job;
|
||||
} else if (project.summary_fields?.last_job) {
|
||||
job = project.summary_fields.last_job;
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Tr id={`${project.id}`}>
|
||||
@ -132,14 +140,14 @@ function ProjectListItem({
|
||||
)}
|
||||
</Td>
|
||||
<Td dataLabel={i18n._(t`Status`)}>
|
||||
{project.summary_fields.last_job && (
|
||||
{job && (
|
||||
<Tooltip
|
||||
position="top"
|
||||
content={generateLastJobTooltip(project.summary_fields.last_job)}
|
||||
key={project.summary_fields.last_job.id}
|
||||
content={generateLastJobTooltip(job)}
|
||||
key={job.id}
|
||||
>
|
||||
<Link to={`/jobs/project/${project.summary_fields.last_job.id}`}>
|
||||
<StatusLabel status={project.summary_fields.last_job.status} />
|
||||
<Link to={`/jobs/project/${job.id}`}>
|
||||
<StatusLabel status={job.status} />
|
||||
</Link>
|
||||
</Tooltip>
|
||||
)}
|
||||
@ -171,7 +179,7 @@ function ProjectListItem({
|
||||
>
|
||||
<ProjectSyncButton
|
||||
projectId={project.id}
|
||||
lastJobStatus={project.summary_fields.last_job.status}
|
||||
lastJobStatus={job && job.status}
|
||||
/>
|
||||
</ActionItem>
|
||||
<ActionItem
|
||||
|
||||
@ -26,7 +26,7 @@ export default function useWsProjects(initialProjects) {
|
||||
...project,
|
||||
summary_fields: {
|
||||
...project.summary_fields,
|
||||
last_job: {
|
||||
current_job: {
|
||||
id: lastMessage.unified_job_id,
|
||||
status: lastMessage.status,
|
||||
finished: lastMessage.finished,
|
||||
|
||||
@ -64,7 +64,7 @@ describe('useWsProjects', () => {
|
||||
{
|
||||
id: 1,
|
||||
summary_fields: {
|
||||
last_job: {
|
||||
current_job: {
|
||||
id: 1,
|
||||
status: 'running',
|
||||
finished: null,
|
||||
@ -87,7 +87,7 @@ describe('useWsProjects', () => {
|
||||
})
|
||||
);
|
||||
expect(
|
||||
wrapper.find('TestInner').prop('projects')[0].summary_fields.last_job
|
||||
wrapper.find('TestInner').prop('projects')[0].summary_fields.current_job
|
||||
.status
|
||||
).toEqual('running');
|
||||
await act(async () => {
|
||||
@ -104,7 +104,7 @@ describe('useWsProjects', () => {
|
||||
wrapper.update();
|
||||
|
||||
expect(
|
||||
wrapper.find('TestInner').prop('projects')[0].summary_fields.last_job
|
||||
wrapper.find('TestInner').prop('projects')[0].summary_fields.current_job
|
||||
).toEqual({
|
||||
id: 12,
|
||||
status: 'successful',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user