diff --git a/apps/ui/src/routes/applications/[id]/logs/_BuildLog.svelte b/apps/ui/src/routes/applications/[id]/logs/_BuildLog.svelte index 48fc836b8..51034df07 100644 --- a/apps/ui/src/routes/applications/[id]/logs/_BuildLog.svelte +++ b/apps/ui/src/routes/applications/[id]/logs/_BuildLog.svelte @@ -6,7 +6,6 @@ import { page } from '$app/stores'; - import Loading from '$lib/components/Loading.svelte'; import { get, post } from '$lib/api'; import { t } from '$lib/translations'; import LoadingLogs from '$lib/components/LoadingLogs.svelte'; @@ -14,7 +13,6 @@ import Tooltip from '$lib/components/Tooltip.svelte'; let logs: any = []; - let loading = true; let currentStatus: any; let streamInterval: any; let followingBuild: any; @@ -47,7 +45,6 @@ logs = logs.concat( responseLogs.map((log: any) => ({ ...log, line: cleanAnsiCodes(log.line) })) ); - loading = false; streamInterval = setInterval(async () => { if (status !== 'running' && status !== 'queued') { clearInterval(streamInterval); @@ -64,7 +61,7 @@ logs = logs.concat( data.logs.map((log: any) => ({ ...log, line: cleanAnsiCodes(log.line) })) ); - dispatch('updateBuildStatus', { status }); + dispatch('updateBuildStatus', { status, took: data.took }); } catch (error) { return errorNotification(error); } @@ -97,86 +94,82 @@ }); -{#if loading} - -{:else} -
- {#if currentStatus === 'running'} - - {/if} - {#if currentStatus === 'queued'} -
{$t('application.build.queued_waiting_exec')}
- {:else} -
+
+ {#if currentStatus === 'running'} + + {/if} + {#if currentStatus === 'queued'} +
{$t('application.build.queued_waiting_exec')}
+ {:else} +
+ + Follow Logs + {#if currentStatus === 'running'} - Follow Logs - {#if currentStatus === 'running'} - - Cancel build - {/if} -
- {#if logs.length > 0} -
- {#each logs as log} -
{log.line + '\n'}
- {/each} -
- {:else} -
- No logs found. -
+ Cancel build {/if} +
+ {#if logs.length > 0} +
+ {#each logs as log} +
{log.line + '\n'}
+ {/each} +
+ {:else} +
+ No logs found. +
{/if} -
-{/if} + {/if} +
diff --git a/apps/ui/src/routes/applications/[id]/logs/build.svelte b/apps/ui/src/routes/applications/[id]/logs/build.svelte index d1373e71e..faeec72c0 100644 --- a/apps/ui/src/routes/applications/[id]/logs/build.svelte +++ b/apps/ui/src/routes/applications/[id]/logs/build.svelte @@ -28,17 +28,20 @@ import { get } from '$lib/api'; import { t } from '$lib/translations'; import { changeQueryParams, dateOptions, errorNotification } from '$lib/common'; + import Tooltip from '$lib/components/Tooltip.svelte'; let buildId: any; let skip = 0; let noMoreBuilds = buildCount < 5 || buildCount <= skip; + + let buildTook = 0; const { id } = $page.params; let preselectedBuildId = $page.url.searchParams.get('buildId'); if (preselectedBuildId) buildId = preselectedBuildId; async function updateBuildStatus({ detail }: { detail: any }) { - const { status } = detail; + const { status, took } = detail; if (status !== 'running') { try { const data = await get(`/applications/${id}/logs/build?buildId=${buildId}`); @@ -58,6 +61,7 @@ if (build.id === buildId) build.status = status; return build; }); + buildTook = took; } } async function loadMoreBuilds() { @@ -137,20 +141,18 @@
{#each builds as build, index (build.id)}
loadBuild(build.id)} class:rounded-tr={index === 0} class:rounded-br={index === builds.length - 1} - class="tooltip tooltip-primary tooltip-top flex cursor-pointer items-center justify-center border-l-2 py-4 no-underline transition-all duration-100 hover:bg-coolgray-400 hover:shadow-xl" + class="flex cursor-pointer items-center justify-center border-l-2 py-4 no-underline transition-all duration-100 hover:bg-coolgray-400 hover:shadow-xl" class:bg-coolgray-400={buildId === build.id} class:border-red-500={build.status === 'failed'} class:border-orange-500={build.status === 'canceled'} class:border-green-500={build.status === 'success'} class:border-yellow-500={build.status === 'running'} > -
+
{build.branch || application.branch}
@@ -162,6 +164,10 @@
{#if build.status === 'running'}
{$t('application.build.running')}
+
+ Elapsed + {buildTook}s +
{:else if build.status === 'queued'}
{$t('application.build.queued')}
{:else} @@ -172,6 +178,10 @@ {/if}
+ {new Intl.DateTimeFormat('default', dateOptions).format(new Date(build.createdAt)) + + `\n${build.status}`} {/each}
{#if !noMoreBuilds}