Editing episodes
This is where producers manage the list of episodes on a multi-episode project. Episodes are presented as a table where rows can be edited in place, much like a spreadsheet.
What happens
Section titled “What happens”The producer opens the project, switches to the Episodes tab (or clicks “Manage episodes” from the save bar), and works through a table of episode rows. They can edit cells, add new rows, and save the lot.
What the user sees
Section titled “What the user sees”The episodes table
Section titled “The episodes table”A table with one row per episode and a Save bar at the bottom. The exact columns depend on your client config — every client sees the basic ones; CDN deployments also see Ofcom genre columns and CDN-specific broadcast columns.
Common columns (always shown):
| Column | Translation key |
|---|---|
| Episode number | Projects.columns.eps |
| Title | Projects.columns.title |
| Start date | Projects.columns.startDate |
| Delivery date | Projects.columns.deliveryDate |
| Slot length, release date, cast/crew counts | Projects.columns.* |
CDN-only columns (when your client config has Ofcom and CDN broadcast columns enabled):
- Ofcom genre
- Ofcom super-genre
- Commissioner genre
- CDN-specific broadcast fields
Save bar
Section titled “Save bar”| Button | Translation key |
|---|---|
| Save Episodes (label) | common.save (or section-specific key) |
| While saving | Projects.project-registration.saving |
| Success toast | Projects.success-update |
The Save button is disabled until at least one cell is edited.
Locked episodes
Section titled “Locked episodes”After a project’s delivery date passes (plus 30 days), episodes lock for editing. A lock icon appears in each cell of a locked row. The producer can still view the values but can’t change them.
Read-only mode
Section titled “Read-only mode”Some users (e.g. funders viewing a project they don’t own) see the table in read-only mode — no edit cursors, no Save bar. This is decided by the app based on permission.
What you can customise
Section titled “What you can customise”Translations
Section titled “Translations”All episode-related text lives under Projects.columns.* and Projects.project-registration.* in tep-configuration/translations/{locale}/main/projects.json. Override per client.
Which columns appear
Section titled “Which columns appear”Two client-config flags control optional columns:
showOfcomGenreColumns— shows the three Ofcom genre columnsshouldShowCdnEpisodeTableColumns— shows CDN-specific broadcast columns
These are typically set per client when the deployment is configured.
Field validation rules
Section titled “Field validation rules”Field validation comes from shared schemas in tep-configuration and the app’s bundled Zod schemas. The basics:
- Episode number is required and numeric
- Delivery date must be after start date
- Dates are in YYYY-MM-DD format (the UI handles the conversion from ISO datetimes)
Variations for your deployment
Section titled “Variations for your deployment”| Your deployment | What’s different |
|---|---|
| CDN | Ofcom genre + CDN broadcast columns appear |
| NZ, Omni, TEP | Common columns only |
The cast and crew count columns are read-only on every deployment — they reflect data populated from the Editing contributors flow.
Need more detail?
Section titled “Need more detail?”For the inline-editing pattern, optimistic cache updates, and the date-normalisation logic, see Editing episodes (engineering).