admin: redub is opt-in now, so the switch reads that way round

This commit is contained in:
gator 2026-09-10 14:00:41 +00:00
parent 58c8e92c3a
commit aed4812b7e

View file

@ -159,11 +159,13 @@ function projHtml(p) {
+ '</div>'
// Operator switch, for hearing the same script both ways. Not a customer
// control: the server refuses it to anyone without the admin role.
// Veo's own read ships. The conversion is opt in, kept for the one thing
// it still solves: a voice that holds across cuts.
+ '<div class="kv" style="margin-top:10px">redub on the next film: <b>'
+ (p.skip_redub ? 'OFF — Veo keeps its own voice' : 'on') + '</b> '
+ (p.redub_on ? 'ON — converted to the pet voice' : 'off — Veo keeps its own voice') + '</b> '
+ '<button type="button" class="btn" style="padding:4px 10px;font-size:12px;margin-left:8px" '
+ 'data-redub="' + esc(p.id) + '" data-want="' + (p.skip_redub ? '0' : '1') + '">'
+ (p.skip_redub ? 'Put the redub back on' : 'Film the next one without it')
+ 'data-redub="' + esc(p.id) + '" data-want="' + (p.redub_on ? '0' : '1') + '">'
+ (p.redub_on ? 'Keep Veo&rsquo;s own voice' : 'Redub the next one')
+ '</button></div>'
+ (p.owner_notes ? '<p class="kv" style="margin-top:10px"><b>notes</b> ' + esc(p.owner_notes) + '</p>' : '')
+ '</div></div>'
@ -243,7 +245,7 @@ async function load() {
b.textContent = "Saving...";
var res = await api("set_film_options", {
project_id: b.getAttribute("data-redub"),
skip_redub: b.getAttribute("data-want") === "1"
redub_on: b.getAttribute("data-want") === "1"
});
if (!res.ok) {
showMsg("msg", res.error || "Could not change that.");