mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-11 18:33:53 +00:00
32734de679
Automations were already portable, contrary to the original framing: project download carries them and the partial load already had an "Automation Settings" toggle. What was missing is the other half of that loop. To share a set of automations you had to hand over an entire show. Save as template is the inverse of partial load: it writes a new project file holding only the sections you pick. Automations, custom fields, URL presets and view settings all become templates, and a template is an ordinary project file, so it downloads, uploads and partial loads with no new format and no new concepts. createProjectWithPatch already builds exactly the right object, but it routes through loadProject and would switch the running project. Saving a template must not pull an operator out of the show they are running, so this writes the file without loading it, the way duplicateProjectFile already does. The automations panel gets the loop as a Share menu: save these automations as a template, or go load one. The form says plainly that applying an automation template replaces rather than merges, since triggers and automations are coupled and safeMerge swaps the whole block, and that a template without rundowns does not carry the events that point at its automations. Adds the first e2e coverage automations have had. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LpbLJVVT26tzWkduck1M9H