Skip to content

Commit e5cada2

Browse files
committed
styling github links
1 parent 6da9b3f commit e5cada2

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

client/src/app/components/environments/workflow-job-status/workflow-jobs-status.component.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ <h3 class="text-lg font-medium">Job Status</h3>
1515
>
1616
<div class="job-header flex justify-between items-center mb-2">
1717
<div class="flex items-center gap-2">
18-
<i-tabler [name]="getStatusIcon(job.status, job.conclusion)" [ngClass]="getStatusClass(job.status, job.conclusion)" class="!size-5"></i-tabler>
18+
<i-tabler [name]="getStatusIcon(job.status, job.conclusion)" [ngClass]="getIconColorClass(job.status, job.conclusion)" class="!size-5"></i-tabler>
1919
<span class="font-semibold">{{ job.name }}</span>
2020
<span class="status-badge px-2 py-1 rounded-full text-xs font-medium" [ngClass]="getStatusClass(job.status, job.conclusion)">
2121
{{ getStatusText(job.status, job.conclusion) }}
2222
</span>
2323
@if (!!job.htmlUrl) {
24-
<button text class="ml-2 text-xs text-blue-600 hover:underline" (click)="openLink(job.htmlUrl)">View Logs</button>
24+
<p-button [link]="true" label="View Logs on Github" size="small" (click)="openLink(job.htmlUrl)">
25+
<i-tabler name="external-link" class="!size-4"></i-tabler>
26+
</p-button>
2527
}
2628
</div>
2729
<div class="text-sm text-gray-500 flex items-center gap-2">
@@ -108,7 +110,7 @@ <h3 class="text-lg font-medium">Job Status</h3>
108110
@if (deploymentUnsuccessful() && !!latestDeployment()?.workflowRunHtmlUrl) {
109111
<div class="flex-col w-full justify-items-center">
110112
<div class="text-red-600 text-sm mb-2">Some jobs failed. Please check the details below.</div>
111-
<p-button label="Open in GitHub" (click)="openLink(latestDeployment()?.workflowRunHtmlUrl)">
113+
<p-button label="Open Workflow Run on GitHub" (click)="openLink(latestDeployment()?.workflowRunHtmlUrl)">
112114
<i-tabler name="brand-github" class="!size-4" />
113115
</p-button>
114116
</div>

client/src/app/components/environments/workflow-job-status/workflow-jobs-status.component.ts

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import { getWorkflowJobStatusOptions, getWorkflowJobStatusQueryKey } from '@app/
55
import { PermissionService } from '@app/core/services/permission.service';
66
import { injectQuery } from '@tanstack/angular-query-experimental';
77
import { provideTablerIcons, TablerIconComponent } from 'angular-tabler-icons';
8-
import { IconBrandGithub, IconCircleCheck, IconCircleMinus, IconCircleX, IconClock, IconProgress } from 'angular-tabler-icons/icons';
8+
import { IconBrandGithub, IconCircleCheck, IconCircleMinus, IconCircleX, IconClock, IconExternalLink, IconProgress } from 'angular-tabler-icons/icons';
99
import { Button } from 'primeng/button';
1010

1111
@Component({
1212
selector: 'app-workflow-jobs-status',
1313
standalone: true,
1414
imports: [CommonModule, TablerIconComponent, Button],
15-
providers: [DatePipe, provideTablerIcons({ IconClock, IconProgress, IconCircleMinus, IconCircleCheck, IconCircleX, IconBrandGithub })],
15+
providers: [DatePipe, provideTablerIcons({ IconClock, IconProgress, IconCircleMinus, IconCircleCheck, IconCircleX, IconBrandGithub, IconExternalLink })],
1616
templateUrl: './workflow-jobs-status.component.html',
1717
})
1818
export class WorkflowJobsStatusComponent {
@@ -44,6 +44,7 @@ export class WorkflowJobsStatusComponent {
4444

4545
return false;
4646
});
47+
4748
workflowJobsQuery = injectQuery(() => ({
4849
...getWorkflowJobStatusOptions({ path: { runId: this.workflowRunId() } }),
4950
queryKey: getWorkflowJobStatusQueryKey({ path: { runId: this.workflowRunId() } }),
@@ -106,13 +107,13 @@ export class WorkflowJobsStatusComponent {
106107
}
107108
// Get CSS class for job status
108109
getStatusClass(status: string | null | undefined, conclusion: string | null | undefined): string {
109-
if (conclusion === 'success') return 'text-green-600 bg-green-50 dark:text-green-400 dark:bg-green-900/30';
110-
if (conclusion === 'failure') return 'text-red-600 bg-red-50 dark:text-red-400 dark:bg-red-900/30';
111-
if (conclusion === 'skipped') return 'text-gray-600 bg-gray-50 dark:text-gray-400 dark:bg-gray-800';
110+
if (conclusion === 'success') return 'text-green-600 bg-green-100 dark:text-green-400 dark:bg-green-900/30';
111+
if (conclusion === 'failure') return 'text-red-600 bg-red-100 dark:text-red-400 dark:bg-red-900/30';
112+
if (conclusion === 'skipped') return 'text-gray-600 bg-gray-100 dark:text-gray-400 dark:bg-gray-900';
112113
if (conclusion === 'cancelled') return 'text-orange-600 bg-orange-50 dark:text-orange-400 dark:bg-orange-900/30';
113114

114115
if (status === 'in_progress') return 'text-blue-600 bg-blue-50 dark:text-blue-400 dark:bg-blue-900/30';
115-
if (status === 'queued' || status === 'waiting') return 'text-gray-600 bg-gray-100 dark:text-gray-400 dark:bg-gray-800';
116+
if (status === 'queued' || status === 'waiting') return 'text-gray-600 bg-gray-100 dark:text-gray-400 dark:bg-gray-900';
116117

117118
return 'text-gray-600 dark:text-gray-400';
118119
}
@@ -141,6 +142,18 @@ export class WorkflowJobsStatusComponent {
141142
return 'help';
142143
}
143144

145+
getIconColorClass(status: string | null | undefined, conclusion: string | null | undefined): string {
146+
if (conclusion === 'success') return 'text-green-600 dark:text-green-400';
147+
if (conclusion === 'failure') return 'text-red-600 dark:text-red-400';
148+
if (conclusion === 'skipped') return 'text-gray-600 dark:text-gray-400';
149+
if (conclusion === 'cancelled') return 'text-orange-600 dark:text-orange-400';
150+
151+
if (status === 'in_progress') return 'text-blue-600 dark:text-blue-400 animate-spin';
152+
if (status === 'queued' || status === 'waiting') return 'text-gray-600 dark:text-gray-400';
153+
154+
return 'text-gray-600 dark:text-gray-400';
155+
}
156+
144157
// Get status text for display
145158
getStatusText(status: string | null | undefined, conclusion: string | null | undefined): string {
146159
return conclusion || status || 'Unknown';

0 commit comments

Comments
 (0)