working on task update by event
This commit is contained in:
@@ -116,6 +116,6 @@
|
||||
</div>
|
||||
{/if}
|
||||
{:else}
|
||||
<svelte:element this={type} {onclick} {oncontextmenu} class={{editable}} title={t('right_click_to_edit')} >{@html target(editValue.rendered)}</svelte:element>
|
||||
<svelte:element this={type} {onclick} {oncontextmenu} class={{editable}} title={t('right_click_to_edit')} >{@html target(value.rendered)}</svelte:element>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -14,7 +14,7 @@
|
||||
import Tags from '../tags/TagList.svelte';
|
||||
import TaskList from '../task/TaskList.svelte';
|
||||
|
||||
let eventSource = null;
|
||||
let eventSource = $state(null);
|
||||
let { id } = $props();
|
||||
let lastEvent = $state(null);
|
||||
let estimated_time = $state({sum:0});
|
||||
@@ -98,6 +98,7 @@
|
||||
let json = JSON.parse(evt.data);
|
||||
json.event = 'update';
|
||||
lastEvent = json;
|
||||
if (json.project && json.project.id == project.id) project = json.project;
|
||||
}
|
||||
|
||||
function kanban(){
|
||||
@@ -303,7 +304,7 @@
|
||||
</div>
|
||||
<div class="tasks">
|
||||
{#if tasks}
|
||||
<TaskList {tasks} {estimated_time} {lastEvent} states={project?.allowed_states} show_closed={show_closed || project.show_closed} />
|
||||
<TaskList {tasks} {estimated_time} {lastEvent} {eventSource} states={project?.allowed_states} show_closed={show_closed || project.show_closed} />
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<script>
|
||||
import { onDestroy, onMount } from 'svelte';
|
||||
import { onDestroy } from 'svelte';
|
||||
import { useTinyRouter } from 'svelte-tiny-router';
|
||||
|
||||
import { api, eventStream } 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,7 +17,7 @@
|
||||
import TagList from '../tags/TagList.svelte';
|
||||
import TaskList from './TaskList.svelte';
|
||||
|
||||
let eventSource = null;
|
||||
let eventSource = $state(null);
|
||||
let { id } = $props();
|
||||
let children = $state(null);
|
||||
let dummy = $derived(updateOn(id));
|
||||
@@ -28,7 +28,10 @@
|
||||
let show_closed = $state(false);
|
||||
let task = $state(null);
|
||||
|
||||
$effect(() => updateOn(id));
|
||||
$effect(() => {
|
||||
if (!eventSource) eventSource = eventStream(null,handleUpdateEvent,null);
|
||||
updateOn(id)
|
||||
});
|
||||
|
||||
function addChild(){
|
||||
router.navigate(`/task/${id}/add_subtask`);
|
||||
@@ -83,16 +86,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 handleUpdateEvent(evt){
|
||||
let json = JSON.parse(evt.data);
|
||||
if (json.task) {
|
||||
if (json.task.id == id) updateOn(id);
|
||||
if (json.task.parent_task_id == id) children[json.task.id] = json.task;
|
||||
}
|
||||
}
|
||||
|
||||
function load(){
|
||||
eventSource = eventStream(null,handleUpdateEvent,null);
|
||||
}
|
||||
|
||||
async function loadChildren(){
|
||||
async function loadChildren(){
|
||||
const url = api('task/list');
|
||||
const data = {
|
||||
parent_task_id : +task.id,
|
||||
@@ -204,7 +206,6 @@
|
||||
onDestroy(() => {
|
||||
if (eventSource) eventSource.close();
|
||||
});
|
||||
onMount(load);
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
@@ -319,7 +320,7 @@
|
||||
</div>
|
||||
<div class="children">
|
||||
{#if children}
|
||||
<TaskList states={project?.allowed_states} tasks={children} {estimated_time} show_closed={task.show_closed} />
|
||||
<TaskList {eventSource} states={project?.allowed_states} tasks={children} {estimated_time} show_closed={task.show_closed} />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user