From 2f6c6755b4ef9b580e2b590139c815e05f49d750 Mon Sep 17 00:00:00 2001 From: Chris Savvopoulos Date: Thu, 5 Mar 2026 21:27:38 +0200 Subject: [PATCH 1/3] Add "Load more" pagination to pipeline list --- web/src/assets/locales/en.json | 1 + .../components/repo/pipeline/PipelineList.vue | 9 +++++++++ web/src/store/pipelines.ts | 7 ++++++- web/src/views/repo/RepoPipelines.vue | 18 ++++++++++++++++-- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/web/src/assets/locales/en.json b/web/src/assets/locales/en.json index 76d31055a64..2c857d9261d 100644 --- a/web/src/assets/locales/en.json +++ b/web/src/assets/locales/en.json @@ -207,6 +207,7 @@ "config": "Config", "files": "Changed files", "no_pipelines": "No pipelines have been started yet.", + "load_more": "Load more", "no_pipeline_steps": "No pipeline steps available!", "step_not_started": "This step hasn't started yet.", "pipelines_for": "Pipelines for branch \"{branch}\"", diff --git a/web/src/components/repo/pipeline/PipelineList.vue b/web/src/components/repo/pipeline/PipelineList.vue index c2985847d7b..5d6377b445c 100644 --- a/web/src/components/repo/pipeline/PipelineList.vue +++ b/web/src/components/repo/pipeline/PipelineList.vue @@ -15,10 +15,14 @@ {{ $t('repo.pipeline.no_pipelines') }} +
+
diff --git a/web/src/store/pipelines.ts b/web/src/store/pipelines.ts index 73735de5765..e42853ee36f 100644 --- a/web/src/store/pipelines.ts +++ b/web/src/store/pipelines.ts @@ -82,12 +82,16 @@ export const usePipelineStore = defineStore('pipelines', () => { setPipeline(repoId, pipeline); } + const perPage = 50; + const hasMore = ref(false); + async function loadRepoPipelines(repoId: number, page?: number) { loading.value = true; - const _pipelines = await apiClient.getPipelineList(repoId, { page }); + const _pipelines = await apiClient.getPipelineList(repoId, { page, perPage }); _pipelines.forEach((pipeline) => { setPipeline(repoId, pipeline); }); + hasMore.value = _pipelines.length >= perPage; loading.value = false; } @@ -139,6 +143,7 @@ export const usePipelineStore = defineStore('pipelines', () => { getPipeline, loadRepoPipelines, loadPipeline, + hasMore, activePipelines, pipelineFeed, loadPipelineFeed, diff --git a/web/src/views/repo/RepoPipelines.vue b/web/src/views/repo/RepoPipelines.vue index 046c539014f..8368ec71ce7 100644 --- a/web/src/views/repo/RepoPipelines.vue +++ b/web/src/views/repo/RepoPipelines.vue @@ -1,17 +1,31 @@