diff --git a/src/transcription/ui/components/document_panzoom.py b/src/transcription/ui/components/document_panzoom.py index df45d82..3d170c2 100644 --- a/src/transcription/ui/components/document_panzoom.py +++ b/src/transcription/ui/components/document_panzoom.py @@ -185,36 +185,15 @@ def render_document_panzoom(*, document: Document, height: str = "640px") -> Non document_url = _document_url(document) document_kind = _document_kind(document) - with ui.card().classes("w-full bg-blue-grey-10 text-grey-1 q-pa-md"): - with ui.row().classes("w-full items-center justify-between q-gutter-sm"): - with ui.column().classes("q-gutter-none"): + with ui.card().classes("w-full q-pa-md"): + with ui.column().classes("q-gutter-none"): + with ui.row().classes("w-full items-center justify-between q-gutter-sm"): ui.label("Document preview").classes("text-subtitle1 text-weight-medium") ui.label(document.filename).classes("text-caption text-grey-4") - with ui.button_group().props("flat outline"): - ui.button( - "Zoom In", - icon="add", - on_click=lambda: ui.run_javascript(f"window.__transcriptionPanzoom[{host_id!r}]?.zoomIn()"), - ) - ui.button( - "Zoom Out", - icon="remove", - on_click=lambda: ui.run_javascript(f"window.__transcriptionPanzoom[{host_id!r}]?.zoomOut()"), - ) - ui.button( - "Reset", - icon="restart_alt", - on_click=lambda: ui.run_javascript(f"window.__transcriptionPanzoom[{host_id!r}]?.reset()"), - ) - - ui.label("Scroll, pinch, or use the buttons to inspect the document.").classes( - "text-caption text-grey-4 q-mt-sm" - ) - with ( ui.element("div") - .classes("w-full document-panzoom-host bg-blue-grey-9 rounded-borders q-mt-md") + .classes("w-full document-panzoom-host rounded-borders q-mt-md") .style(f"height: {height};") as host ): host.props(f"id={host_id}") diff --git a/src/transcription/ui/components/job_detail.py b/src/transcription/ui/components/job_detail.py index aab01ce..70d624a 100644 --- a/src/transcription/ui/components/job_detail.py +++ b/src/transcription/ui/components/job_detail.py @@ -2,6 +2,7 @@ from __future__ import annotations +import logging from collections.abc import Sequence from nicegui import ui @@ -11,6 +12,8 @@ from transcription.models import Job from transcription.models import Transcript from transcription.ui.components.document_panzoom import render_document_panzoom +logger = logging.getLogger(__name__) + def _status_chip_classes(status: str) -> str: if status == "queued": @@ -31,21 +34,21 @@ def _metadata_row(label: str, value: str) -> None: def _render_document_section(document: Document) -> None: - with ui.card().classes("w-full bg-blue-grey-10 text-grey-1 q-pa-md"): + with ui.card().classes("w-full q-pa-md"): ui.label("Document").classes("text-subtitle1 text-weight-medium") - ui.separator().classes("q-my-sm bg-blue-grey-7") + ui.separator().classes("q-my-sm") with ui.column().classes("w-full q-gutter-y-xs"): _metadata_row("Filename", document.filename) _metadata_row("File path", document.file_path) - ui.separator().classes("q-my-md bg-blue-grey-7") + ui.separator().classes("q-my-md") render_document_panzoom(document=document) def _render_transcript_section(transcripts: Sequence[Transcript]) -> None: - with ui.card().classes("w-full bg-blue-grey-10 text-grey-1 q-pa-md"): + with ui.card().classes("w-full q-pa-md"): ui.label("Transcripts").classes("text-subtitle1 text-weight-medium") - ui.separator().classes("q-my-sm bg-blue-grey-7") + ui.separator().classes("q-my-sm") if not transcripts: ui.label("Transcript history is not available yet.").classes("text-body2 text-grey-3") @@ -59,11 +62,11 @@ def _render_transcript_section(transcripts: Sequence[Transcript]) -> None: _metadata_row("Created", transcript.created_at.isoformat()) if transcript.text: - ui.separator().classes("q-my-sm bg-blue-grey-7") - with ui.card().classes("w-full bg-blue-grey-9 text-grey-1 q-pa-sm"): + ui.separator().classes("q-my-sm") + with ui.card().classes("w-fullq-pa-sm"): ui.markdown(transcript.text).classes("text-grey-1") elif transcript.error_detail: - ui.separator().classes("q-my-sm bg-blue-grey-7") + ui.separator().classes("q-my-sm") with ui.card().classes("w-full bg-red-1 text-red-10 q-pa-sm"): ui.label("Failure detail").classes("text-caption text-uppercase") ui.label(transcript.error_detail).classes("text-body2") @@ -73,9 +76,10 @@ def _render_transcript_section(transcripts: Sequence[Transcript]) -> None: def render_job_detail(*, job: Job, document: Document | None, transcripts: Sequence[Transcript]) -> None: """Render all sections for the job detail page.""" + logger.debug("Rendering job detail for job ID %s with %d transcripts", job.id, len(transcripts)) status_text = job.status.value with ui.column().classes("w-full max-w-4xl q-gutter-md"): - with ui.card().classes("w-full bg-blue-grey-10 text-grey-1 q-pa-lg"): + with ui.card().classes("w-full q-pa-lg"): with ui.row().classes("w-full items-center justify-between q-gutter-md"): with ui.column().classes("q-gutter-none"): ui.label("Job overview").classes("text-h6 text-weight-bold") diff --git a/src/transcription/ui/pages/jobs_page.py b/src/transcription/ui/pages/jobs_page.py index 4227b2f..ba8af5b 100644 --- a/src/transcription/ui/pages/jobs_page.py +++ b/src/transcription/ui/pages/jobs_page.py @@ -67,5 +67,3 @@ def register_page() -> None: transcripts = list(await transcription_service.list_transcripts_by_job(parsed_id)) render_job_detail(job=job, document=job.document, transcripts=transcripts) - - ui.link("Back to jobs", "/jobs")