90 lines
3.7 KiB
Python
90 lines
3.7 KiB
Python
from __future__ import annotations
|
|
|
|
from asyncio import sleep
|
|
from typing import * # type: ignore
|
|
|
|
from rio import Component, event, Spacer, Card, Container, Column, Row, TextStyle, Color, Text
|
|
|
|
from src.ez_lan_manager.services.DatabaseService import DatabaseService
|
|
from src.ez_lan_manager import ConfigurationService
|
|
from src.ez_lan_manager.components.MainViewContentBox import MainViewContentBox
|
|
|
|
|
|
class DbErrorPage(Component):
|
|
@event.on_window_size_change
|
|
async def on_window_size_change(self) -> None:
|
|
await self.force_refresh()
|
|
|
|
# @event.on_mount
|
|
# async def retry_db_connect(self) -> None:
|
|
# await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Fehler")
|
|
# while not self.session[DatabaseService].is_connected:
|
|
# await sleep(2)
|
|
# self.session.navigate_to("./")
|
|
|
|
def build(self) -> Component:
|
|
content = Card(
|
|
content=MainViewContentBox(
|
|
content=Text(
|
|
text="Ouh-oh, da läuft gerade irgendwas schief.\n\n"
|
|
"Unser Team kümmert sich bereits um das Problem.\n\n"
|
|
"Du wirst automatisch weitergeleitet sobald das System wieder verfügbar ist.",
|
|
margin=2,
|
|
style=TextStyle(
|
|
fill=self.session.theme.danger_color,
|
|
font_size=1.3
|
|
),
|
|
wrap=True
|
|
)
|
|
),
|
|
color="secondary",
|
|
min_width=38,
|
|
corner_radius=(0, 0.5, 0, 0)
|
|
)
|
|
if self.session.window_width > 28:
|
|
return Container(
|
|
content=Column(
|
|
Column(
|
|
Row(
|
|
Spacer(grow_x=True, grow_y=True),
|
|
Card(
|
|
content=Spacer(),
|
|
color=self.session.theme.neutral_color,
|
|
min_width=15,
|
|
grow_y=True,
|
|
corner_radius=(0.5, 0, 0, 0),
|
|
margin_right=0.1
|
|
),
|
|
content,
|
|
Spacer(grow_x=True, grow_y=True),
|
|
grow_y=True
|
|
),
|
|
Row(
|
|
Spacer(grow_x=True, grow_y=False),
|
|
Card(
|
|
content=Text(f"EZ LAN Manager Version {self.session[ConfigurationService].APP_VERSION} © EZ GG e.V.", align_x=0.5, align_y=0.5, style=TextStyle(fill=self.session.theme.primary_color, font_size=0.5)),
|
|
color=self.session.theme.neutral_color,
|
|
corner_radius=(0, 0, 0.5, 0.5),
|
|
grow_x=False,
|
|
grow_y=False,
|
|
min_height=1.2,
|
|
min_width=53.1,
|
|
margin_bottom=3
|
|
),
|
|
Spacer(grow_x=True, grow_y=False),
|
|
grow_y=False
|
|
),
|
|
margin_top=4
|
|
)
|
|
),
|
|
grow_x=True,
|
|
grow_y=True
|
|
)
|
|
else:
|
|
return Text(
|
|
"Der EZ LAN Manager wird\nauf mobilen Endgeräten nur\nim Querformat unterstützt.\nBitte drehe dein Gerät.",
|
|
align_x=0.5,
|
|
align_y=0.5,
|
|
style=TextStyle(fill=Color.from_hex("FFFFFF"), font_size=0.8)
|
|
)
|