Compare commits
2 Commits
c3e1597972
...
e34ef4f458
Author | SHA1 | Date |
---|---|---|
jordi fita mas | e34ef4f458 | |
jordi fita mas | 31a655ae7f |
|
@ -10,6 +10,7 @@ import (
|
|||
"math"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
@ -30,6 +31,12 @@ func mustRenderTemplate(wr io.Writer, r *http.Request, layout string, filename s
|
|||
"currentLocale": func() string {
|
||||
return locale.Language.String()
|
||||
},
|
||||
"requestURIMatches": func(uri string) bool {
|
||||
return r.RequestURI == uri
|
||||
},
|
||||
"requestURIHasPrefix": func(uri string) bool {
|
||||
return strings.HasPrefix(r.RequestURI, uri)
|
||||
},
|
||||
"companyURI": func(uri string) string {
|
||||
return companyURI(company, uri)
|
||||
},
|
||||
|
|
|
@ -562,10 +562,12 @@ ul[role="menu"].action-menu li i[class^='ri-'] {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
body > nav a[aria-current] {
|
||||
background-color: yellow;
|
||||
}
|
||||
|
||||
/* menu tauler final */
|
||||
|
||||
|
||||
main > nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
@ -1038,10 +1040,6 @@ div[x-data="snackbar"] div[role="alert"].enter.end, div[x-data="snackbar"] div[r
|
|||
min-width: 33rem;
|
||||
}
|
||||
|
||||
#income-statement div:first-child {
|
||||
background-color: var(--numerus--color--yellow);
|
||||
}
|
||||
|
||||
#income-statement div:nth-child(2) {
|
||||
background-color: var(--numerus--color--green);
|
||||
}
|
||||
|
|
|
@ -753,3 +753,19 @@ htmx.on(document, 'alpine:init', () => {
|
|||
},
|
||||
}));
|
||||
});
|
||||
|
||||
function updateCurrentMenuItem() {
|
||||
const path = window.location.pathname;
|
||||
const items = document.querySelectorAll('body > nav a');
|
||||
items.forEach((item, i) => {
|
||||
const matches = path === item.pathname;
|
||||
if (matches || (i !== 0 && path.startsWith(item.pathname))) {
|
||||
item.setAttribute('aria-current', 'page');
|
||||
} else {
|
||||
item.removeAttribute('aria-current');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
htmx.on('htmx:pushedIntoHistory', updateCurrentMenuItem);
|
||||
htmx.on('htmx:replacedInHistory', updateCurrentMenuItem);
|
||||
|
|
|
@ -50,12 +50,12 @@
|
|||
</header>
|
||||
<nav aria-label="{{( pgettext "Main" "title" )}}" data-hx-target="main" data-hx-boost="true">
|
||||
<ul>
|
||||
<li><a href="{{ companyURI "/" }}">{{( pgettext "Dashboard" "nav" )}}</a></li>
|
||||
<li><a href="{{ companyURI "/quotes" }}">{{( pgettext "Quotations" "nav" )}}</a></li>
|
||||
<li><a href="{{ companyURI "/invoices" }}">{{( pgettext "Invoices" "nav" )}}</a></li>
|
||||
<li><a href="{{ companyURI "/expenses" }}">{{( pgettext "Expenses" "nav" )}}</a></li>
|
||||
<li><a href="{{ companyURI "/products" }}">{{( pgettext "Products" "nav" )}}</a></li>
|
||||
<li><a href="{{ companyURI "/contacts" }}">{{( pgettext "Contacts" "nav" )}}</a></li>
|
||||
<li><a{{if requestURIMatches (companyURI "/") }} aria-current="page"{{ end }} href="{{ companyURI "/" }}">{{( pgettext "Dashboard" "nav" )}}</a></li>
|
||||
<li><a{{if requestURIHasPrefix (companyURI "/quotes") }} aria-current="page"{{ end }} href="{{ companyURI "/quotes" }}">{{( pgettext "Quotations" "nav" )}}</a></li>
|
||||
<li><a{{if requestURIHasPrefix (companyURI "/invoices") }} aria-current="page"{{ end }} href="{{ companyURI "/invoices" }}">{{( pgettext "Invoices" "nav" )}}</a></li>
|
||||
<li><a{{if requestURIHasPrefix (companyURI "/expenses") }} aria-current="page"{{ end }} href="{{ companyURI "/expenses" }}">{{( pgettext "Expenses" "nav" )}}</a></li>
|
||||
<li><a{{if requestURIHasPrefix (companyURI "/products") }} aria-current="page"{{ end }} href="{{ companyURI "/products" }}">{{( pgettext "Products" "nav" )}}</a></li>
|
||||
<li><a{{if requestURIHasPrefix (companyURI "/contacts") }} aria-current="page"{{ end }} href="{{ companyURI "/contacts" }}">{{( pgettext "Contacts" "nav" )}}</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
|
|
|
@ -26,8 +26,6 @@
|
|||
</div>
|
||||
<dl id="income-statement">
|
||||
<div>
|
||||
<dt>{{ (pgettext "Sales" "term") }}</dt>
|
||||
<dd>{{ formatPriceSpan .Sales }}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>{{ (pgettext "Income" "term") }}</dt>
|
||||
|
|
Loading…
Reference in New Issue