Merge remote-tracking branch 'origin/main' into claude/overflow-tap-module
# Conflicts: # CLAUDE.md # README.md
This commit is contained in:
@@ -316,10 +316,15 @@ below. Nothing is installed without someone clicking.
|
||||
name, load a named layout (it becomes a local copy — browsers are never
|
||||
linked), or reset this browser's dashboard. Loading says what it did —
|
||||
*Loaded "FOH": 9 tiles, 2 not shown — Service, #ops aren't offered right
|
||||
now* — with **Undo** in the message to get back the arrangement you had.
|
||||
A tile whose module or picker entry isn't offered at the moment keeps its
|
||||
place and shows nothing, then appears when it is; it is never replaced by
|
||||
the module's default tile. Saving over an existing name asks first, and
|
||||
now; the Layouts menu can remove them* — with **Undo** in the message to
|
||||
get back the arrangement you had. A tile whose module or picker entry
|
||||
isn't offered at the moment keeps its place and shows nothing, then
|
||||
appears when it is; it is never replaced by the module's default tile.
|
||||
While any tile is in that state the same menu has a **Not shown** section
|
||||
listing each one with why — *not offered right now*, *module disabled*,
|
||||
*module not installed* — and a ✕ that removes it and frees its cells, for
|
||||
the tile that is not coming back (a module that stopped offering that
|
||||
kind of tile). Saving over an existing name asks first, and
|
||||
the server keeps the copy it replaced: **Restore previous** in Admin →
|
||||
Saved layouts swaps it back (and swapping again undoes that). The menu's
|
||||
**Grid Size** stepper sets how many columns this browser cuts the board into —
|
||||
@@ -537,11 +542,28 @@ below. Nothing is installed without someone clicking.
|
||||
A photo library fills it: point the module at a Google Drive folder shared
|
||||
"anyone with the link" (file name → person's name) or at a folder on the
|
||||
ProdDash machine, and photos added or removed there follow. **Edit** in the
|
||||
title bar opens that library — drag a photo onto a slot, drag between slots
|
||||
to swap, rename or clear. Planning Center is optional auto-fill on top, not
|
||||
the source of truth: **Sync** reads the upcoming plan's team members and
|
||||
drops each into the slot matching their position, filling only slots nobody
|
||||
placed by hand, so a guest pinned on Thursday survives Sunday's sync.
|
||||
title bar opens that library — the spots pinned on top, the photos (with a
|
||||
name search) scrolling below — drag a photo onto a slot (mouse, or press and
|
||||
hold on a touchscreen), drag between slots to swap, rename or clear.
|
||||
Dropping a photo onto the person already in a spot makes it *their* photo
|
||||
for that instrument (a nickname like "Rose" for Rosaliz counts): they keep
|
||||
their Planning Center name and spot, and every later Sync uses it whenever
|
||||
they are on that instrument.
|
||||
Planning Center is optional auto-fill on top, not the source of truth:
|
||||
**Sync** reads the upcoming plan's team members and places each one. A
|
||||
person whose Planning Center note names their mic ("Mix 8, VOX 5") goes to
|
||||
that slot — this is how the leader and vocalists, whose position is just
|
||||
"Vocalist", land on the right mic — and everyone else goes to the slot
|
||||
matching their position, one slot per person. Photos come from the library
|
||||
whenever it has one of them, and Planning Center's headshot only when it
|
||||
has none. Someone who plays more than one thing can have a photo per
|
||||
instrument, named `Name - Instrument` (`DJ - Drums.jpg`, `DJ - Vocals.jpg`;
|
||||
Vox/Vocals, Keys/Piano, Drums, Bass, Guitar/Electric/Acoustic, Leader), and
|
||||
a plain `DJ.jpg` for everything else: Sync uses the one for the spot they
|
||||
are in that week. A photo dropped onto someone is remembered for that
|
||||
instrument only. Anything placed or moved by
|
||||
hand for that plan stays put through later syncs; last week's people are
|
||||
replaced.
|
||||
Birthdays in the service week (Wednesday→Tuesday) bring a gold glow and
|
||||
raining confetti, and a Choir button adds the extra spot for the weeks there
|
||||
is one. Admin config: Planning Center credentials, service type and plan, the
|
||||
@@ -566,6 +588,36 @@ below. Nothing is installed without someone clicking.
|
||||
soon as it does) and **Marks** (how long a mark lives).
|
||||
Tile settings: campuses, card or list layout, and a **Show** group for the
|
||||
day, role, resi source, campuses fed, notes and the updated line.
|
||||
- **Vista Cues** — which Vista 3 cue lists are live, for a booth where
|
||||
nobody runs lighting and ProPresenter and the tracks rig fire Vista's cue
|
||||
lists over network MIDI. Vista sends no feedback of any kind (its OSC only
|
||||
takes commands), so the module listens instead: it joins the senders'
|
||||
network MIDI sessions as one more participant, the way Vista does, hears
|
||||
every note Vista hears, and turns each one into "Go on Walk-in", "Release
|
||||
Worship 1"… from the cue sheet pasted into admin. The tile shows the list
|
||||
fired last, large, with how long ago and who fired it; the other lists
|
||||
still live; the recent notes; and which senders are connected. What it
|
||||
shows is what Vista was *told*: if Vista is closed or someone works the
|
||||
desk by hand, the two can differ, and the title bar's eraser forgets every
|
||||
live list. Plain JavaScript (RTP-MIDI over UDP), no helper; on macOS it
|
||||
advertises itself over Bonjour so it shows up in Audio MIDI Setup's
|
||||
Directory. Admin config: up to three senders (a name, and the host and
|
||||
port of each machine's network session — ProPresenter, the tracks rig,
|
||||
Companion; ProdDash keeps inviting itself in, so each session's "Who may
|
||||
connect to me" must be Anyone, or connect from the sender's Directory
|
||||
instead), the cue sheet (one line per note: `0 = Pre Service`,
|
||||
`61 release Walk-in`, `127 release all`, `30 flash Blinder Flash 1` for a
|
||||
momentary hit, also pause, back, note names, a channel, program changes),
|
||||
middle C naming, whether a Go releases the others, and a folded **This
|
||||
machine** group for the session name, port (UDP 5040 and 5041) and
|
||||
Bonjour. A sheet with no release notes uses groups: a line `[Color]`
|
||||
starts one, a Go in a group replaces that group's live list, and the
|
||||
first group is the tile's headline — so the tile reads "Message" with
|
||||
Color · Blue and House · House Lights Message beside it. A Go in that
|
||||
first group (the main scene) takes over the look and clears the rest, as
|
||||
Vista's last-takes-precedence does; FX fired after it layer on again
|
||||
(the **Main group takes over** switch). Tile settings: other lists,
|
||||
recent, senders, unmapped notes — text size is − / + in the title bar.
|
||||
- **Clock** — a big booth clock; also the smallest possible module and the
|
||||
reference for module authors.
|
||||
|
||||
@@ -582,6 +634,9 @@ run ProdDash with `SLACK_API_BASE=http://127.0.0.1:24716/api`) and
|
||||
`node tools/pco-band-mock.js 24710` (Planning Center for the Band Lineup
|
||||
board — a plan, its team members, birthdays and photos — run ProdDash with
|
||||
`BAND_LINEUP_API_BASE=http://127.0.0.1:24710`) and
|
||||
`node tools/vista-midi-mock.js 5104` (a network MIDI session playing a cue
|
||||
sheet's notes, as ProPresenter does for Vista — point Vista Cues' first
|
||||
sender at `127.0.0.1:5104` and paste the sheet it prints) and
|
||||
`node tools/overflow-tap-mock.js` (a ProPresenter whose slide notes carry
|
||||
keywords on `127.0.0.1:1602`, announcement layer included, plus the Overflow
|
||||
Dashboard API on `127.0.0.1:24720` — run ProdDash with
|
||||
|
||||
Reference in New Issue
Block a user