Per-tool pages + multi-engine transcribe with expert controls
- Split monolithic index.php into per-tool pages (ask, search, summarize, timeline, redact, transcribe), each with its own URL and bookmarkable state - Shared shell: includes/layout.php + layout_footer.php; shared form: includes/tool_form.php used by all text-tool pages - index.php now redirects authenticated users to ask.php; unauthenticated users see the login gate only - transcribe.php: engine selector (GPU/OpenAI/Azure), model size (small/ medium/large-v3), diarize, language, expert settings (beam, VAD, task, initial prompt) - api/transcribe.php: engine routing — GPU (cuttlefish), OpenAI BYOK, Azure AI Speech; passes model/beam/task/vad/prompt to Whisper server - tools.js: data-active-tool body attr drives setTool() on load; <a> nav tabs skip click listeners; null guards on form/passcodeForm; engine radio toggle shows/hides BYOK key inputs and model selector; RTF shown in status - tools.css: styles for BYOK inputs, expert settings panel, prompt textarea Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1218,3 +1218,74 @@ p {
|
||||
gap: 0.5rem;
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
|
||||
/* ── Transcribe extended controls ─────────────────────────────────────── */
|
||||
|
||||
.byok-input {
|
||||
font-size: 0.82rem;
|
||||
padding: 0.3rem 0.6rem;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 6px;
|
||||
background: var(--bg);
|
||||
color: var(--ink);
|
||||
width: 22rem;
|
||||
max-width: 100%;
|
||||
}
|
||||
.byok-input--short { width: 9rem; }
|
||||
.byok-input:focus { outline: 2px solid var(--teal); outline-offset: 1px; }
|
||||
|
||||
.inline-hint {
|
||||
font-size: 0.75rem;
|
||||
color: var(--muted);
|
||||
margin-left: 0.4rem;
|
||||
}
|
||||
|
||||
.expert-settings {
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 8px;
|
||||
padding: 0;
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
.expert-summary {
|
||||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
color: var(--muted);
|
||||
cursor: pointer;
|
||||
padding: 0.55rem 0.9rem;
|
||||
list-style: none;
|
||||
user-select: none;
|
||||
}
|
||||
.expert-summary::-webkit-details-marker { display: none; }
|
||||
.expert-summary::before {
|
||||
content: '▶ ';
|
||||
font-size: 0.65rem;
|
||||
transition: transform 0.15s;
|
||||
}
|
||||
.expert-settings[open] .expert-summary::before { content: '▼ '; }
|
||||
.expert-body {
|
||||
padding: 0.6rem 0.9rem 0.9rem;
|
||||
border-top: 1px solid var(--line);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
.expert-field {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
margin-top: 0.4rem;
|
||||
}
|
||||
.prompt-textarea {
|
||||
font-size: 0.82rem;
|
||||
padding: 0.4rem 0.6rem;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 6px;
|
||||
background: var(--bg);
|
||||
color: var(--ink);
|
||||
resize: vertical;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.prompt-textarea:focus { outline: 2px solid var(--teal); outline-offset: 1px; }
|
||||
|
||||
.control-hint { font-size: 0.74rem; color: var(--muted); font-weight: 400; }
|
||||
|
||||
Reference in New Issue
Block a user