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..cd66f15728e 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..64abf8659fb 100644
--- a/web/src/views/repo/RepoPipelines.vue
+++ b/web/src/views/repo/RepoPipelines.vue
@@ -1,17 +1,33 @@
-
+