diff --git a/web/components.d.ts b/web/components.d.ts index 3ade0da58..594922cba 100644 --- a/web/components.d.ts +++ b/web/components.d.ts @@ -37,7 +37,10 @@ declare module '@vue/runtime-core' { IGgTrash: typeof import('~icons/gg/trash')['default'] IIcBaselineDarkMode: typeof import('~icons/ic/baseline-dark-mode')['default'] IIcBaselineDownload: typeof import('~icons/ic/baseline-download')['default'] + IIcBaselineDownloadForOffline: typeof import('~icons/ic/baseline-download-for-offline')['default'] IIcBaselineEdit: typeof import('~icons/ic/baseline-edit')['default'] + IIcBaselineFileDownload: typeof import('~icons/ic/baseline-file-download')['default'] + IIcBaselineFileDownloadOff: typeof import('~icons/ic/baseline-file-download-off')['default'] IIcBaselineHealing: typeof import('~icons/ic/baseline-healing')['default'] IIconoirArrowLeft: typeof import('~icons/iconoir/arrow-left')['default'] IIconParkOutlineAlarmClock: typeof import('~icons/icon-park-outline/alarm-clock')['default'] @@ -50,10 +53,10 @@ declare module '@vue/runtime-core' { IMdiFormatListBulleted: typeof import('~icons/mdi/format-list-bulleted')['default'] IMdiGithub: typeof import('~icons/mdi/github')['default'] IMdiLoading: typeof import('~icons/mdi/loading')['default'] + IMdiSync: typeof import('~icons/mdi/sync')['default'] IMdiSourceBranch: typeof import('~icons/mdi/source-branch')['default'] IMdisourceCommit: typeof import('~icons/mdi/source-commit')['default'] IMdiSourcePull: typeof import('~icons/mdi/source-pull')['default'] - IMdiSync: typeof import('~icons/mdi/sync')['default'] IMdiTagOutline: typeof import('~icons/mdi/tag-outline')['default'] InputField: typeof import('./src/components/form/InputField.vue')['default'] IOcticonSkip24: typeof import('~icons/octicon/skip24')['default'] diff --git a/web/package.json b/web/package.json index 3d2d1f20b..c62a2e44f 100644 --- a/web/package.json +++ b/web/package.json @@ -20,6 +20,7 @@ "@intlify/vite-plugin-vue-i18n": "^6.0.0", "@kyvg/vue3-notification": "^2.3.6", "@meforma/vue-toaster": "^1.3.0", + "@vueuse/core": "^9.1.1", "ansi_up": "^5.1.0", "dayjs": "^1.11.4", "floating-vue": "^2.0.0-beta.19", diff --git a/web/src/assets/locales/en.json b/web/src/assets/locales/en.json index e76b58d4f..67e23587a 100644 --- a/web/src/assets/locales/en.json +++ b/web/src/assets/locales/en.json @@ -190,7 +190,9 @@ "canceled": "This step has been canceled.", "cancel_success": "Pipeline canceled", "restart_success": "Pipeline restarted", - "log_download": "Download" + "log_download": "Download", + "log_auto_scroll": "Automatically scroll down", + "log_auto_scroll_off": "Turn off automatic scrolling" }, "protected": { "awaits": "This pipeline is awaiting approval by some maintainer!", diff --git a/web/src/assets/locales/lv.json b/web/src/assets/locales/lv.json index c86da1e92..3340b41a9 100644 --- a/web/src/assets/locales/lv.json +++ b/web/src/assets/locales/lv.json @@ -165,7 +165,9 @@ "canceled": "Šis solis tika atcelts.", "cancel_success": "Konvejerdarbs atcelts", "restart_success": "Konvejerdarbs pārstartēts", - "log_download": "Lejupielādēt" + "log_download": "Lejupielādēt", + "log_auto_scroll": "Automātiski ritināt", + "log_auto_scroll_off": "Atslēgt automātisko ritināšanu" }, "protected": { "awaits": "Šim konvejerdarbam ir nepieciešams apstiprinājums no atbildīgajām personām!", diff --git a/web/src/components/atomic/Icon.vue b/web/src/components/atomic/Icon.vue index 68ab56659..fcbb97082 100644 --- a/web/src/components/atomic/Icon.vue +++ b/web/src/components/atomic/Icon.vue @@ -36,8 +36,10 @@ - + + +
@@ -84,7 +86,9 @@ export type IconNames = | 'close' | 'edit' | 'stopwatch' - | 'download'; + | 'download' + | 'auto-scroll' + | 'auto-scroll-off'; export default defineComponent({ name: 'Icon', diff --git a/web/src/components/build-feed/BuildFeedSidebar.vue b/web/src/components/build-feed/BuildFeedSidebar.vue index 290dbf34f..b11d93cd6 100644 --- a/web/src/components/build-feed/BuildFeedSidebar.vue +++ b/web/src/components/build-feed/BuildFeedSidebar.vue @@ -1,7 +1,7 @@