jordi fita mas 48c1529e6c Add pagination to invoices
I’ve removed the total amount because it is very difficult to get it
with pagination, and customer never saw it (it was from Numerus), thus
they won’t miss it—i hope.
2024-05-03 19:13:49 +02:00

120 lines
5.1 KiB
Plaintext

{{ define "title" -}}
{{( pgettext "Invoices" "title" )}}
{{- end }}
{{ define "breadcrumb" -}}
{{- end }}
{{ define "content" }}
{{- /*gotype: dev.tandem.ws/tandem/camper/pkg/invoice.invoiceIndex*/ -}}
<form id="batch-form" action="/admin/invoices/batch" method="post">
{{ CSRFInput }}
<fieldset>
{{ with .Filters }}
{{ with .Customer }}<input type="hidden" name="{{ .Name }}" value="{{ .String }}">{{ end }}
{{ with .InvoiceStatus }}<input type="hidden" name="{{ .Name }}" value="{{ .String }}">{{ end }}
{{ with .FromDate }}<input type="hidden" name="{{ .Name }}" value="{{ .Val }}">{{ end }}
{{ with .ToDate }}<input type="hidden" name="{{ .Name }}" value="{{ .Val }}">{{ end }}
{{ with .InvoiceStatus }}<input type="hidden" name="{{ .Name }}" value="{{ .String }}">{{ end }}
{{ end }}
</fieldset>
<footer>
{{ template "filters-toggle" }}
<button type="submit"
name="action" value="download"
>{{( pgettext "Download invoices" "action" )}}</button>
<button type="submit"
name="action" value="export"
>{{( pgettext "Export list" "action" )}}</button>
</footer>
</form>
<form class="filters" method="GET" action="/admin/invoices"
data-hx-target="main" data-hx-boost="true" data-hx-trigger="change,search,submit"
aria-labelledby="filters-toggle"
>
<fieldset>
{{ with .Filters }}
{{ with .Customer -}}
<label>
{{( pgettext "Customer" "input" )}}<br>
<select name="{{ .Name }}"
{{ template "error-attrs" . }}
>
<option value="">{{( gettext "All customers" )}}</option>
{{ template "list-options" . }}
</select><br>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .InvoiceStatus -}}
<label>
{{( pgettext "Invoice status" "input" )}}<br>
<select name="{{ .Name }}"
{{ template "error-attrs" . }}
>
<option value="">{{( gettext "All statuses" )}}</option>
{{ template "list-options" . }}
</select><br>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .FromDate -}}
<label>
{{( pgettext "From date" "input" )}}<br>
<input type="date"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .ToDate -}}
<label>
{{( pgettext "To date" "input" )}}<br>
<input type="date"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .InvoiceNumber -}}
<label>
{{( pgettext "Invoice number" "input" )}}<br>
<input type="text"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
{{ template "error-message" . }}
</label>
{{- end }}
{{ end }}
</fieldset>
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
{{ if .Filters.HasValue }}
<a href="/admin/invoices" class="button">{{( pgettext "Reset" "action" )}}</a>
{{ end }}
</form>
<a href="/admin/invoices/new">{{( pgettext "Add invoice" "action" )}}</a>
<h2>{{ template "title" . }}</h2>
{{ if .Invoices }}
<table id="invoice-list">
<thead>
<tr>
<th>{{( pgettext "All" "invoice" )}}</th>
<th>{{( pgettext "Date" "title" )}}</th>
<th>{{( pgettext "Invoice Num." "title" )}}</th>
<th>{{( pgettext "Customer" "title" )}}</th>
<th>{{( pgettext "Status" "title" )}}</th>
<th>{{( pgettext "Download" "title" )}}</th>
<th class="numeric">{{( pgettext "Amount" "title" )}}</th>
</tr>
</thead>
<tbody>
{{ template "results.gohtml" . }}
</tbody>
</table>
{{- else -}}
<p>{{( gettext "No invoices found." )}}</p>
{{ end }}
{{- end }}