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 @@