first kanban view working
This commit is contained in:
@@ -53,7 +53,23 @@
|
|||||||
});
|
});
|
||||||
if (resp.ok){
|
if (resp.ok){
|
||||||
var json = await resp.json();
|
var json = await resp.json();
|
||||||
for (var task_id of Object.keys(json)) tasks[task_id] = json[task_id];
|
console.clear();
|
||||||
|
for (var task_id of Object.keys(json)) {
|
||||||
|
let task = json[task_id];
|
||||||
|
let state = task.status.name;
|
||||||
|
let owner = null;
|
||||||
|
let assignee = null;
|
||||||
|
for (var uid of Object.keys(task.members)){
|
||||||
|
var member = task.members[uid];
|
||||||
|
if (member.permission.name == 'OWNER') owner = member.user.name;
|
||||||
|
if (member.permission.name == 'ASSIGNEE') assignee = member.user.name;
|
||||||
|
}
|
||||||
|
if (!assignee) assignee = owner;
|
||||||
|
if (!tasks[assignee]) tasks[assignee] = {};
|
||||||
|
if (!tasks[assignee][state]) tasks[assignee][state] = {};
|
||||||
|
tasks[assignee][state][task_id] = task;
|
||||||
|
}
|
||||||
|
console.log(tasks);
|
||||||
} else {
|
} else {
|
||||||
error = await resp.text();
|
error = await resp.text();
|
||||||
}
|
}
|
||||||
@@ -63,17 +79,25 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.grid > *{
|
.box,
|
||||||
min-height: 50px;
|
.head,
|
||||||
|
.user{
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
padding: 2px;
|
min-height: 50px;
|
||||||
background: orange;
|
|
||||||
color: black;
|
color: black;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
.head{
|
.box{
|
||||||
|
background: orange;
|
||||||
|
}
|
||||||
|
.head,
|
||||||
|
.user{
|
||||||
background: lime;
|
background: lime;
|
||||||
}
|
}
|
||||||
|
.empty{
|
||||||
|
background: repeating-linear-gradient(45deg,transparent,transparent 10px,#ccc 10px,#ccc 20px),linear-gradient(to bottom,#eee,#999);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
{#if project}
|
{#if project}
|
||||||
@@ -83,8 +107,6 @@
|
|||||||
<span class="error">{error}</span>
|
<span class="error">{error}</span>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<p>Columns: {columns}</p>
|
|
||||||
|
|
||||||
<div class="grid" style="display: grid; grid-template-columns: {`repeat(${columns}, auto)`}">
|
<div class="grid" style="display: grid; grid-template-columns: {`repeat(${columns}, auto)`}">
|
||||||
<div class="head">{t('user')}</div>
|
<div class="head">{t('user')}</div>
|
||||||
{#if states}
|
{#if states}
|
||||||
@@ -92,18 +114,15 @@
|
|||||||
<div class="head">{t(state)}</div>
|
<div class="head">{t(state)}</div>
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
{#each Object.entries(tasks) as [tid,task]}
|
{#each Object.entries(tasks) as [user,states]}
|
||||||
<div onclick={() => router.navigate(`/task/${tid}/view`)}>
|
<div class="user">{user}</div>
|
||||||
<p>
|
{#each Object.entries(states) as [state,list]}
|
||||||
{task.name}
|
<div>
|
||||||
</p>
|
{#each Object.entries(list) as [tid,task]}
|
||||||
<p>
|
<div class="box" onclick={() => router.navigate(`/task/${task.id}/view`)}>{task.name}</div>
|
||||||
{#each Object.entries(task.members) as [uid,member]}
|
|
||||||
{#if member.permission.name=='OWNER'}
|
|
||||||
{member.user.name}
|
|
||||||
{/if}
|
|
||||||
{/each}
|
{/each}
|
||||||
</p>
|
<div class="empty box"></div>
|
||||||
</div>
|
</div>
|
||||||
|
{/each}
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user