diff --git a/trailer.html b/trailer.html index a8f16b9..69d19e0 100644 --- a/trailer.html +++ b/trailer.html @@ -92,6 +92,12 @@ .chk{font-size:12px;border-radius:999px;padding:1px 8px;border:1px solid var(--line);color:var(--muted)} .chk.ok{color:var(--accent2);border-color:var(--accent2)} .chk.bad{color:#e0685f;border-color:#e0685f} + .eyes{margin:8px 0 0;font-size:12.5px} + .eyes .f{margin:4px 0;padding-left:10px;border-left:2px solid var(--line)} + .eyes .f.serious{border-left-color:#e0685f} + .eyes .f b{color:var(--ink)} + .eyes .fix{color:var(--muted);display:block;margin-top:1px} + .eyes .sum{color:var(--muted);font-style:italic;margin-bottom:5px} .ins{border-top:1px dashed var(--line);text-align:center;padding:6px 0} .ins button{font-size:12px;padding:4px 12px;color:var(--muted)} .rough{width:100%;box-sizing:border-box;margin-top:8px;font:inherit;font-size:13px; @@ -754,6 +760,23 @@ + '">+ Add a scene ' + (after === "start" ? "at the start" : "after " + esc(after)) + ''; } + // The faults themselves, with the prompt change that would prevent each - + // which is the half that makes the check actionable rather than a verdict. + function faultsHtml(s) { + var vc = s.vision_check; + if (!vc || !(vc.faults || []).length) return ""; + return '
' + + (vc.summary ? '
' + esc(vc.summary) + '
' : '') + + vc.faults.map(function (f) { + return '
' + esc(f.kind || "") + '' + + (f.at != null ? ' at ' + Number(f.at).toFixed(1) + 's' : '') + + ' · ' + esc(f.what || "") + + (f.prompt_fix ? 'fix: ' + esc(f.prompt_fix) + + '' : '') + '
'; + }).join("") + '
'; + } + function shotHtml(s, voice) { if (s.writing) { return '
' + esc(s.id) + '
' @@ -799,6 +822,21 @@ + ''; } + // What the eyes found, if they have looked. Kinds: render (the picture is + // broken), continuity (the frames disagree), script (wrong shot, well made). + var vc = s.vision_check || null; + var eyeHtml = ""; + if (vc && vc.verdict) { + var bad = vc.verdict === "broken"; + var faults = vc.faults || []; + eyeHtml = 'picture ' + esc(vc.verdict) + + (faults.length ? ' · ' + faults.length + ' fault' + + (faults.length === 1 ? '' : 's') : '') + + (vc.people_on_screen != null ? ' · ' + vc.people_on_screen + + ' on screen' : '') + ''; + } + var tools; if (s.drawing) tools = 'drawing…'; else if (s.filming) tools = 'filming…'; @@ -814,7 +852,7 @@ + (s.opening_url ? 'Redraw' : 'Draw') + ' · $0.14' + (s.opening_url ? '' : '') - + chkHtml + + chkHtml + eyeHtml + ''; } @@ -830,6 +868,7 @@ + (s.camera ? '

camera: ' + esc(s.camera) + '

' : '') + (s.continuity ? '

continuity: ' + esc(s.continuity) + '

' : '') + lines + + faultsHtml(s) + '
' + tools + '
' + '