diff --git a/dashboard/app.vue b/dashboard/app.vue index 8bef9f1..e4fce55 100644 --- a/dashboard/app.vue +++ b/dashboard/app.vue @@ -36,7 +36,7 @@ const { showDialog, closeDialog, dialogComponent, dialogParams, dialogStyle, dia
+ class="absolute bottom-8 right-4 bg-red-400 text-white text-[.9rem] font-bold px-4 py-[.2rem] rounded-lg z-[100]">
XS
diff --git a/dashboard/components/CVerticalNavigation.vue b/dashboard/components/CVerticalNavigation.vue index f671e6c..51736d1 100644 --- a/dashboard/components/CVerticalNavigation.vue +++ b/dashboard/components/CVerticalNavigation.vue @@ -9,7 +9,8 @@ export type Entry = { icon?: string, action?: () => any, adminOnly?: boolean, - external?: boolean + external?: boolean, + grow?: boolean } export type Section = { @@ -66,24 +67,35 @@ async function deleteSnapshot(close: () => any) { async function generatePDF() { -try { - const res = await $fetch('/api/project/generate_pdf', { - ...signHeaders(), - responseType: 'blob' - }); + try { + const res = await $fetch('/api/project/generate_pdf', { + ...signHeaders(), + responseType: 'blob' + }); - const url = URL.createObjectURL(res); - const a = document.createElement('a'); - a.href = url; - a.download = `Report.pdf`; - a.click(); - URL.revokeObjectURL(url); -} catch (ex: any) { - alert(ex.message); + const url = URL.createObjectURL(res); + const a = document.createElement('a'); + a.href = url; + a.download = `Report.pdf`; + a.click(); + URL.revokeObjectURL(url); + } catch (ex: any) { + alert(ex.message); + } } + +const { setToken } = useAccessToken(); +const router = useRouter(); + +function onLogout() { + console.log('LOGOUT') + setToken(''); + setLoggedUser(undefined); + router.push('/login'); } +