{% extends "base.html" %} {% from "fragments/export_menu.html" import export_menu %} {% block title %}Voxint — {{ media_label }}{% endblock %} {% block cb_breadcrumb %}media / {{ media_label|lower|replace(" ", "-") }}{% endblock %} {% block cb_summary %} {%- if selected_run -%} {{ selected_run.status }} {%- else -%} no runs {%- endif -%} {% endblock %} {% block body %} {# Media detail page with the editor island (Console 2.0 P3a/P3b, issues #156/#157). Renders run metadata, a run chooser, and (when a completed run is selected) the media-editor island with a server-rendered transcript table as JS-off fallback. Layout: the media/runs metadata sits in an inline bar above the editor. The island's own .me-layout grid handles the transcript + speaker-rail split; it is NOT nested inside .lib-two-col (that double-nesting caused the rail to collapse at desktop widths, see #370). #}
{% if selected_run and island_props %} {# Media editor island (#157). The server-rendered table inside is the JS-off / hydration-failure fallback. #}Read-only view. Claim this run to edit.
{% endif %}| Time | Speaker | Text |
|---|---|---|
| {{ "%.1f"|format(seg.start) }}s | {{ seg.speaker or "—" }} | {{ seg.text }} |
Run {{ selected_run.id.hex[:8] }} is
{{ selected_run.status }}. The transcript will be
available once the run completes.
No completed runs yet. Select a run above to view its status.
{% else %}No runs for this media file yet.
{% endif %}