Voegt boodschappenlijsten, productbeheer, realtime synchronisatie en browsercache-updates toe. Herstelt login- en sessiegedrag en maakt database-seeding herhaalbaar.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
43 lines
1.8 KiB
Plaintext
43 lines
1.8 KiB
Plaintext
<div class="page-header mb-4">
|
|
<h1>Boodschappenlijsten</h1>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<% if (lists.length === 0) { %>
|
|
<p class="text-secondary">Je hebt nog geen boodschappenlijsten.</p>
|
|
<% } else { %>
|
|
<div class="list-group">
|
|
<% lists.forEach(list => { %>
|
|
<a href="/lists/<%= list.id %>" class="list-group-item list-group-item-action">
|
|
<div class="d-flex justify-content-between">
|
|
<strong><%= list.name %></strong>
|
|
<span><%= list.checked_count || 0 %>/<%= list.item_count || 0 %> gedaan</span>
|
|
</div>
|
|
<small class="text-muted">
|
|
Aangemaakt <%= new Date(list.created_at).toLocaleDateString("nl-NL") %>
|
|
</small>
|
|
</a>
|
|
<% }); %>
|
|
</div>
|
|
<% } %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card">
|
|
<div class="card-header"><h3 class="card-title">Nieuwe lijst</h3></div>
|
|
<div class="card-body">
|
|
<form method="post" action="/lists">
|
|
<label class="form-label" for="list-name">Lijstnaam</label>
|
|
<input id="list-name" class="form-control mb-3" type="text" name="name"
|
|
placeholder="bijv. Weekboodschappen" required maxlength="120">
|
|
<button class="btn btn-primary w-100" type="submit">Lijst aanmaken</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|