acme-proxy-admin 0.6.0

The operation layer and web admin panel of acme-proxy (internal crate, no semver promise)
Documentation
{#- The swap target of the EAB list: the table and its pager, so a page step
    replaces exactly this and nothing else -- `accounts/_table.html`'s shape.

    `oob` is set only by `_created.html`, which returns this table alongside the
    new credential so the list refreshes without a reload. The attribute has to
    sit on this element rather than on a wrapper, because htmx matches an
    out-of-band swap by the id of the element carrying it. That response always
    renders the *first* page, which is where `Eab::search`'s newest-first
    ordering puts a credential minted a moment ago. -#}
<div id="eab-table" {% if oob %}hx-swap-oob="true"{% endif %}>
  <div class="panel table-scroll">
    <table>
      <thead>
        <tr>
          <th>Key ID</th>
          <th>Label</th>
          <th>Profile</th>
          <th>Status</th>
          <th>Created</th>
        </tr>
      </thead>
      <tbody>
        {% for eab in page.items %}
          <tr>
            <td class="id-cell"><a href="/ui/eab/{{ eab.kid }}" title="{{ eab.kid }}"><code>{{ eab.kid }}</code></a></td>
            <td>
              {%- if eab.label -%}
                {{ eab.label }}
              {%- else -%}
                <span class="muted">—</span>
              {%- endif -%}
            </td>
            <td>
              {%- if eab.profile -%}
                <code>{{ eab.profile }}</code>
              {%- else -%}
                <span class="muted">every profile</span>
              {%- endif -%}
            </td>
            <td><span class="badge {{ eab.status }}">{{ eab.status }}</span></td>
            <td class="small"><time datetime="{{ eab.createdAt }}">{{ eab.createdAt }}</time><br><span class="muted">{{ eab.createdAt | ago }}</span></td>
          </tr>
        {% else %}
          <tr><td class="empty" colspan="5">No EAB credential has been minted.</td></tr>
        {% endfor %}
      </tbody>
    </table>
  </div>
  {% include "partials/_pager.html" %}
</div>