diff --git a/frontend/components/ui/AppTopNav.vue b/frontend/components/ui/AppTopNav.vue
new file mode 100644
index 0000000..e6b914d
--- /dev/null
+++ b/frontend/components/ui/AppTopNav.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
Coltura
+
+
+
+
+
{{ user?.username }}
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/SidebarLink.vue b/frontend/components/ui/SidebarLink.vue
new file mode 100644
index 0000000..f008b77
--- /dev/null
+++ b/frontend/components/ui/SidebarLink.vue
@@ -0,0 +1,52 @@
+
+
+
+
+ {{ label }}
+
+
+ {{ label }}
+
+
+
+
+
diff --git a/frontend/composables/useApi.ts b/frontend/composables/useApi.ts
index 212fe53..cc977dd 100644
--- a/frontend/composables/useApi.ts
+++ b/frontend/composables/useApi.ts
@@ -126,10 +126,7 @@ export function useApi(): ApiClient {
if (!isHandlingUnauthorized) {
isHandlingUnauthorized = true
auth.clearSession()
- const route = useRoute()
- if (route.path !== '/login') {
- await navigateTo('/login')
- }
+ await navigateTo('/login')
isHandlingUnauthorized = false
}
}
diff --git a/infra/prod/maintenance.html b/infra/prod/maintenance.html
new file mode 100644
index 0000000..648b6f1
--- /dev/null
+++ b/infra/prod/maintenance.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+ Maintenance en cours
+
+
+
+
+
🛠
+
Maintenance en cours
+
L'application est temporairement indisponible pour mise a jour. Elle sera de retour dans quelques instants.
+
+
+