Some checks failed
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Failing after 1m11s
126 lines
3.5 KiB
Plaintext
126 lines
3.5 KiB
Plaintext
package budget
|
|
|
|
import (
|
|
"spend-sparrow/internal/core"
|
|
"spend-sparrow/internal/template/svg"
|
|
)
|
|
|
|
templ page(budgets []Budget) {
|
|
@core.Breadcrumb([]string{"Home", "Budget"}, []string{"/", "/budget"})
|
|
<div class="flex flex-wrap gap-20 text-xl mt-10 justify-center">
|
|
@newItem()
|
|
for _,budget:=range(budgets ) {
|
|
@item(budget)
|
|
}
|
|
</div>
|
|
}
|
|
|
|
templ editNew() {
|
|
<div class="flex flex-col">
|
|
@core.Breadcrumb([]string{"Home", "Budget", "New"}, []string{"/", "/budget", "/budget/new"})
|
|
<div class="flex justify-center items-center flex-1">
|
|
<form
|
|
hx-post={ "/budget/new" }
|
|
class="grid grid-cols-4 items-center gap-4 mr-auto max-w-2xl h-full"
|
|
>
|
|
<label for="timestamp" class="text-sm text-gray-500">Name</label>
|
|
<input
|
|
autofocus
|
|
name="name"
|
|
type="text"
|
|
class="bg-white input datetime col-span-3"
|
|
/>
|
|
<label for="value" class="text-sm text-gray-500">Value</label>
|
|
<input
|
|
name="value"
|
|
type="number"
|
|
class="bg-white input col-span-3"
|
|
/>
|
|
<div class="flex gap-6 justify-end col-span-4">
|
|
<a href="/budget" class="col-start-3 p-2 px-4 decoration-yellow-400 decoration-[0.25rem] hover:bg-gray-200 rounded-lg hover:underline flex items-center gap-2 justify-center">
|
|
<span class="h-4 w-4">
|
|
@svg.Cancel()
|
|
</span>
|
|
<span>
|
|
Cancel
|
|
</span>
|
|
</a>
|
|
<button type="submit" class="col-start-4 p-2 px-4 decoration-yellow-400 decoration-[0.25rem] hover:bg-gray-200 rounded-lg hover:underline flex items-center gap-2 justify-center">
|
|
@svg.Save()
|
|
<span>
|
|
Save
|
|
</span>
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
templ edit(budget Budget) {
|
|
<div class="flex flex-col">
|
|
@core.Breadcrumb([]string{"Home", "Budget", budget.Description}, []string{"/", "/budget", "/budget/" + budget.Id.String()})
|
|
<div class="flex justify-center items-center flex-1">
|
|
<form
|
|
hx-post={ "/budget/new" }
|
|
class="grid grid-cols-4 items-center gap-4 mr-auto max-w-2xl h-full"
|
|
>
|
|
<label for="timestamp" class="text-sm text-gray-500">Name</label>
|
|
<input
|
|
autofocus
|
|
name="name"
|
|
type="text"
|
|
value={ budget.Description }
|
|
class="bg-white input datetime col-span-3"
|
|
/>
|
|
<label for="value" class="text-sm text-gray-500">Value</label>
|
|
<input
|
|
name="value"
|
|
type="number"
|
|
value={ budget.Value / 100 }
|
|
class="bg-white input col-span-3"
|
|
/>
|
|
<div class="flex gap-6 justify-end col-span-4">
|
|
<a href="/budget" class="col-start-3 p-2 px-4 decoration-yellow-400 decoration-[0.25rem] hover:bg-gray-200 rounded-lg hover:underline flex items-center gap-2 justify-center">
|
|
<span class="h-4 w-4">
|
|
@svg.Cancel()
|
|
</span>
|
|
<span>
|
|
Cancel
|
|
</span>
|
|
</a>
|
|
<button type="submit" class="col-start-4 p-2 px-4 decoration-yellow-400 decoration-[0.25rem] hover:bg-gray-200 rounded-lg hover:underline flex items-center gap-2 justify-center">
|
|
@svg.Save()
|
|
<span>
|
|
Save
|
|
</span>
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
templ newItem() {
|
|
<a
|
|
href="/budget/new"
|
|
class="p-5 w-64 h-64 flex gap-10 active:bg-gray-200 flex-col justify-center items-center hover:bg-gray-100 transition-all cursor-pointer rounded-lg bg-gray-50 border-1 border-gray-300"
|
|
>
|
|
New Budget
|
|
<div class="w-10">
|
|
@svg.Plus()
|
|
</div>
|
|
</a>
|
|
}
|
|
|
|
templ item(budget Budget) {
|
|
<a href={ "/budget/" + budget.Id.String() } class="flex flex-col w-64 h-64 p-5 rounded-lg bg-gray-50 border-1 border-gray-300 ">
|
|
<span>
|
|
{ budget.Description }
|
|
</span>
|
|
<span>
|
|
{ 200 }€
|
|
</span>
|
|
</a>
|
|
}
|