{% from '_window_bar.html' import window_bar %} {% set page_title = 'Events' %} {% include '_header.html' %}

Events

{#- What the log shows is what the URL names (ADR-0101): a node and everything beneath it, words in the reason, a switch per status an event moved to, one each for *reached* and *held back*, one per kind of cause, and the window the Series view reads, with its bar. The switches submit their form as they change (prefs.js, `data-ls-submit`); the fields submit on Enter; a browser without script has Apply. The form carries the window, and every link the bar draws carries the filters. Nothing remembers them: `/events` alone is the whole log. A log with nothing in it has nothing to filter, and says so below. -#} {%- if bar %} {%- set statuses_on = wanted.statuses or status_words %} {%- set held_on = [wanted.held] if wanted.held else held_words %} {%- set causes_on = wanted.causes or cause_words %}
{{ window_bar(bar) }}

{{ line }}

{%- if anything_set %} reset {%- endif %}
{%- endif %} {#- In a box that scrolls it sideways where its rows are wider than the page — on a phone — so the page itself is never wider than its screen. The box is what anything placed absolutely inside it is placed in, as on the Series index, and it carries the margin the table had: one kept inside a box that scrolls would stop collapsing with what follows. -#}
{#- A transition that did **not** reach anybody says which rule held it back (ADR-0032 rule 5: a transformed contribution names the rule that transformed it). These only exist since a pin stopped overwriting the reading — before, there was no transition under a pin to record — and they are the answer to *did it break during the window?* The row keeps the status color it would have had, because that is what it would have alarmed as; the chip is what says it did not. They are shown unless the *held back* switch is off: whether the log keeps them at all is retention's question (ADR-0101 decision 3). A row that a pin caused says so in a chip of its own (ADR-0107 decision 3) — *set*, *edited*, *maintenance ended* for the node's, *line silenced* and *line's maintenance ended* for a line's: a silenced line turns its node green, and that row is no recovery. A reading's row has none, and neither has one from a log written before an event said its cause. A removal's row says *removed* (ADR-0109 decision 5): the node left the tree, which is another thing than a check that read nothing. Its chip wears the ink of the nothing it moved to, not a pin's, and its path is no link: there is no page to open. The row that ends a wait says *reached* (ADR-0119 decision 3). Its node has shown the status since the row the wait held back, and this one is when the level above began to count it: the one row of a reading that changes nothing its node shows. No pin wrote it either, so its chip wears the pair of the status the row shows. -#} {% for e in events %} {% else %} {#- Which empty it is (ADR-0101 decision 5): an empty log, a window the log holds nothing in, or filters that left nothing. -#} {% endfor %}
WhenStatusServiceReason
{{ e.timestamp | localtime }} {{ e.new.name.lower() }}{% if cause_chips.get(e.cause) %} {{ cause_chips[e.cause] }}{% endif %}{% if e.suppressed_by %} {{ e.suppressed_by }}{% endif %} {% if e.path in existing_paths %}{{ e.path }}{% else %}{{ e.path }}{% endif %} {{ e.reason | join('; ') | markdown_inline }}
{{ empty }}
{% include '_page_end.html' %}