diff --git a/frontend/src/routes/project/Kanban.svelte b/frontend/src/routes/project/Kanban.svelte
index dc6ecb47..e0f38eb9 100644
--- a/frontend/src/routes/project/Kanban.svelte
+++ b/frontend/src/routes/project/Kanban.svelte
@@ -10,6 +10,7 @@
import Card from './KanbanCard.svelte';
import LineEditor from '../../Components/LineEditor.svelte';
import MarkdownEditor from '../../Components/MarkdownEditor.svelte';
+ import TaskForm from '../task/Add.svelte';
let eventSource = null;
let connectionStatus = 'disconnected';
@@ -26,7 +27,7 @@
let users = [];
let columns = $derived(project.allowed_states?Object.keys(project.allowed_states).length+1:1);
let info = $state(null);
-
+ let task_form = $state(false);
let stateList = {};
$effect(() => updateUrl(filter_input));
@@ -249,6 +250,10 @@
}
}
+ function show_task_form(project_id,assignee,state_id){
+ console.log({project_id,assignee,state_id});
+ task_form = {project_id,assignee,state_id};
+ }
function updateUrl(){
let url = window.location.origin + window.location.pathname;
@@ -267,6 +272,12 @@
{#if project}
+{#if task_form}
+
+
+
+{/if}
+
router.navigate(`/project/${project.id}/view`)}>{project.name}
{/if}
{#if info}
@@ -300,8 +311,8 @@
openTask(task.id)} ondragstart={ev => dragged=task} {task} tag_colors={project.tag_colors} />
{/if}
{/each}
-
-
create(name,u.id,state)}/>
+ show_task_form(project.id,u.id,+state)}>
+ {t('add_object',{object:t('task')})}
{/each}
@@ -310,4 +321,4 @@
delete highlight.archive} ondrop={do_archive} >
{t('hide')}
-{/if}
\ No newline at end of file
+{/if}
\ No newline at end of file
diff --git a/frontend/src/routes/task/Add.svelte b/frontend/src/routes/task/Add.svelte
index f493ac37..95a42036 100644
--- a/frontend/src/routes/task/Add.svelte
+++ b/frontend/src/routes/task/Add.svelte
@@ -11,7 +11,7 @@
import PermissionEditor from '../../Components/PermissionEditor.svelte';
import Tags from '../tags/TagList.svelte';
- let { project_id = null, parent_task_id } = $props();
+ let { project_id = null, parent_task_id = null, assignee = null, state_id = null } = $props();
let project = $state(null);
let extendedSettings = $state(false);
let parent_task = $state(null);
@@ -44,6 +44,8 @@
async function load(){
if (parent_task_id) await loadParent();
if (project_id) loadProject();
+ if (assignee) task.assignee = +assignee;
+ if (state_id) task.state = +state_id;
loadTags();
}
@@ -53,7 +55,7 @@
if (resp.ok){
parent_task = await resp.json();
task.parent_task_id = +parent_task_id;
- project_id = parent_task.project_id;
+ project_id = +parent_task.project_id;
yikes();
project = null; // TODO
} else {
diff --git a/web/src/main/resources/web/css/default.css b/web/src/main/resources/web/css/default.css
index f9130a04..cf2aabe5 100644
--- a/web/src/main/resources/web/css/default.css
+++ b/web/src/main/resources/web/css/default.css
@@ -183,6 +183,17 @@ td, tr{
padding: 3px;
}
+.overlay {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ left: 0;
+ padding: 40px 10px 10px;
+ background: rgba(0,0,0,0.9);
+ z-index: 50;
+}
+
.warn {
padding: 5px;
border-radius: 6px;