fix: login page standalone sans layout (null layout respecté par Inertia)

This commit is contained in:
Kevin L'Hereec committed 2026-07-03 18:42:39 +02:00
1 parent 3693d0c0a5
commit 228d382cbf
7 files changed
+70 -17

No files matched your search

+18
View File
@@ -288,6 +288,24 @@ const routes = {
tokens: [{"old":"/api/v1/firmware-catalog/routes/:id","type":0,"val":"api","end":""},{"old":"/api/v1/firmware-catalog/routes/:id","type":0,"val":"v1","end":""},{"old":"/api/v1/firmware-catalog/routes/:id","type":0,"val":"firmware-catalog","end":""},{"old":"/api/v1/firmware-catalog/routes/:id","type":0,"val":"routes","end":""},{"old":"/api/v1/firmware-catalog/routes/:id","type":1,"val":"id","end":""}],
types: placeholder as Registry['firmware_catalog.delete_route']['types'],
},
'login': {
methods: ["GET","HEAD"],
pattern: '/login',
tokens: [{"old":"/login","type":0,"val":"login","end":""}],
types: placeholder as Registry['login']['types'],
},
'auth.login': {
methods: ["POST"],
pattern: '/login',
tokens: [{"old":"/login","type":0,"val":"login","end":""}],
types: placeholder as Registry['auth.login']['types'],
},
'logout': {
methods: ["POST"],
pattern: '/logout',
tokens: [{"old":"/logout","type":0,"val":"logout","end":""}],
types: placeholder as Registry['logout']['types'],
},
'pages.home': {
methods: ["GET","HEAD"],
pattern: '/',
+36
View File
@@ -571,6 +571,42 @@ export interface Registry {
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/firmware_catalog_controller').default['deleteRoute']>>>
}
}
'login': {
methods: ["GET","HEAD"]
pattern: '/login'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['showLogin']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['showLogin']>>>
}
}
'auth.login': {
methods: ["POST"]
pattern: '/login'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['login']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['login']>>>
}
}
'logout': {
methods: ["POST"]
pattern: '/logout'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['logout']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['logout']>>>
}
}
'pages.home': {
methods: ["GET","HEAD"]
pattern: '/'
+5
View File
@@ -66,6 +66,11 @@ export interface ApiDefinition {
updateRoute: typeof routes['firmware_catalog.update_route']
deleteRoute: typeof routes['firmware_catalog.delete_route']
}
login: typeof routes['login']
auth: {
login: typeof routes['auth.login']
}
logout: typeof routes['logout']
pages: {
home: typeof routes['pages.home']
deviceDetail: typeof routes['pages.device_detail']
+1
View File
@@ -4,6 +4,7 @@
*/
export const controllers = {
Auth: () => import('#controllers/auth_controller'),
Commands: () => import('#controllers/commands_controller'),
ConfigurationsV1: () => import('#controllers/configurations_v1_controller'),
Cwmp: () => import('#controllers/cwmp_controller'),
+7
View File
@@ -51,6 +51,9 @@ export type ScannedRoutes = {
'firmware_catalog.create_route': { paramsTuple?: []; params?: {} }
'firmware_catalog.update_route': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'firmware_catalog.delete_route': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'login': { paramsTuple?: []; params?: {} }
'auth.login': { paramsTuple?: []; params?: {} }
'logout': { paramsTuple?: []; params?: {} }
'pages.home': { paramsTuple?: []; params?: {} }
'pages.device_detail': { paramsTuple: [ParamValue]; params: {'identifier': ParamValue} }
'pages.refresh_device': { paramsTuple: [ParamValue]; params: {'identifier': ParamValue} }
@@ -80,6 +83,8 @@ export type ScannedRoutes = {
'configurations_v_1.dry_run': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'firmware_catalog.create_entry': { paramsTuple?: []; params?: {} }
'firmware_catalog.create_route': { paramsTuple?: []; params?: {} }
'auth.login': { paramsTuple?: []; params?: {} }
'logout': { paramsTuple?: []; params?: {} }
'pages.refresh_device': { paramsTuple: [ParamValue]; params: {'identifier': ParamValue} }
'pages.get_model': { paramsTuple: [ParamValue]; params: {'identifier': ParamValue} }
'pages.store_fleet_devices': { paramsTuple?: []; params?: {} }
@@ -110,6 +115,7 @@ export type ScannedRoutes = {
'firmware_catalog.list_entries': { paramsTuple?: []; params?: {} }
'firmware_catalog.show_entry': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'firmware_catalog.list_routes': { paramsTuple?: []; params?: {} }
'login': { paramsTuple?: []; params?: {} }
'pages.home': { paramsTuple?: []; params?: {} }
'pages.device_detail': { paramsTuple: [ParamValue]; params: {'identifier': ParamValue} }
'commands.page': { paramsTuple?: []; params?: {} }
@@ -148,6 +154,7 @@ export type ScannedRoutes = {
'firmware_catalog.list_entries': { paramsTuple?: []; params?: {} }
'firmware_catalog.show_entry': { paramsTuple: [ParamValue]; params: {'id': ParamValue} }
'firmware_catalog.list_routes': { paramsTuple?: []; params?: {} }
'login': { paramsTuple?: []; params?: {} }
'pages.home': { paramsTuple?: []; params?: {} }
'pages.device_detail': { paramsTuple: [ParamValue]; params: {'identifier': ParamValue} }
'commands.page': { paramsTuple?: []; params?: {} }
+3 -1
View File
@@ -23,7 +23,9 @@ createInertiaApp({
if (!page) {
throw new Error(`Page not found: ${name}`)
}
page.default.layout = page.default.layout || DefaultLayout
if (page.default.layout === undefined) {
page.default.layout = DefaultLayout
}
return page
},
setup({ el, App, props, plugin }) {
-16
View File
@@ -25,19 +25,7 @@ function submit() {
<div class="min-vh-100 d-flex flex-column align-items-center justify-content-center bg-light">
<div class="card shadow-sm" style="width: 100%; max-width: 400px">
<div class="card-body p-4">
<!-- Header -->
<div class="text-center mb-4">
<svg
width="48"
height="48"
viewBox="0 0 100 100"
xmlns="http://www.w3.org/2000/svg"
aria-hidden="true"
class="mb-3"
>
<rect width="100" height="100" fill="#ff7900" />
<rect x="14.29" y="71.43" width="71.43" height="14.29" fill="#fff" />
</svg>
<h1 class="h4 mb-0">ADAM ACS</h1>
<p class="text-muted small mt-1">{{ t('login.subtitle') }}</p>
</div>
@@ -98,9 +86,5 @@ function submit() {
</form>
</div>
</div>
<footer class="mt-4 text-muted small">
&copy; Orange 2025
</footer>
</div>
</template>