diff options
Diffstat (limited to 'web-project/src/solo_tool_web.py')
-rw-r--r-- | web-project/src/solo_tool_web.py | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/web-project/src/solo_tool_web.py b/web-project/src/solo_tool_web.py index 5512408..7b36b75 100644 --- a/web-project/src/solo_tool_web.py +++ b/web-project/src/solo_tool_web.py @@ -2,7 +2,7 @@ import sys from os import getenv from os.path import basename, splitext from functools import partial -from nicegui import ui +from nicegui import ui, events from starlette.formparsers import MultiPartParser import click @@ -45,13 +45,9 @@ def sessionPage(sessionName: str): st = sessions[sessionName] # Upload song dialog - def handleFileUpload(e): - if False: - from shutil import copyfileobj - newSong = f"{SONG_POOL}/{e.name}" - with open(newSong, "wb") as f: - copyfileobj(e.content, f) - st.addSong(newSong) + def handleFileUpload(e: events.UploadEventArguments): + sessionManager.addSong(e.name, e.content) + st.addSong(e.name) with ui.dialog() as uploadSongDialog: ui.upload(label="Upload songs", auto_upload=True, on_upload=handleFileUpload).classes('max-w-full') @@ -63,7 +59,7 @@ def sessionPage(sessionName: str): ui.label().bind_text_from(st, 'song', lambda index: fileName(st.songs[index]) if index is not None else "Select a song").classes('text-lg') with ui.row().classes('items-center justify-start'): ui.button(icon='home', on_click=lambda: ui.navigate.to("/")).props('flat dense round color=white') - def save(): sessionManager.saveSession(st, f"{sessionName}.json") + def save(): sessionManager.saveSession(st, sessionName) ui.button(icon='save', on_click=save).props('flat dense round color=white') ui.button(icon='fullscreen', on_click=fullscreen.toggle).props('flat dense round color=white') @@ -121,6 +117,7 @@ def landingPage(): ui.button(name, on_click=partial(ui.navigate.to, f"/{name}")) def start(port, refresh, reload, session_path, song_path): + global sessionManager sessionManager = getSessionManager(song_path, session_path) for key in sessionManager.getSessions(): |