Add a format dropdown that pins the set, framing and brief

This commit is contained in:
gator 2026-09-07 01:01:02 +00:00
parent 6fccc3eb3b
commit c4491ac8f1

View file

@ -39,11 +39,17 @@
<textarea id="notes" placeholder="Astro has hated our robot vacuum since day one and barks at it every time it docks. Play it like he is filing a formal grievance with management."></textarea>
</div>
<h2 class="sec" style="margin-top:34px">3 &middot; Where it happens</h2>
<h2 class="sec" style="margin-top:34px">3 &middot; What kind of video</h2>
<div class="field">
<label for="scene">The setting <span style="color:var(--muted);font-weight:400">(optional)</span></label>
<span class="hint">A starting point for every shot, which you can change shot by shot later. Real or not: a podcast booth, a field of tall grass, floating on a surfboard.</span>
<input type="text" id="scene" placeholder="a podcast booth with warm lamps behind">
<label for="format">Format</label>
<span class="hint">This decides the set, the framing and how it is written, before a word exists.</span>
<select id="format"><option value="podcast">Podcast episode</option></select>
</div>
<div class="field">
<label for="scene">Override the setting <span style="color:var(--muted);font-weight:400">(optional)</span></label>
<span class="hint">Leave blank to use the format's own set. Real or not: a field of tall grass, floating on a surfboard.</span>
<input type="text" id="scene" placeholder="">
<p class="foot" id="fmtscene" style="margin:8px 0 0;color:var(--muted)"></p>
</div>
<div class="field">
<label>Do they agree or disagree?</label>
@ -87,7 +93,24 @@
<script>
navBar("create");
var email = requireSession();
var stance = "auto", segments = 4, havePets = false;
var stance = "auto", segments = 4, havePets = false, FORMATS = [];
(async function loadFormats() {
var r = await api("camera_presets", {});
if (!r.ok || !r.formats) return;
FORMATS = r.formats;
var sel = document.getElementById("format");
sel.innerHTML = FORMATS.map(function (f) {
return '<option value="' + esc(f.id) + '">' + esc(f.label) + '</option>';
}).join("");
function showScene() {
var f = FORMATS.filter(function (x) { return x.id === sel.value; })[0];
document.getElementById("fmtscene").textContent =
f ? "Uses: " + f.scene : "";
}
sel.addEventListener("change", showScene);
showScene();
})();
function chipGroup(id, cb) {
var g = document.getElementById(id);
@ -148,6 +171,7 @@ document.getElementById("form").addEventListener("submit", async function (e) {
email: email, pet_id: petSel.value,
pet_name: opt ? opt.getAttribute("data-name") : "",
source_url: url, owner_notes: notes, scene: scene,
format: document.getElementById("format").value,
stance: stance, segments: segments
});
btn.disabled = false; btn.textContent = "Write the script";