From 939ca3a48cb53434d4e74c48bf0dbc29e950fa63 Mon Sep 17 00:00:00 2001 From: dudina-ma Date: Thu, 9 Jul 2026 21:58:00 +0200 Subject: [PATCH] [frontend] fix missing projects in task form dropdown --- frontend/src/lib/api/projects.ts | 21 +++++++++++++++++++++ frontend/src/lib/pages/task-edit.svelte | 6 +++--- frontend/src/lib/pages/task-new.svelte | 8 ++++---- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/frontend/src/lib/api/projects.ts b/frontend/src/lib/api/projects.ts index b7dc787..6af91c8 100644 --- a/frontend/src/lib/api/projects.ts +++ b/frontend/src/lib/api/projects.ts @@ -7,6 +7,27 @@ export function listProjects(limit = 20, offset = 0, search?: string): Promise

>('GET', `/projects?${params}`) } +const LIST_ALL_PROJECTS_MAX_PAGES = 100 + +export async function listAllProjects(search?: string): Promise { + const pageSize = 100 + const items: Project[] = [] + let offset = 0 + let total = Number.POSITIVE_INFINITY + let pagesFetched = 0 + + while (offset < total && pagesFetched < LIST_ALL_PROJECTS_MAX_PAGES) { + const page = await listProjects(pageSize, offset, search) + items.push(...page.items) + total = page.total + offset += page.items.length + pagesFetched++ + if (page.items.length === 0) break + } + + return items +} + export function getProject(slug: string): Promise { return apiRequest('GET', `/projects/${encodeURIComponent(slug)}`) } diff --git a/frontend/src/lib/pages/task-edit.svelte b/frontend/src/lib/pages/task-edit.svelte index 0eb0fa2..6132ec5 100644 --- a/frontend/src/lib/pages/task-edit.svelte +++ b/frontend/src/lib/pages/task-edit.svelte @@ -1,6 +1,6 @@