page tweaks

This commit is contained in:
John Lancaster
2026-06-29 14:08:35 -05:00
parent 8129f5a9e8
commit 3a141bd4cc
2 changed files with 7 additions and 16 deletions
@@ -1,11 +1,14 @@
"""Common logic for generating table widgets.""" """Common logic for generating table widgets."""
import logging
from collections.abc import Callable from collections.abc import Callable
from typing import Any from typing import Any
from nicegui import events from nicegui import events
from nicegui import ui from nicegui import ui
logger = logging.getLogger(__name__)
def _extract_row_id(args: Any) -> str | None: def _extract_row_id(args: Any) -> str | None:
if isinstance(args, dict): if isinstance(args, dict):
@@ -37,6 +40,7 @@ def _bind_row_click_handler(
on_row_click_id(row_id) on_row_click_id(row_id)
table.on("rowClick", handle_row_click) table.on("rowClick", handle_row_click)
logger.debug("Row click handler bound to table")
def build_table( def build_table(
@@ -63,6 +67,7 @@ def build_table(
.classes(classes) .classes(classes)
.props('table-style="table-layout: fixed; width: 100%;"') .props('table-style="table-layout: fixed; width: 100%;"')
) )
logger.info("Table built with %d rows and %d columns", len(rows), len(columns))
if on_row_click_id is not None: if on_row_click_id is not None:
_bind_row_click_handler(table, on_row_click_id=on_row_click_id) _bind_row_click_handler(table, on_row_click_id=on_row_click_id)
return table return table
+2 -16
View File
@@ -11,8 +11,6 @@ from transcription.app_state import resolve_session_factory
from transcription.services.jobs import JobService from transcription.services.jobs import JobService
from transcription.services.transcription import TranscriptionService from transcription.services.transcription import TranscriptionService
from transcription.ui.components.app_shell import render_navigation_header from transcription.ui.components.app_shell import render_navigation_header
from transcription.ui.components.error_presenter import show_error
from transcription.ui.components.error_presenter import summarize_error
from transcription.ui.components.job_detail import render_job_detail from transcription.ui.components.job_detail import render_job_detail
from transcription.ui.components.table.jobs import render_jobs_table from transcription.ui.components.table.jobs import render_jobs_table
@@ -27,8 +25,6 @@ def register_page() -> None:
session_factory = resolve_session_factory(request.app.state) session_factory = resolve_session_factory(request.app.state)
jobs_service = JobService(session_factory=session_factory) jobs_service = JobService(session_factory=session_factory)
render_navigation_header(current_path="/jobs") render_navigation_header(current_path="/jobs")
ui.label("Transcription Jobs")
status = ui.label("Ready")
@ui.refreshable @ui.refreshable
async def render_table() -> None: async def render_table() -> None:
@@ -45,18 +41,8 @@ def register_page() -> None:
] ]
render_jobs_table(jobs) render_jobs_table(jobs)
async def refresh() -> None: ui.button("Refresh", on_click=render_table.refresh, icon="refresh")
status.text = "Refreshing..."
try:
await render_table.refresh()
status.text = "Refreshed"
except Exception as exc: # noqa: BLE001
status.text = f"Refresh failed: {summarize_error(exc, operation='jobs.refresh')}"
show_error(exc, title="Jobs refresh failed", operation="jobs.refresh")
ui.button("Refresh", on_click=refresh)
await render_table() await render_table()
ui.link("Back to upload", "/upload")
@ui.page("/jobs/{job_id}") @ui.page("/jobs/{job_id}")
async def job_detail_page(job_id: str, request: Request) -> None: async def job_detail_page(job_id: str, request: Request) -> None:
@@ -64,7 +50,7 @@ def register_page() -> None:
jobs_service = JobService(session_factory=session_factory) jobs_service = JobService(session_factory=session_factory)
transcription_service = TranscriptionService(session_factory=session_factory) transcription_service = TranscriptionService(session_factory=session_factory)
render_navigation_header(current_path="/jobs") render_navigation_header(current_path="/jobs")
ui.label("Job Detail") ui.button(icon="arrow_back", on_click=ui.navigate.back)
try: try:
parsed_id = UUID(job_id) parsed_id = UUID(job_id)
except ValueError: except ValueError: