{% from '_series.html' import readings_table %} {% set page_title = 'History' %} {% include '_header.html' %}
{#- The periods keep the measure they had; the readings beneath take the page's width (ADR-0102 decision 1). -#}
{#- The same title and tabs as the node's other views (ADR-0097 decision 3): the breadcrumb's crumbs open their History pages, and the Status tab is the way back. -#} {% include '_page_band.html' %} {#- A path the tree holds no node at is answered with a page of its own (ADR-0116), so there is a node here. -#} {%- if node is not none %} {#- A long reason beside two times kept on one line is wider than a phone: the table scrolls sideways in this box, as the Events table does in its own, and the page does not. -#}
{% for p in periods %} {#- A period is a run of events that show one status (ADR-0099 decision 6), so an edited pin is one row. Where its instant is a bound the period began before it: a first reading, which found the node as it was (decision 9), and a beginning lost before the tree kept it (decision 1). -#} {#- The first row is the period that still holds — unless the node stopped declaring and that one is no row (below) — and it has no end yet: its *until* is the latest reading, which the Status tab states as when it was last observed (ADR-0099 decision 2). -#} {% else %} {#- The tree has no period for the node (ADR-0102 decision 3). One that declares nothing of its own says so; one nothing is kept of has no period yet. A node a check has written is never here: the period that holds is a row above, also where the log no longer holds the row that began it. -#} {%- if declares_nothing %} {%- else %} {%- endif %} {% endfor %}
StatusSinceUntilReason
{{ p.code.name.lower() }}{% if p.before %}before {% endif %}{{ p.since | localtime }}{% if loop.first and not declares_nothing_since %}current{% else %}{{ p.until | localtime }}{% endif %} {{ p.reason | join('; ') | markdown_inline }}
Declares nothing of its own{% if declares_nothing_since %} since {{ declares_nothing_since | localtime }}{% endif %}: its page heads with what its children roll up to.
No status changes recorded.
{#- A node that declares nothing above nodes that report has no own status for a period to name (ADR-0094 decision 5, the Time card's rule): the table ends where it stopped declaring, and this says so. -#} {%- if declares_nothing_since and periods %}

Declares nothing of its own since {{ declares_nothing_since | localtime }}: its page heads with what its children roll up to.

{%- endif %} {%- endif %}
{#- Every reading kept by each check mounted on the node — both checks of a mount they share — beneath its status periods and in the same table the Series view shows the newest of (ADR-0097 decision 1): this page is not polled, so it carries them all, and no curve. -#} {%- for view in readings %}

Readings{% if readings | length > 1 %} · {{ view.title }}{% endif %}

All {{ view.kept }} {{ "reading" if view.kept == 1 else "readings" }} kept of {{ view.subject }}, newest first.

{{ readings_table(view) }} {%- endfor %}
{% include '_page_end.html' %}