templates, handlers, CSS, JS: special cakes UI, HTMX nav, dashboard overhaul

Special cakes UI: overlay drawer, basket integration, catalogue tag
filter, form parsing, JS save/edit/remove.
HTMX navigation: MainContent component, nav links with hx-get,
handlers return partial on HX-Request.
Dashboard: metrics grid, CakeBreakdown, OrderRow with status select,
CakeCounts/OrderCounts, torty filter, tort badge, results-pane.
Collapsible sidebar: toggle button, localStorage, CSS transitions.
Location field: dropdown replaced with pill toggle.
Inline style cleanup: moved to CSS classes (tag-grid, grow, icon.sm,
header-actions, toggle-group, success-icon, etc.).
Dead CSS removal: pagination, status-chip, badge-pill, login-page.
Helpers: exported CakeTitle/OrderTitle, added tagNames, tagIDsComma,
orderItemsDesc, specialCakeDetail, removed unused helpers.
This commit is contained in:
bronkuu 2026-06-15 18:50:21 +02:00
parent 17b92a706a
commit 5a5372b831
18 changed files with 1153 additions and 422 deletions

View file

@ -6,11 +6,11 @@ import (
"git.bronku.xyz/bronku/cake-order-tracker/models"
)
templ CakePage(cake models.Cake) {
@Layout(cakeTitle(cake), templ.NopComponent, CakeForm(cake))
templ CakePage(cake models.Cake, allTags []models.Tag) {
@Layout(CakeTitle(cake), templ.NopComponent, CakeForm(cake, allTags))
}
templ CakeForm(cake models.Cake) {
templ CakeForm(cake models.Cake, allTags []models.Tag) {
<div class="form-card">
<section class="card">
<header>
@ -33,6 +33,21 @@ templ CakeForm(cake models.Cake) {
<label>Cena</label>
<input class="form-input" type="number" name="price" min="0" value={ cake.Price.String() }/>
</div>
<div class="form-group">
<label>Tagi</label>
<div class="tag-grid">
for _, t := range allTags {
<label class="tag-chip">
<input type="checkbox" name="tag" value={ strconv.Itoa(t.ID) } style="display:none"
if cakeHasTag(cake.Tags, t.ID) { checked }/>
{ t.Name }
</label>
}
</div>
<div class="horizontal-group" style="margin-top:0.375rem">
<input class="form-input grow" type="text" name="new_tag" placeholder="Nowy tag..."/>
</div>
</div>
<div class="form-actions">
<a href="/cakes" class="btn outline">Anuluj</a>
<button type="submit" class="btn primary">