A change Steward can't see happen (a config edited, a disk swapped) is recorded by whoever made it: what was done, its area, when (in the reader's own zone), the hosts, what it was done to and a detail. Its author or an admin edits or deletes it; recording, editing and deleting are audited and those audit rows stay off the timeline. log_change records one as "<user> via MCP", editable by the token's user. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
1.0 KiB
HTML
22 lines
1.0 KiB
HTML
{# timeline/_rows.html — one page of the timeline's rows, then the sentinel
|
|
that loads the next page as the reader nears it (core.paging). A divider
|
|
row opens each recency group: Today, Yesterday, Last 7 days, Older. #}
|
|
{% from "_macros.html" import scroll_more, scroll_end %}
|
|
{% from "timeline/_entry.html" import entry_what, entry_where %}
|
|
{% for item in items %}
|
|
{% set e = item.entry %}
|
|
{% if item.opens_group %}<tr class="table-divider"><th colspan="5" scope="rowgroup">{{ item.group }}</th></tr>{% endif %}
|
|
<tr>
|
|
<td class="nowrap">{{ e.at|when }}</td>
|
|
<td>{{ entry_what(item, back) }}</td>
|
|
<td>{{ entry_where(e) }}</td>
|
|
<td class="nowrap">{{ e.actor }}</td>
|
|
<td class="nowrap"><span class="chip">{{ item.area_label }}</span></td>
|
|
</tr>
|
|
{% endfor %}
|
|
{% if after %}
|
|
{{ scroll_more("/timeline/?before=" ~ (after|urlencode) ~ "&" ~ (keep|urlencode) ~ "&group=" ~ (last_group|urlencode), cols=5) }}
|
|
{% else %}
|
|
{{ scroll_end(cols=5) }}
|
|
{% endif %}
|