feat: task page
This commit is contained in:
@@ -21,10 +21,25 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
{#each data.tasks as task}
|
{#each data.tasks as task}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{task.id}</td>
|
<td>
|
||||||
<td>{task.name}</td>
|
<a href={'/progress/' + task.id}>
|
||||||
<td>{task.progress}</td>
|
{task.id}
|
||||||
<td><button>Delete</button></td>
|
</a>
|
||||||
|
</td><td>
|
||||||
|
<a href={'/progress/' + task.id}>
|
||||||
|
{task.name}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href={'/progress/' + task.id}>
|
||||||
|
{task.progress}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href={'/progress/' + task.id}>
|
||||||
|
<button>Delete</button>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{/each}</tbody
|
{/each}</tbody
|
||||||
>
|
>
|
||||||
|
|||||||
8
packages/web/src/routes/progress/[id]/+page.server.ts
Normal file
8
packages/web/src/routes/progress/[id]/+page.server.ts
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import { db, tasks } from "$lib/db/schema"
|
||||||
|
import { eq } from "drizzle-orm"
|
||||||
|
|
||||||
|
export const load = async ({ params }) => {
|
||||||
|
return {
|
||||||
|
task: (await db.select().from(tasks).where(eq(tasks.id, params.id)))[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
5
packages/web/src/routes/progress/[id]/+page.svelte
Normal file
5
packages/web/src/routes/progress/[id]/+page.svelte
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
let { data } = $props();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h1 class="my-4 text-2xl font-bold text-center">{data.task.name}</h1>
|
||||||
@@ -5,8 +5,8 @@ export const actions = {
|
|||||||
default: async ({ request }) => {
|
default: async ({ request }) => {
|
||||||
const data = await request.formData()
|
const data = await request.formData()
|
||||||
|
|
||||||
await db.insert(tasks).values({ name: data.get('name') })
|
const task = await db.insert(tasks).values({ name: data.get('name') }).returning()
|
||||||
|
|
||||||
redirect(303, '/progress')
|
redirect(303, '/progress/' + task[0].id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<div class="flex gap-4">
|
<div class="flex gap-4">
|
||||||
<label for="name">Name: </label>
|
<label for="name">Name: </label>
|
||||||
<input type="text" id="name" class="border rounded" />
|
<input type="text" name="name" class="border rounded" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="px-4 py-2 rounded bg-green-500 m-4">Submit</button>
|
<button class="px-4 py-2 rounded bg-green-500 m-4">Submit</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user