solved issues when moving tasks
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
let {
|
||||
estimated_time,
|
||||
show_closed,
|
||||
siblings,
|
||||
task
|
||||
} = $props();
|
||||
let children = $state(null);
|
||||
@@ -39,34 +40,25 @@
|
||||
}
|
||||
}
|
||||
|
||||
function drag(ev,task){
|
||||
function ondragstart(ev){
|
||||
ev.stopPropagation();
|
||||
task.new_parent = false;
|
||||
dragged.element = task;
|
||||
dragged.element = task;
|
||||
dragged.siblings = siblings;
|
||||
}
|
||||
|
||||
function dragend(ev,task){
|
||||
ev.stopPropagation();
|
||||
setTimeout(() => {
|
||||
if (dragged.moved){
|
||||
console.log("removing",ev.target);
|
||||
ev.target.remove();
|
||||
}
|
||||
},500);
|
||||
}
|
||||
|
||||
async function dropAt(ev,target){
|
||||
async function ondrop(ev){
|
||||
ev.stopPropagation();
|
||||
if (dragged.element.id == target.id) return;
|
||||
if (dragged.element.id == task.id) return;
|
||||
const url = api(`task/${dragged.element.id}`);
|
||||
const resp = await fetch(url,{
|
||||
credentials : 'include',
|
||||
method : 'PATCH',
|
||||
body : JSON.stringify({ parent_task_id : target.id})
|
||||
body : JSON.stringify({ parent_task_id : task.id})
|
||||
});
|
||||
if (resp.ok) {
|
||||
dragged.moved = true;
|
||||
children[dragged.element.id]=dragged.element;
|
||||
if (dragged.siblings[dragged.element.id]) delete dragged.siblings[dragged.element.id];
|
||||
} else {
|
||||
error = await resp.text();
|
||||
}
|
||||
@@ -125,7 +117,7 @@
|
||||
</script>
|
||||
|
||||
{#if !deleted}
|
||||
<li draggable="true" ondrop={ev => dropAt(ev, task)} ondragover={e => e.preventDefault()} ondragend={e => dragend(e,task)} ondragstart={e => drag(e,task)} class="task {task.status.name.toLowerCase()}">
|
||||
<li draggable="true" {ondrop} ondragover={e => e.preventDefault()} {ondragstart} class="task {task.status.name.toLowerCase()}">
|
||||
<LineEditor bind:value={task.name} onclick={openTask} editable={true} onSet={setName} type="a" />
|
||||
{#if task.estimated_time}
|
||||
<span class="estimated_time">({+task.estimated_time} h)</span>
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
|
||||
<ul>
|
||||
{#each sortedTasks as task}
|
||||
<ListTask {task} {estimated_time} show_closed={show_closed || task.show_closed} />
|
||||
<ListTask {task} siblings={tasks} {estimated_time} show_closed={show_closed || task.show_closed} />
|
||||
{/each}
|
||||
</ul>
|
||||
Reference in New Issue
Block a user