mirror of
https://github.com/mjl-/mox.git
synced 2025-07-10 05:54:38 +03:00
in web interfaces, put crumbs path in document title, for more useful browser history
This commit is contained in:
@ -1456,28 +1456,38 @@ const yellow = '#ffe400';
|
||||
const red = '#ff7443';
|
||||
const blue = '#8bc8ff';
|
||||
const link = (href, anchorOpt) => dom.a(attr.href(href), attr.rel('noopener noreferrer'), anchorOpt || href);
|
||||
const crumblink = (text, link) => dom.a(text, attr.href(link));
|
||||
const crumbs = (...l) => [
|
||||
dom.div(style({ float: 'right' }), dom.clickbutton('Logout', attr.title('Logout, invalidating this session.'), async function click(e) {
|
||||
const b = e.target;
|
||||
try {
|
||||
b.disabled = true;
|
||||
await client.Logout();
|
||||
}
|
||||
catch (err) {
|
||||
console.log('logout', err);
|
||||
window.alert('Error: ' + errmsg(err));
|
||||
}
|
||||
finally {
|
||||
b.disabled = false;
|
||||
}
|
||||
localStorageRemove('webadmincsrftoken');
|
||||
// Reload so all state is cleared from memory.
|
||||
window.location.reload();
|
||||
})),
|
||||
dom.h1(l.map((e, index) => index === 0 ? e : [' / ', e])),
|
||||
dom.br()
|
||||
];
|
||||
const crumblink = (text, path) => {
|
||||
return {
|
||||
text: text,
|
||||
path: path
|
||||
};
|
||||
};
|
||||
const crumbs = (...l) => {
|
||||
const crumbtext = (e) => typeof e === 'string' ? e : e.text;
|
||||
document.title = l.map(e => crumbtext(e)).join(' - ');
|
||||
const crumblink = (e) => typeof e === 'string' ? e : dom.a(e.text, attr.href(e.path));
|
||||
return [
|
||||
dom.div(style({ float: 'right' }), dom.clickbutton('Logout', attr.title('Logout, invalidating this session.'), async function click(e) {
|
||||
const b = e.target;
|
||||
try {
|
||||
b.disabled = true;
|
||||
await client.Logout();
|
||||
}
|
||||
catch (err) {
|
||||
console.log('logout', err);
|
||||
window.alert('Error: ' + errmsg(err));
|
||||
}
|
||||
finally {
|
||||
b.disabled = false;
|
||||
}
|
||||
localStorageRemove('webadmincsrftoken');
|
||||
// Reload so all state is cleared from memory.
|
||||
window.location.reload();
|
||||
})),
|
||||
dom.h1(l.map((e, index) => index === 0 ? crumblink(e) : [' / ', crumblink(e)])),
|
||||
dom.br()
|
||||
];
|
||||
};
|
||||
const errmsg = (err) => '' + (err.message || '(no error message)');
|
||||
const footer = dom.div(style({ marginTop: '6ex', opacity: 0.75 }), link('https://www.xmox.nl', 'mox'), ' ', moxversion, ' ', moxgoversion, ' ', moxgoos, '/', moxgoarch);
|
||||
const age = (date, future, nowSecs) => {
|
||||
|
Reference in New Issue
Block a user