fixed permissionEditor in various locations
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -42,10 +42,6 @@
|
||||
} else error(resp);
|
||||
}
|
||||
|
||||
function onSelect(entry){
|
||||
addMember(entry);
|
||||
}
|
||||
|
||||
onMount(loadPermissions);
|
||||
</script>
|
||||
|
||||
@@ -65,7 +61,7 @@
|
||||
<tr>
|
||||
<td>{t('add_object',{object:t('member')})}</td>
|
||||
<td>
|
||||
<Autocomplete {getCandidates} {onSelect} />
|
||||
<Autocomplete {getCandidates} onSelect={addMember} />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
let members = $state([]);
|
||||
|
||||
function addMember(member){
|
||||
for (let [id,name] of Object.entries(member)) update_permissions({user_id:+id,permission:4});
|
||||
update_permissions({user_id:+member.id,permission:4});
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
let state_available=$derived(new_state.name && new_state.code && !project.allowed_states[new_state.code]);
|
||||
|
||||
async function addMember(user){
|
||||
update({new_member:+user.id});
|
||||
return await update({new_member:+user.id});
|
||||
}
|
||||
|
||||
async function addState(){
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
let router = useTinyRouter();
|
||||
|
||||
function addMember(member){
|
||||
for (let uid of Object.keys(member)) task.members[uid] = project.members[uid];
|
||||
let uid = member.id;
|
||||
task.members[uid] = project.members[uid];
|
||||
}
|
||||
|
||||
function flat(json){
|
||||
@@ -44,10 +45,9 @@
|
||||
|
||||
async function getCandidates(text){
|
||||
const origin = parent_task ? parent_task.members : project.members;
|
||||
const candidates = Object.values(origin)
|
||||
return Object.values(origin)
|
||||
.filter(member => member.user.name.toLowerCase().includes(text.toLowerCase()))
|
||||
.map(member => [member.user.id,member.user.name]);
|
||||
return Object.fromEntries(candidates);
|
||||
.map(member => {return { id:member.user.id,display:member.user.name}});
|
||||
}
|
||||
|
||||
async function load(){
|
||||
|
||||
@@ -37,9 +37,8 @@
|
||||
router.navigate(`/task/${id}/add_subtask`);
|
||||
}
|
||||
|
||||
async function addMember(entry){
|
||||
const ids = Object.keys(entry);
|
||||
if (ids) update({new_member:+ids.pop()});
|
||||
async function addMember(newMember){
|
||||
return await update({new_member:+newMember.id});
|
||||
}
|
||||
|
||||
async function addTime(){
|
||||
@@ -64,10 +63,10 @@
|
||||
|
||||
async function getCandidates(text){
|
||||
const origin = task.parent ? task.parent.members : project.members;
|
||||
const candidates = Object.values(origin)
|
||||
return Object.values(origin)
|
||||
.filter(member => member.user.name.toLowerCase().includes(text.toLowerCase()))
|
||||
.map(member => [member.user.id,member.user.name]);
|
||||
return Object.fromEntries(candidates);
|
||||
.map(member => { return {id:member.user.id,display:member.user.name}});
|
||||
|
||||
}
|
||||
|
||||
function gotoKanban(){
|
||||
@@ -177,6 +176,8 @@
|
||||
});
|
||||
if (resp.ok){
|
||||
yikes();
|
||||
let json = await resp.json();
|
||||
if (json.members) task.members = json.members;
|
||||
return true;
|
||||
} else {
|
||||
error(resp);
|
||||
|
||||
@@ -22,9 +22,8 @@
|
||||
|
||||
async function addMember(entry){
|
||||
let newMembers = JSON.parse(JSON.stringify(page.members));
|
||||
for (var id of Object.keys(entry)){
|
||||
if (!newMembers[id]) newMembers[id] = { permission : {name:'READ_ONLY'} };
|
||||
}
|
||||
let id = entry.id;
|
||||
if (!newMembers[id]) newMembers[id] = { permission : {name:'READ_ONLY'} };
|
||||
return patch({members:newMembers});
|
||||
}
|
||||
|
||||
@@ -74,7 +73,7 @@
|
||||
});
|
||||
if (resp.ok){
|
||||
var json = await resp.json();
|
||||
return Object.fromEntries(Object.values(json).filter(nonMember).map(user => [user.id,user.name]));
|
||||
return Object.values(json).filter(nonMember).map(user => { return {id:user.id,display:user.name}});
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user