27 lines
1020 B
Python
27 lines
1020 B
Python
# gui/base_page.py
|
|
from nicegui import ui, app
|
|
from starlette.requests import Request
|
|
|
|
def apply_design():
|
|
ui.add_css('body { background-color: #171721; }')
|
|
ui.dark_mode(True)
|
|
ui.colors(primary='#B80B0B', secondary='#FF3333', accent='#2078D4',
|
|
positive='#188C42', negative='#E31919', info='#939393', warning='#f59e0b')
|
|
|
|
def is_mobile(request: Request) -> bool:
|
|
user_agent = request.headers.get("user-agent", "").lower()
|
|
return any(k in user_agent for k in ["mobile", "android", "iphone", "ipod", "blackberry", "windows phone"])
|
|
|
|
def base_page(request: Request, title: str):
|
|
apply_design()
|
|
|
|
# Zentrale Login-Prüfung
|
|
if not app.storage.user.get('authenticated', False):
|
|
# Was wird angezeigt wenn ein User NICHT eingeloggt ist und versucht eine Seite aufzurufen.
|
|
apply_design()
|
|
ui.label('Access Denied. Please Login').classes('text-red-500')
|
|
ui.button('Login', on_click=lambda: ui.navigate.to('/login'))
|
|
return False
|
|
|
|
return True
|