diff --git a/web/src/assets/locales/en.json b/web/src/assets/locales/en.json index abdc6a09c..cc983c5c6 100644 --- a/web/src/assets/locales/en.json +++ b/web/src/assets/locales/en.json @@ -262,7 +262,7 @@ "warnings": "Warnings", "show_errors": "Show errors", "we_got_some_errors": "Oh no, an error occurred!", - "duration": "Pipeline duration", + "duration": "Pipeline duration: {duration}", "created": "Created: {created}", "debug": { "title": "Debug", diff --git a/web/src/components/repo/pipeline/PipelineItem.vue b/web/src/components/repo/pipeline/PipelineItem.vue index 2f4014118..6e1f96ef0 100644 --- a/web/src/components/repo/pipeline/PipelineItem.vue +++ b/web/src/components/repo/pipeline/PipelineItem.vue @@ -57,7 +57,7 @@ {{ pipeline.commit.slice(0, 10) }} -
+
{{ duration }}
@@ -80,6 +80,7 @@ import ListItem from '~/components/atomic/ListItem.vue'; import { pipelineStatusColors } from '~/components/repo/pipeline/pipeline-status'; import PipelineRunningIcon from '~/components/repo/pipeline/PipelineRunningIcon.vue'; import PipelineStatusIcon from '~/components/repo/pipeline/PipelineStatusIcon.vue'; +import { useDate } from '~/compositions/useDate'; import usePipeline from '~/compositions/usePipeline'; import type { Pipeline } from '~/lib/api/types'; @@ -88,9 +89,10 @@ const props = defineProps<{ }>(); const { t } = useI18n(); +const { durationAsNumber } = useDate() const pipeline = toRef(props, 'pipeline'); -const { since, duration, message, shortMessage, prettyRef, created } = usePipeline(pipeline); +const { since, duration, durationElapsed, message, shortMessage, prettyRef, created } = usePipeline(pipeline); const pipelineEventTitle = computed(() => { switch (pipeline.value.event) { diff --git a/web/src/compositions/usePipeline.ts b/web/src/compositions/usePipeline.ts index 27a158c71..ba34c3a15 100644 --- a/web/src/compositions/usePipeline.ts +++ b/web/src/compositions/usePipeline.ts @@ -115,5 +115,5 @@ export default (pipeline: Ref) => { return toLocaleString(new Date(start * 1000)); }); - return { since, duration, message, shortMessage, prTitle, prTitleWithDescription, prettyRef, created }; + return { since, duration, durationElapsed, message, shortMessage, prTitle, prTitleWithDescription, prettyRef, created }; }; diff --git a/web/src/views/repo/pipeline/PipelineWrapper.vue b/web/src/views/repo/pipeline/PipelineWrapper.vue index feb25bb3b..30709d71a 100644 --- a/web/src/views/repo/pipeline/PipelineWrapper.vue +++ b/web/src/views/repo/pipeline/PipelineWrapper.vue @@ -66,7 +66,7 @@ {{ since }}
-
+
{{ duration }}
@@ -115,6 +115,7 @@ import Tab from '~/components/layout/scaffold/Tab.vue'; import PipelineStatusIcon from '~/components/repo/pipeline/PipelineStatusIcon.vue'; import useApiClient from '~/compositions/useApiClient'; import { useAsyncAction } from '~/compositions/useAsyncAction'; +import { useDate } from '~/compositions/useDate'; import { useFavicon } from '~/compositions/useFavicon'; import { provide, requiredInject } from '~/compositions/useInjectProvide'; import useNotifications from '~/compositions/useNotifications'; @@ -136,6 +137,7 @@ const favicon = useFavicon(); const i18n = useI18n(); const pipelineStore = usePipelineStore(); +const { durationAsNumber } = useDate() const pipelineId = toRef(props, 'pipelineId'); const _repoId = toRef(props, 'repoId'); const repositoryId = computed(() => Number.parseInt(_repoId.value, 10)); @@ -143,7 +145,7 @@ const repo = requiredInject('repo'); const repoPermissions = requiredInject('repo-permissions'); const pipeline = pipelineStore.getPipeline(repositoryId, pipelineId); -const { since, duration, created, message, shortMessage } = usePipeline(pipeline); +const { since, duration, durationElapsed, created, message, shortMessage } = usePipeline(pipeline); provide('pipeline', pipeline as Ref); // can't be undefined because of v-if in template const pipelineConfigs = ref();