{% comment %} One row of the series table. A partial rather than an inline loop so that a row has one renderer wherever it is built. Its channel cells are a partial of their own, `_slot_cells.html`, because the server re-renders those on their own when a row is moved to another (session, image type) pair. A row *starts* drawn -- building one is the request to draw it, and a table of rows drawing nothing says little. Clicking still toggles it, which is how a plot built from several rows is cycled through: this channel against that one, this night against the next, without taking the rows apart to do it. One still missing a channel names no data, so it draws nothing until it is bound whatever its toggle says. Takes one context variable, `diagnostic`, as `make_series` builds it. {% endcomment %} {% comment %} A copy of this row, and away with it. The copy is what makes a second series quick to build: the next one usually differs from this one in a single thing, so copying leaves only that to change. Removing loses nothing that `+` and the dropdowns cannot build again, which is why it needs no confirming. {% endcomment %} {% comment %} Session and image type as one dropdown, since the pair is the unit everything here is counted by: a separate type dropdown would have to rebuild its options whenever the session changed. {% endcomment %} {% comment %} Read-only, and what puts the rows in chronological order when the labels are in no order at all. {% endcomment %} {{ diagnostic.start }} {{ diagnostic.end }} {% include "diagnostics/_slot_cells.html" %} {{ diagnostic.count }}