finished project tree update on task edit, added update of task view on task edit
This commit is contained in:
@@ -131,7 +131,6 @@
|
||||
}
|
||||
|
||||
function handleDeleteEvent(evt){
|
||||
console.log('delete task');
|
||||
handleEvent(evt,'delete');
|
||||
}
|
||||
|
||||
|
||||
@@ -187,6 +187,16 @@
|
||||
window.open(`/time?project=${id}`, '_blank').focus();
|
||||
}
|
||||
|
||||
$effect(() => {
|
||||
if (lastEvent && lastEvent.task) {
|
||||
if (lastEvent.event == 'delete' || lastEvent.task.parent_task_id){
|
||||
delete tasks[lastEvent.task.id];
|
||||
} else {
|
||||
tasks[lastEvent.task.id] = lastEvent.task;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
onMount(load);
|
||||
onDestroy(() => {
|
||||
if (eventSource) eventSource.close();
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
if (resp.ok){
|
||||
deleted = true;
|
||||
} else {
|
||||
error(resp);
|
||||
error(resp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -76,8 +76,7 @@
|
||||
body : JSON.stringify({ parent_task_id : task.id})
|
||||
});
|
||||
if (resp.ok) {
|
||||
children[dragged.element.id]=dragged.element;
|
||||
if (dragged.siblings[dragged.element.id]) delete dragged.siblings[dragged.element.id];
|
||||
yikes();
|
||||
} else {
|
||||
error(resp);
|
||||
}
|
||||
@@ -143,13 +142,11 @@
|
||||
}
|
||||
|
||||
$effect(() => {
|
||||
if (lastEvent && lastEvent.task) {
|
||||
if (children && lastEvent.task.parent_task_id == task.id) {
|
||||
if (lastEvent.event == 'delete'){
|
||||
delete children[lastEvent.task.id];
|
||||
} else {
|
||||
children[lastEvent.task.id] = lastEvent.task;
|
||||
}
|
||||
if (children && lastEvent && lastEvent.task) {
|
||||
if (lastEvent.event == 'delete' || lastEvent.task.parent_task_id != task.id){
|
||||
delete children[lastEvent.task.id];
|
||||
} else {
|
||||
children[lastEvent.task.id] = lastEvent.task;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script>
|
||||
import { onMount } from 'svelte';
|
||||
import { onDestroy, onMount } from 'svelte';
|
||||
import { useTinyRouter } from 'svelte-tiny-router';
|
||||
|
||||
import { api } from '../../urls.svelte';
|
||||
import { api, eventStream } from '../../urls.svelte';
|
||||
import { error, yikes } from '../../warn.svelte';
|
||||
import { t } from '../../translations.svelte';
|
||||
import { timetrack } from '../../user.svelte.js';
|
||||
@@ -17,6 +17,7 @@
|
||||
import TagList from '../tags/TagList.svelte';
|
||||
import TaskList from './TaskList.svelte';
|
||||
|
||||
let eventSource = null;
|
||||
let { id } = $props();
|
||||
let children = $state(null);
|
||||
let dummy = $derived(updateOn(id));
|
||||
@@ -82,6 +83,15 @@
|
||||
router.navigate(`/project/${project.id}/view`)
|
||||
}
|
||||
|
||||
function handleUpdateEvent(evt){
|
||||
let json = JSON.parse(evt.data);
|
||||
if (json.task && json.task.id == id) updateOn(id);
|
||||
}
|
||||
|
||||
function load(){
|
||||
eventSource = eventStream(null,handleUpdateEvent,null);
|
||||
}
|
||||
|
||||
async function loadChildren(){
|
||||
const url = api('task/list');
|
||||
const data = {
|
||||
@@ -199,6 +209,11 @@
|
||||
members[user_id] = permission.code;
|
||||
update({members:members});
|
||||
}
|
||||
|
||||
onDestroy(() => {
|
||||
if (eventSource) eventSource.close();
|
||||
});
|
||||
onMount(load);
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
|
||||
Reference in New Issue
Block a user