working on task index

This commit is contained in:
2025-08-04 08:50:40 +02:00
parent 8eef37eb1a
commit 983f1bac49
5 changed files with 105 additions and 30 deletions

View File

@@ -25,6 +25,7 @@
import Search from "./routes/search/Search.svelte";
import SendDoc from "./routes/document/Send.svelte";
import TagUses from "./routes/tags/TagUses.svelte";
import TaskList from "./routes/task/Index.svelte";
import User from "./routes/user/User.svelte";
import ViewDoc from "./routes/document/View.svelte";
import ViewPrj from "./routes/project/View.svelte";
@@ -50,34 +51,35 @@
<Router>
{#if user.name }
<!-- https://github.com/notnotsamuel/svelte-tiny-router -->
<Menu />
<Route path="/" component={User} />
<Route path="/bookmark" component={Bookmarks} />
<Route path="/bookmark/:id/view" component={Bookmark} />
<Route path="/document" component={DocList} />
<Route path="/document/add" component={AddDoc} />
<Route path="/document/:id/send" component={SendDoc} />
<Route path="/document/:id/view" component={ViewDoc} />
<Route path="/message/settings" component={Messages} />
<Route path="/notes" component={Notes} />
<Route path="/project" component={ProjectList} />
<Route path="/project/add" component={ProjectAdd} />
<Route path="/project/:project_id/add_task" component={AddTask} />
<Route path="/project/:id/kanban" component={Kanban} />
<Route path="/project/:id/view" component={ViewPrj} />
<Route path="/search" component={Search} />
<Route path="/tags/use/:tag" component={TagUses} />
<Route path="/task/:parent_task_id/add_subtask" component={AddTask} />
<Route path="/task/:id/view" component={ViewTask} />
<Route path="/user" component={User} />
<Route path="/user/create" component={EditUser} />
<Route path="/user/login" component={User} />
<Route path="/user/:user_id/edit" component={EditUser} />
<Route path="/user/oidc/add" component={EditService} />
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
<Route>
Not found!
</Route>
<Menu />
<Route path="/" component={User} />
<Route path="/bookmark" component={Bookmarks} />
<Route path="/bookmark/:id/view" component={Bookmark} />
<Route path="/document" component={DocList} />
<Route path="/document/add" component={AddDoc} />
<Route path="/document/:id/send" component={SendDoc} />
<Route path="/document/:id/view" component={ViewDoc} />
<Route path="/message/settings" component={Messages} />
<Route path="/notes" component={Notes} />
<Route path="/project" component={ProjectList} />
<Route path="/project/add" component={ProjectAdd} />
<Route path="/project/:project_id/add_task" component={AddTask} />
<Route path="/project/:id/kanban" component={Kanban} />
<Route path="/project/:id/view" component={ViewPrj} />
<Route path="/search" component={Search} />
<Route path="/tags/use/:tag" component={TagUses} />
<Route path="/task" component={TaskList} />
<Route path="/task/:parent_task_id/add_subtask" component={AddTask} />
<Route path="/task/:id/view" component={ViewTask} />
<Route path="/user" component={User} />
<Route path="/user/create" component={EditUser} />
<Route path="/user/login" component={User} />
<Route path="/user/:user_id/edit" component={EditUser} />
<Route path="/user/oidc/add" component={EditService} />
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
<Route>
Not found!
</Route>
{:else}
<Route path="/user/reset/pw" component={ResetPw} />
<Route path="/oidc_callback" component={Callback} />

View File

@@ -0,0 +1,51 @@
<script>
import { onMount } from 'svelte';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.svelte.js';
let error = $state(null);
let tasks = $state(null);
async function load(){
const url = api('task');
const resp = await fetch(url,{credentials:'include'});
let project_ids = {};
if (resp.ok){
tasks = await resp.json();
for (let task of (Object.values(tasks))) project_ids[task.project_id] = true;
} else {
error = await resp.text();
}
project_ids = Object.keys(project_ids);
console.log(project_ids);
}
onMount(load);
</script>
<fieldsett>
<legend>{t('task_list')}</legend>
{#if error}
<soan class="error">{error}</soan>
{/if}
{#if tasks}
<table>
<thead>
<tr>
<th>{t('title')}</th>
<th>{t('project')} / {t('parent_task')}</th>
</tr>
</thead>
<tbody>
{#each Object.entries(tasks) as [tid,task]}
<tr>
<td>{task.name}</td>
<td>{task.project_id} {task.parent_task_id?tasks[task.parent_task_id]?.name:''}</td>
<td>TODO: load projects</td>
</tr>
{/each}
</tbody>
</table>
{/if}
</fieldsett>