Liga-System/gui/admin_gui.py

41 lines
1.8 KiB
Python
Raw Normal View History

from nicegui import ui, app
from data import database, data_api
from gui import gui_style
from wood import logger
def setup_routes():
@ui.page('/admin', dark=True)
def admin_page():
gui_style.apply_design()
with ui.header().classes('items-center justify-between bg-zinc-900 p-4 shadow-lg'):
ui.button("Zurück", on_click= lambda: ui.navigate.to("/") )
if app.storage.user.get('authenticated', False):
with ui.card().classes("w-full"):
with ui.row().classes("w-full"):
ui.button("test")
ui.button(icon="refresh", on_click=lambda: ui.navigate.reload)
ui.label("System Audit Log").classes('text-2xl font-bold text-white mb-4')
# Daten abrufen
log_data = logger.get_full_log()
# Tabelle aufbauen
columns = [
{'name': 'time', 'label': 'Zeitstempel', 'field': 'timestamp', 'align': 'left', 'sortable': True},
{'name': 'user', 'label': 'Auslöser', 'field': 'player_name', 'align': 'left'},
{'name': 'action', 'label': 'Aktion', 'field': 'action', 'align': 'left', 'sortable': True},
{'name': 'details', 'label': 'Details', 'field': 'details', 'align': 'left'}
]
if len(log_data) > 0:
# Wir schneiden bei den Millisekunden vom Zeitstempel wieder etwas ab [:19]
for row in log_data:
row['timestamp'] = str(row['timestamp'])[:19]
# Tabelle zeichnen
ui.table(columns=columns, rows=log_data, row_key='id').classes('w-full bg-zinc-900 text-gray-300')
else:
ui.label("Das Logbuch ist leer.").classes('text-gray-500 italic')