diff --git a/frontend/src/routes/project/Kanban.svelte b/frontend/src/routes/project/Kanban.svelte index e0f38eb9..1964a5c5 100644 --- a/frontend/src/routes/project/Kanban.svelte +++ b/frontend/src/routes/project/Kanban.svelte @@ -121,7 +121,9 @@ if (method != 'delete') processTask(json.task); // show notification - if (json.user.id != user.id) { + if (json.user.id == user.id) { + if (method == 'create') task_form = false; // task has been created by current user + } else { let term = "user_updated_entity"; if (method == 'create') term = "user_created_entity"; if (method == 'delete') term = "user_deleted_entity"; @@ -251,7 +253,6 @@ } function show_task_form(project_id,assignee,state_id){ - console.log({project_id,assignee,state_id}); task_form = {project_id,assignee,state_id}; } @@ -274,7 +275,7 @@ {#if project} {#if task_form}
{/if} diff --git a/frontend/src/routes/task/Add.svelte b/frontend/src/routes/task/Add.svelte index 95a42036..67612a30 100644 --- a/frontend/src/routes/task/Add.svelte +++ b/frontend/src/routes/task/Add.svelte @@ -2,7 +2,7 @@ import { onMount } from 'svelte'; import { useTinyRouter } from 'svelte-tiny-router'; - import { api } from '../../urls.svelte.js'; + import { api, get } from '../../urls.svelte.js'; import { error, yikes } from '../../warn.svelte'; import { t } from '../../translations.svelte.js'; import { user } from '../../user.svelte.js'; @@ -20,6 +20,7 @@ description : { source : '', rendered : '' }, due_date : null, est_time : null, + members : {}, no_index : false, show_closed : false, start_date : null, @@ -29,6 +30,7 @@ function addMember(member){ for (let uid of Object.keys(member)) task.members[uid] = project.members[uid]; + console.log(task.members); } function flat(json){ @@ -44,31 +46,32 @@ async function load(){ if (parent_task_id) await loadParent(); if (project_id) loadProject(); - if (assignee) task.assignee = +assignee; - if (state_id) task.state = +state_id; + if (state_id) task.status = { code : +state_id }; loadTags(); } async function loadParent(){ const url = api(`task/${parent_task_id}`); - const resp = await fetch(url,{credentials:'include'}); + const resp = await get(url); if (resp.ok){ parent_task = await resp.json(); task.parent_task_id = +parent_task_id; project_id = +parent_task.project_id; yikes(); project = null; // TODO - } else { - error(resp); - } + } else error(resp); } async function loadProject(){ const url = api(`project/${project_id}`); - const resp = await fetch(url,{credentials:'include'}); + const resp = await get(url); if (resp.ok){ project = await resp.json(); task.project_id = +project_id; + if (assignee && project.members[assignee]){ + task.members[assignee] = project.members[assignee]; + task.members[assignee].permission = { name : "ASSIGNEE", code : 3 } + } yikes(); } else { error(resp); @@ -80,7 +83,7 @@ if (project_id) url = api(`tags/project/${project_id}`); if (parent_task_id) url = api(`tags/task/${parent_task_id}`); if (url) { - const resp = await fetch(url,{credentials:'include'}); + const resp = await get(url); if (resp.ok) task.tags = await resp.json(); } } @@ -109,10 +112,12 @@ body : JSON.stringify(task) }); if (resp.ok) { - task = await resp.json(); - if (task.parent_task_id){ - router.navigate(`/task/${task.parent_task_id}/view`); - } else router.navigate(`/task/${task.id}/view`); + if (!assignee) { // if assignee is set, this form was opened within an external context. hence we don`t want to navigate somewhere else! + task = await resp.json(); + if (task.parent_task_id){ + router.navigate(`/task/${task.parent_task_id}/view`); + } else router.navigate(`/task/${task.id}/view`); + } yikes(); } else { error(resp); @@ -185,7 +190,7 @@ {t('members')}