Compare commits

..

No commits in common. "992bbf32a9fb3b7807cca4967e78214c003ddb27" and "79ec3ae4d687e79d3239bcb2217abff89012dc45" have entirely different histories.

8 changed files with 102 additions and 119 deletions

View File

@ -194,11 +194,11 @@ p, h1, h2, h3, h4, h5, h6 {
}
input[type="radio"] {
accent-color: var(--numerus--color--black);
accent-color: var(--numerus--color--black);
}
input[type=file] {
padding: 2rem 1rem 0 1rem;
padding: 2rem 1rem 0 1rem;
}
input[type="submit"], button, .button {
@ -251,7 +251,7 @@ table {
td {
padding: 0 1rem;
padding: 0 1rem;
}
#invoice-list td {
@ -374,15 +374,15 @@ input.width-2x {
color: var(--numerus--color--red);
}
[lang="en"] form:not(.filters) textarea:not([required]) + label::after,
[lang="en"] form:not(.filters) input:not([required]) + label::after,
[lang="en"] form:not(.filters) select:not([required]) + label::after {
[lang="en"] textarea:not([required]) + label::after,
[lang="en"] input:not([required]) + label::after,
[lang="en"] select:not([required]) + label::after {
content: " (optional)"
}
[lang="ca"] form:not(.filters) textarea:not([required]) + label::after, [lang="es"] form:not(.filters) textarea:not([required]) + label::after,
[lang="ca"] form:not(.filters) input:not([required]) + label::after, [lang="es"] form:not(.filters) input:not([required]) + label::after,
[lang="ca"] form:not(.filters) select:not([required]) + label::after, [lang="es"] form:not(.filters) select:not([required]) + label::after {
[lang="ca"] textarea:not([required]) + label::after, [lang="es"] textarea:not([required]) + label::after,
[lang="ca"] input:not([required]) + label::after, [lang="es"] input:not([required]) + label::after,
[lang="ca"] select:not([required]) + label::after, [lang="es"] select:not([required]) + label::after {
content: " (opcional)"
}
@ -563,7 +563,7 @@ main > nav {
/* Invoice */
.new-invoice-product input {
width: 100%;
width: 100%;
}
.new-invoice-product {
@ -649,49 +649,49 @@ main > nav {
}
.invoice-data, .product-data, .expenses-data {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1rem;
display: grid;
grid-template-columns: repeat(4 , 1fr);
gap: 1rem;
}
.invoice-data .input:last-child {
grid-column-start: 1;
grid-column-end: 5;
grid-column-start: 1;
grid-column-end: 5;
}
#invoice-summary th {
text-align: left;
padding: 0 0 0 1rem;
text-align: left;
padding: 0 0 0 1rem;
}
.button-bar button {
flex: 1
flex: 1
}
/* expenses */
.expenses-data div:last-child {
grid-column-start: 3;
grid-column-end: 5;
grid-column-start: 3;
grid-column-end: 5;
}
/* product */
.product-data div:last-child {
grid-column-start: 1;
grid-column-end: 5;
grid-column-start: 1;
grid-column-end: 5;
}
/* contact */
.contact-data {
display: grid;
gap: 1rem;
grid-template-columns: repeat(3, 1fr);
display: grid;
gap: 1rem;
grid-template-columns: repeat(3, 1fr);
}
/* Multiselect, tags */
.tag {
padding: 0 0 0 .5rem;
padding: 0 0 0 .5rem;
}
[is="numerus-multiselect"] .tags, [is="numerus-tags"] .tags,
@ -724,7 +724,7 @@ main > nav {
}
[is="numerus-tags"] .tags input, [is="numerus-multiselect"] .tags input {
height: initial;
height: initial;
}
[is="numerus-multiselect"] .tags:after {
@ -909,28 +909,20 @@ div[x-data="snackbar"] div[role="alert"].enter.end, div[x-data="snackbar"] div[r
transform: translateY(0);
}
/* Filters */
.filters {
display: none;
}
.filters-visible .filters {
display: flex;
gap: 1rem;
}
.filters-visible #filters-toggle {
background-color: var(--numerus--header--background-color);
}
/* Dashboard */
.filters {
display: flex;
gap: 1rem;
}
#dashboard-filters {
display: flex;
}
#dashboard-filters fieldset {
display: flex;
justify-content: space-between;
display: flex;
justify-content: space-between;
}
#dashboard-filters .radio {

View File

@ -712,8 +712,6 @@ htmx.on('closeModal', () => {
});
htmx.on(document, 'alpine:init', () => {
document.body.classList.remove('show-filters');
Alpine.data('snackbar', () => ({
show: false, toast: "", toasts: [], timeoutId: null, init() {
htmx.on('htmx:error', (error) => {

View File

@ -9,7 +9,7 @@
<script type="module" src="/static/numerus.js"></script>
<script defer src="/static/alpinejs@3.12.0.min.js"></script>
</head>
<body class="show-filters">
<body>
<header>
<h1><img src="/static/numerus.svg" alt="Numerus" width="261" height="33"></h1>
<details id="profile-menu" class="menu">

View File

@ -10,7 +10,6 @@
<a>{{( pgettext "Contacts" "title" )}}</a>
</p>
<p>
{{ template "filters-toggle" }}
<a class="primary button"
href="{{ companyURI "/contacts/new" }}">{{( pgettext "New contact" "action" )}}</a>
</p>
@ -19,21 +18,22 @@
{{ define "content" }}
{{- /*gotype: dev.tandem.ws/tandem/numerus/pkg.ContactsIndexPage*/ -}}
<form class="filters" method="GET" action="{{ companyURI "/contacts"}}"
data-hx-target="main"
data-hx-boost="true"
data-hx-trigger="change,search,submit"
aria-labelledby="filters-toggle"
>
{{ with .Filters }}
{{ template "input-field" .Name }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
<div aria-label="{{( pgettext "Filters" "title" )}}">
<form class="filters" method="GET" action="{{ companyURI "/contacts"}}"
data-hx-target="main"
data-hx-boost="true"
data-hx-trigger="change,search,submit"
>
{{ with .Filters }}
{{ template "input-field" .Name }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
</div>
<table>
<thead>
<tr>

View File

@ -11,7 +11,6 @@
<a>{{( pgettext "Expenses" "title" )}}</a>
</p>
<p>
{{ template "filters-toggle" }}
<a class="primary button"
href="{{ companyURI "/expenses/new" }}">{{( pgettext "New expense" "action" )}}</a>
</p>
@ -20,22 +19,23 @@
{{ define "content" }}
{{- /*gotype: dev.tandem.ws/tandem/numerus/pkg.expensesIndexPage*/ -}}
<form class="filters" method="GET" action="{{ companyURI "/expenses"}}"
data-hx-target="main" data-hx-boost="true" data-hx-trigger="change,search,submit"
aria-labelledby="filters-toggle"
>
{{ with .Filters }}
{{ template "select-field" .Customer }}
{{ template "input-field" .FromDate }}
{{ template "input-field" .ToDate }}
{{ template "input-field" .InvoiceNumber }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
<div aria-label="{{( pgettext "Filters" "title" )}}">
<form class="filters" method="GET" action="{{ companyURI "/expenses"}}"
data-hx-target="main" data-hx-boost="true" data-hx-trigger="change,search,submit"
>
{{ with .Filters }}
{{ template "select-field" .Customer }}
{{ template "input-field" .FromDate }}
{{ template "input-field" .ToDate }}
{{ template "input-field" .InvoiceNumber }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
</div>
<table>
<thead>
<tr>

View File

@ -159,9 +159,3 @@
{{ template "select-field" .Tax }}
</fieldset>
{{- end }}
{{ define "filters-toggle" -}}
<button id="filters-toggle" x-cloak x-data="{}"
@click="document.body.classList.toggle('filters-visible')"
type="button">{{(pgettext "Filters" "action")}}</button>
{{- end }}

View File

@ -13,7 +13,6 @@
<form id="batch-form" action="{{ companyURI "/invoices/batch" }}" method="post">
{{ csrfToken }}
<p>
{{ template "filters-toggle" }}
<button type="submit"
name="action" value="download"
>{{( pgettext "Download invoices" "action" )}}</button>
@ -26,23 +25,23 @@
{{ define "content" }}
{{- /*gotype: dev.tandem.ws/tandem/numerus/pkg.InvoicesIndexPage*/ -}}
<form class="filters" method="GET" action="{{ companyURI "/invoices"}}"
data-hx-target="main" data-hx-boost="true" data-hx-trigger="change,search,submit"
aria-labelledby="filters-toggle"
>
{{ with .Filters }}
{{ template "select-field" .Customer }}
{{ template "select-field" .InvoiceStatus }}
{{ template "input-field" .FromDate }}
{{ template "input-field" .ToDate }}
{{ template "input-field" .InvoiceNumber }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
<div aria-label="{{( pgettext "Filters" "title" )}}">
<form class="filters" method="GET" action="{{ companyURI "/invoices"}}" data-hx-target="main" data-hx-boost="true"
data-hx-trigger="change,search,submit">
{{ with .Filters }}
{{ template "select-field" .Customer }}
{{ template "select-field" .InvoiceStatus }}
{{ template "input-field" .FromDate }}
{{ template "input-field" .ToDate }}
{{ template "input-field" .InvoiceNumber }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
</div>
<table id="invoice-list">
<thead>
<tr>

View File

@ -10,7 +10,6 @@
<a>{{( pgettext "Products" "title" )}}</a>
</p>
<p>
{{ template "filters-toggle" }}
<a class="primary button"
href="{{ companyURI "/products/new" }}">{{( pgettext "New product" "action" )}}</a>
</p>
@ -19,21 +18,22 @@
{{ define "content" }}
{{- /*gotype: dev.tandem.ws/tandem/numerus/pkg.productsIndexPage*/ -}}
<form class="filters" method="GET" action="{{ companyURI "/products"}}"
data-hx-target="main"
data-hx-boost="true"
data-hx-trigger="change,search,submit"
aria-labelledby="filters-toggle"
>
{{ with .Filters }}
{{ template "input-field" .Name }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
<div aria-label="{{( pgettext "Filters" "title" )}}">
<form class="filters" method="GET" action="{{ companyURI "/products"}}"
data-hx-target="main"
data-hx-boost="true"
data-hx-trigger="change,search,submit"
>
{{ with .Filters }}
{{ template "input-field" .Name }}
{{ template "tags-field" .Tags | addTagsAttr (print `data-conditions="` .TagsCondition.Name `-field"`) }}
{{ template "toggle-field" .TagsCondition }}
{{ end }}
<noscript>
<button type="submit">{{( pgettext "Filter" "action" )}}</button>
</noscript>
</form>
</div>
<table>
<thead>
<tr>