Merge branch 'refactor/autocomplete' into dev
This commit is contained in:
@@ -37,9 +37,7 @@
|
||||
if (resp.ok){
|
||||
yikes();
|
||||
const input = await resp.json();
|
||||
return Object.fromEntries(
|
||||
Object.entries(input).map(([key, value]) => [key, value.name])
|
||||
);
|
||||
return Object.values(input).map(user => {return {...user,display:user.name}});
|
||||
} else {
|
||||
error(resp);
|
||||
return {};
|
||||
|
||||
@@ -22,9 +22,7 @@
|
||||
if (resp.ok){
|
||||
yikes();
|
||||
const input = await resp.json();
|
||||
return Object.fromEntries(
|
||||
Object.entries(input).map(([key, value]) => [key, value.name])
|
||||
);
|
||||
return Object.values(input).map(user => { return {...user, display: user.name}});
|
||||
} else {
|
||||
error(resp);
|
||||
return {};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,9 +28,8 @@
|
||||
let new_state = $state({code:null,name:null})
|
||||
let state_available=$derived(new_state.name && new_state.code && !project.allowed_states[new_state.code]);
|
||||
|
||||
async function addMember(entry){
|
||||
const ids = Object.keys(entry);
|
||||
if (ids) update({new_member:+ids.pop()});
|
||||
async function addMember(user){
|
||||
return await update({new_member:+user.id});
|
||||
}
|
||||
|
||||
async function addState(){
|
||||
@@ -67,21 +66,6 @@
|
||||
update({drop_member:member.user.id});
|
||||
}
|
||||
|
||||
async function getCandidates(text){
|
||||
const url = api('user/search');
|
||||
const resp = await fetch(url,{
|
||||
credentials : 'include',
|
||||
method : 'POST',
|
||||
body : text
|
||||
});
|
||||
if (resp.ok){
|
||||
var json = await resp.json();
|
||||
return Object.fromEntries(Object.values(json).map(user => [user.id,user.name]));
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
function handleCreate(evt){
|
||||
let json = JSON.parse(evt.data);
|
||||
json.event = 'create';
|
||||
@@ -242,7 +226,7 @@
|
||||
</label>
|
||||
<div class="em">{t('members')}</div>
|
||||
<div class="em">
|
||||
<PermissionEditor members={project.members} {updatePermission} {addMember} {dropMember} {getCandidates} />
|
||||
<PermissionEditor members={project.members} {updatePermission} {addMember} {dropMember} />
|
||||
</div>
|
||||
{#if project.allowed_states}
|
||||
{#each Object.keys(project.allowed_states) as key,idx}
|
||||
|
||||
@@ -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 { ...member.user,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 {...member.user,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 {...user,display:user.name}});
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user