FeedsController
Inherits Ktistec::ViewHelper < Utils::Paths < Ktistec::Controller < Reference < Object
The FeedsController manages the lifecycle of feeds and their
associated content windows (previews).
┌───────┐──┐ preview:
┌─── preview: ────────▶ │ draft │◀─┘ update feed; │ create feed; └───────┘ recompute window │ recompute window │ ▲ │ │ │ │ publish: │ │ preview [1]: │ adopt window; │ │ create a draft feed; [NEW] register feed; │ │ recompute window; │ unregister and │ │ keep the original │ destroy original │ │ │ │ │ │ ▼ │ │ ┌───────────┐──┐ publish [2]: └─ publish: ──────▶ │ published │◀─┘ create a draft feed; create feed; └───────────┘ seed it with content; register feed publish and register it; unregister and destroy the original
[1] A published feed is never demoted to a draft feed. Instead, a
new draft feed is created (recording the original in copy_of)
and the original published feed is left unchanged until the draft
feed is published.
[2] A published feed is never mutated. Instead, a new published feed
is created and the original published feed is unregistered and
destroyed.
Publishing is not atomic: it saves, seeds, publishes, registers, and destroys the original as separate steps.
Deleting a feed in any state unregisters and destroys it.