implemented deletion of tasks

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-07-27 12:46:16 +02:00
parent e6516f3b8d
commit ac45517d7f
15 changed files with 105 additions and 31 deletions

View File

@@ -13,11 +13,27 @@
let children = $state(null);
let error = $state(null);
let start = 0;
let deleted = $state(false);
function addSubtask(){
router.navigate(`/task/${task.id}/add_subtask`);
}
async function deleteTask(){
if (confirm(t('confirm_delete',{element:task.name}))){
const url = api(`task/${task.id}`);
const resp = await fetch(url,{
credentials:'include',
method:'DELETE'
});
if (resp.ok){
deleted = true;
} else {
error = await resp.text();
}
}
}
async function loadChildren(){
const url = api('task/list');
var data = {
@@ -70,6 +86,7 @@
onMount(loadChildren);
</script>
{#if !deleted}
<li class="task {task.status.name.toLowerCase()}">
<LineEditor bind:value={task.name} onclick={openTask} editable={true} onSet={setName} type="span" />
{#if task.estimated_time}
@@ -90,7 +107,7 @@
{#if task.status.name != 'CANCELLED'}
<button class="symbol" title={t('abort')} onclick={() => patchTask({status:'CANCELLED'})} ></button>
{/if}
&nbsp;
<button class="symbol" title={t('delete_task')} onclick={deleteTask} ></button>
<button class="symbol" title={t('add_subtask')} onclick={addSubtask}></button>
{#if error}
<span class="error">{error}</span>
@@ -99,3 +116,4 @@
<TaskList tasks={children} {estimated_time} {show_closed} />
{/if}
</li>
{/if}