Wiring view: every machine and what connects it (Companion, MIDI, Dante, watchdog, web, Art-Net), hide types or single links, scripts per computer
RESI LIVE NOT REC follows the Resi auto-record service (custom autorec_status, not during its REC hold; stale heartbeat = no verdict); INGEST watches AUTO REC (running, heartbeat, Resi reachable), hold restarts it. Probes list each computer's scripts by file name only. HyperDeck addresses read from bonjourHost. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -153,3 +153,35 @@ details.script textarea { width: 100%; font-size: .8rem; }
|
||||
.onoff.on span { background: #1f8f4e; color: #fff; }
|
||||
.onoff input:disabled + span { opacity: .75; cursor: default; }
|
||||
tr.off td, .trig.off, .key.off { opacity: .55; }
|
||||
|
||||
/* Wiring: the diagram and the panel beside it (one column on a phone) */
|
||||
.wire { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 12px; align-items: start; }
|
||||
@media (max-width: 900px) { .wire { grid-template-columns: minmax(0, 1fr); } }
|
||||
.wirecanvas { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; touch-action: none; }
|
||||
.wzoom { position: absolute; top: 8px; left: 8px; display: flex; gap: 4px; z-index: 1; } .wzoom button { min-width: 30px; justify-content: center; }
|
||||
.wirecanvas svg.canvas { cursor: move; }
|
||||
.wirecanvas svg.canvas { width: 100%; height: calc(100vh - 175px); min-height: 420px; display: block; fill: none; stroke: none; stroke-width: 1; user-select: none; -webkit-user-select: none; }
|
||||
.wedge { fill: none; stroke-width: 2.2; opacity: .85; cursor: pointer; }
|
||||
.wedge:hover, .wedge.sel { stroke-width: 4.5; opacity: 1; }
|
||||
.wedge.unknown { stroke-dasharray: 5 5; } .wedge.not_needed { opacity: .3; }
|
||||
.wedge.problem { stroke-width: 3.4; stroke-dasharray: 9 5; animation: wflow 1s linear infinite; }
|
||||
@keyframes wflow { to { stroke-dashoffset: -14; } }
|
||||
.wedge.dim, .wnode.dim { opacity: .12; }
|
||||
.wnode { cursor: grab; } .wnode:active { cursor: grabbing; }
|
||||
.wnode rect { fill: var(--surface); stroke: var(--line); stroke-width: 1.5; }
|
||||
.wnode.computer rect { stroke: var(--fg); stroke-width: 1.8; }
|
||||
.wnode.switch rect { fill: var(--bg); }
|
||||
.wnode.problem rect { stroke: var(--problem); stroke-width: 2.5; }
|
||||
.wnode.sel rect { stroke: var(--accent); stroke-width: 3.5; }
|
||||
.wnode text { fill: var(--fg); font: 600 13px var(--font); stroke: none; }
|
||||
.wnode:not(.computer) text { font-weight: 500; font-size: 12px; }
|
||||
.wnode text.wsub { fill: var(--muted); font: 11px var(--font); }
|
||||
.wnode .wdot { fill: var(--unknown); stroke: none; }
|
||||
.wnode.ok .wdot { fill: var(--ok); } .wnode.problem .wdot { fill: var(--problem); } .wnode.not_needed .wdot { fill: var(--none); }
|
||||
.wtype i, .wsw { display: inline-block; width: 12px; height: 4px; border-radius: 2px; margin-right: 2px; vertical-align: middle; }
|
||||
.wtype.off { opacity: .45; text-decoration: line-through; } .wtype.on { border-color: var(--line); }
|
||||
.wireside { position: sticky; top: 70px; max-height: calc(100vh - 90px); overflow: auto; margin: 0; }
|
||||
.wireside h2 { margin: 4px 0 6px; font-size: 1.1rem; } .wireside h3 { margin: 14px 0 4px; font-size: .95rem; }
|
||||
.wlist { list-style: none; margin: 0; padding: 0; } .wlist li { padding: 3px 0; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
|
||||
.wrow { display: flex; gap: 6px; align-items: center; cursor: pointer; } .wtyp { margin: 8px 0 2px; }
|
||||
main:has(.wire) { max-width: none; }
|
||||
|
||||
Reference in New Issue
Block a user