|
|
|
|
@ -32,6 +32,26 @@
@@ -32,6 +32,26 @@
|
|
|
|
|
for (let uid of Object.keys(member)) task.members[uid] = project.members[uid]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function flat(json){ |
|
|
|
|
return JSON.parse(JSON.stringify(json)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function copyMembers(source){ |
|
|
|
|
task.members = {}; |
|
|
|
|
let owner = null; |
|
|
|
|
let me = null; |
|
|
|
|
for (let [uid, member] of Object.entries(source)){ |
|
|
|
|
task.members[uid] = member; |
|
|
|
|
if (member.permission.name == 'OWNER') owner = flat(member); |
|
|
|
|
if (uid == user.id) me = flat(member); |
|
|
|
|
} |
|
|
|
|
if (owner && me) { |
|
|
|
|
// of someone else is owner of the parent task or project, make current user the owner |
|
|
|
|
task.members[me.user.id].permission = owner.permission; |
|
|
|
|
task.members[owner.user.id].permission = me.permission; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function dropMember(member){ |
|
|
|
|
delete task.members[member.user.id]; |
|
|
|
|
console.log({drop:member.user.id}); |
|
|
|
|
@ -65,7 +85,7 @@
@@ -65,7 +85,7 @@
|
|
|
|
|
project = await resp.json(); |
|
|
|
|
task.project_id = +project_id; |
|
|
|
|
let member_source = parent_task?parent_task.members:project.members; |
|
|
|
|
task.members = JSON.parse(JSON.stringify(member_source)); // deep copy |
|
|
|
|
copyMembers(member_source); |
|
|
|
|
error = null; |
|
|
|
|
} else { |
|
|
|
|
error = await resp.text(); |
|
|
|
|
|