diff --git a/main.py b/main.py index 0e24c55..488184a 100644 --- a/main.py +++ b/main.py @@ -43,7 +43,9 @@ def styling(): def login_check(): if not app.storage.user.get('authenticated', False): - return RedirectResponse('/login') + return False + else: + return True # Create a connection conn = MontyClient("db") @@ -54,7 +56,8 @@ db = conn.letsswing # Routes @ui.page('/manager/{sede}/{livello}', title="Let's Swing Admin", favicon="assets/favicon.ico") def manager_page(sede:int, livello:int) -> None: - login_check() + if not login_check(): + return RedirectResponse('/login') styling() manage = manager.Manager(handler) @@ -66,20 +69,23 @@ app.add_static_files('/static', 'static') @ui.page('/', title="Let's Swing Admin", favicon="assets/favicon.ico") def index_page() -> None: - login_check() + if not login_check(): + return RedirectResponse('/login') styling() index.main(db) @ui.page('/user/{userid}', title="Let's Swing Admin", favicon="assets/favicon.ico") def user_page(userid: str) -> None: - login_check() + if not login_check(): + return RedirectResponse('/login') styling() user.main(userid, db, handler) @ui.page('/edit/{userid}/{sede}/{livello}', title="Let's Swing Admin", favicon="assets/favicon.ico") def useredit_page(userid: str, sede: int, livello: int) -> None: - login_check() + if not login_check(): + return RedirectResponse('/login') styling() useredit.main(userid, sede, livello, db, handler) @@ -113,6 +119,19 @@ def page_login() -> None: return RedirectResponse('/') ui.add_head_html(''' + ''') ui.add_body_html(''' ''') - async def alert(): + async def install(): await ui.run_javascript(''' // Show the prompt if(!deferredPrompt) @@ -144,9 +163,17 @@ def page_login() -> None: deferredPrompt = null; });''', respond=False) - + async def installable(btn): + response = await ui.run_javascript(''' + return (deferredPrompt ? true : false); + ''') + if response: + btn.classes("hbtn visible") + with ui.card().classes('absolute-center items-center'): - ui.button('Installa App', on_click=alert) + install_btn =ui.button('Installa App', on_click=install,icon="install_mobile").classes("hbtn").props("outline") + ui.timer(1, lambda: installable(install_btn), once=True) + ui.image('assets/logo.svg') ui.label('Let\'s Swing Admin').classes('text-2xl').style("text-align:center") username = ui.input('Username').on('keydown.enter', try_login).classes('w-full')