UX: Admin-Panel Desktop — Sidebar-Navigation, 1200px Breite, keine abgeschnittenen Tabs (SW by-v973)
This commit is contained in:
parent
af039efe82
commit
5fd86dac4b
6 changed files with 49 additions and 15 deletions
|
|
@ -408,7 +408,7 @@ async def serve_media(path: str, request: _Request):
|
|||
raise _HE(404, "Nicht gefunden.")
|
||||
return _media_response(filepath)
|
||||
|
||||
APP_VER = "972" # muss mit APP_VER in app.js übereinstimmen
|
||||
APP_VER = "973" # muss mit APP_VER in app.js übereinstimmen
|
||||
|
||||
@app.get("/.well-known/assetlinks.json")
|
||||
async def assetlinks():
|
||||
|
|
|
|||
|
|
@ -592,6 +592,40 @@
|
|||
/* Etwas breiterer Standard-Container auf großen Screens */
|
||||
.page-container { max-width: 860px; }
|
||||
|
||||
/* Admin: breit + Sidebar-Layout */
|
||||
#page-admin .page-container { max-width: 1200px; }
|
||||
|
||||
#page-admin .adm-shell {
|
||||
display: flex;
|
||||
gap: var(--space-4);
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
#page-admin .adm-tabs {
|
||||
display: flex !important;
|
||||
flex-direction: column;
|
||||
width: 190px;
|
||||
flex-shrink: 0;
|
||||
gap: var(--space-1);
|
||||
padding-bottom: 0;
|
||||
position: sticky;
|
||||
top: var(--space-3);
|
||||
}
|
||||
|
||||
#page-admin .adm-tabs .by-tab {
|
||||
justify-content: flex-start !important;
|
||||
text-align: left !important;
|
||||
padding-left: var(--space-3);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#page-admin #adm-content {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------
|
||||
WELCOME: 2-spaltige Feature-Sections, zentrierter Hero
|
||||
---------------------------------------------------------- */
|
||||
|
|
@ -688,7 +722,7 @@
|
|||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* Admin: Tabs auf 2 Zeilen */
|
||||
/* Admin: Tabs als 2-zeiliges Grid (Mobile/Tablet) */
|
||||
#page-admin .adm-tabs {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(var(--adm-tab-cols, 4), minmax(0, 1fr));
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@
|
|||
|
||||
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
|
||||
<link rel="stylesheet" href="/css/design-system.css?v=907">
|
||||
<link rel="stylesheet" href="/css/layout.css?v=907">
|
||||
<link rel="stylesheet" href="/css/layout.css?v=973">
|
||||
<link rel="stylesheet" href="/css/components.css?v=907">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Router, State-Management, Navigation, Initialisierung.
|
||||
============================================================ */
|
||||
|
||||
const APP_VER = '972'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VER = '973'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
||||
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
||||
// Cache-Bust-Parameter nach Update-Reload sofort entfernen
|
||||
|
|
|
|||
|
|
@ -56,17 +56,17 @@ window.Page_admin = (() => {
|
|||
<!-- Action Items -->
|
||||
<div id="adm-action-items" style="padding:var(--space-3) var(--space-3) 0"></div>
|
||||
|
||||
<!-- Tabs -->
|
||||
<div class="by-tabs adm-tabs" id="adm-tabs">
|
||||
${TABS.map(t => `
|
||||
<button class="by-tab${t.id === _tab ? ' active' : ''}" data-tab="${t.id}">
|
||||
${UI.icon(t.icon)} ${t.label}
|
||||
</button>
|
||||
`).join('')}
|
||||
<!-- Sidebar + Content (Desktop: nebeneinander) -->
|
||||
<div class="adm-shell">
|
||||
<div class="by-tabs adm-tabs" id="adm-tabs">
|
||||
${TABS.map(t => `
|
||||
<button class="by-tab${t.id === _tab ? ' active' : ''}" data-tab="${t.id}">
|
||||
${UI.icon(t.icon)} ${t.label}
|
||||
</button>
|
||||
`).join('')}
|
||||
</div>
|
||||
<div id="adm-content"></div>
|
||||
</div>
|
||||
|
||||
<!-- Inhalt -->
|
||||
<div id="adm-content"></div>
|
||||
`;
|
||||
|
||||
_container.querySelector('#adm-tabs')
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Offline-Cache + Push Notifications + Tile-Cache
|
||||
============================================================ */
|
||||
|
||||
const CACHE_VERSION = 'by-v972';
|
||||
const CACHE_VERSION = 'by-v973';
|
||||
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
||||
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
||||
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue