implemented member editing on creating new tasks
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -51,25 +51,21 @@
|
||||
}
|
||||
|
||||
async function load(){
|
||||
console.log({assignee});
|
||||
if (parent_task_id) await loadParent();
|
||||
if (project_id) await loadProject();
|
||||
if (project_id) loadProject();
|
||||
if (state_id) task.status = { code : +state_id };
|
||||
await loadTags();
|
||||
console.log({task:JSON.parse(JSON.stringify(task))});
|
||||
loadTags();
|
||||
}
|
||||
|
||||
async function loadParent(){
|
||||
console.log('loading parent task with id = '+parent_task_id);
|
||||
const url = api(`task/${parent_task_id}`);
|
||||
const resp = await get(url);
|
||||
if (resp.ok){
|
||||
parent_task = await resp.json();
|
||||
console.log(JSON.parse(JSON.stringify(parent_task)));
|
||||
task.parent_task_id = +parent_task_id;
|
||||
for (let [uid, member] of Object.entries(parent_task.members)){
|
||||
if (['OWNER','ASSIGNEE'].includes(member.permission.name)) member.permission = { name: 'EDIT', code: 2 };
|
||||
task.members[uid] = member;
|
||||
console.log('added member from parent task to new task: '+member.user.name+' ('+member.permission.name+')');
|
||||
}
|
||||
project_id = +parent_task.project_id;
|
||||
yikes();
|
||||
@@ -78,17 +74,15 @@
|
||||
}
|
||||
|
||||
async function loadProject(){
|
||||
console.log('loading project '+project_id);
|
||||
const url = api(`project/${project_id}`);
|
||||
const resp = await get(url);
|
||||
if (resp.ok){
|
||||
project = await resp.json();
|
||||
console.log(JSON.parse(JSON.stringify(project)));
|
||||
task.project_id = +project_id;
|
||||
if (Object.keys(task.members).length < 1) {
|
||||
for (let [uid, member] of Object.entries(project.members)){
|
||||
if (['OWNER','ASSIGNEE'].includes(member.permission.name)) member.permission = { name: 'EDIT', code: 2 };
|
||||
task.members[uid] = member;
|
||||
console.log('added member from project to new task: '+member.user.name+' ('+member.permission.name+')');
|
||||
}
|
||||
}
|
||||
if (assignee && project.members[assignee]){
|
||||
@@ -103,11 +97,9 @@
|
||||
}
|
||||
|
||||
async function loadTags(){
|
||||
|
||||
let url = null;
|
||||
if (project_id) url = api(`tags/project/${project_id}`);
|
||||
if (parent_task_id) url = api(`tags/task/${parent_task_id}`);
|
||||
console.log('loading tags: ',url);
|
||||
if (url) {
|
||||
const resp = await get(url);
|
||||
if (resp.ok) task.tags = await resp.json();
|
||||
@@ -122,7 +114,6 @@
|
||||
}
|
||||
|
||||
async function saveTask(){
|
||||
console.log({task:JSON.parse(JSON.stringify(task))});
|
||||
const url = api('task/add');
|
||||
const resp = await post(url,task);
|
||||
if (resp.ok) {
|
||||
@@ -143,6 +134,10 @@
|
||||
extendedSettings = !extendedSettings;
|
||||
}
|
||||
|
||||
function updatePermission(uid,perm){
|
||||
task.members[uid].permission = perm;
|
||||
}
|
||||
|
||||
onMount(load);
|
||||
</script>
|
||||
|
||||
@@ -180,7 +175,7 @@
|
||||
{#if extendedSettings}
|
||||
<div>{t('members')}</div>
|
||||
<div>
|
||||
<PermissionEditor members={task.members} {addMember} {dropMember} {getCandidates} />
|
||||
<PermissionEditor members={task.members} {addMember} {dropMember} {getCandidates} {updatePermission} />
|
||||
</div>
|
||||
|
||||
<div>{t('estimated_time')}</div>
|
||||
|
||||
Reference in New Issue
Block a user