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