{% extends "admin/_base.html" %}
{% block content %}
<nav class="rio-crumbs"><a href="/admin">Home</a><span class="rio-crumb-sep">·</span><span class="rio-crumb-current">{{ index_title }}</span></nav>
<div class="rio-masthead-top">
<div>
<h1>{{ index_title }}</h1>
<p class="rio-masthead-desc">Everything rustio generated for {{ app_name }} — your models, rows, and recent activity, in one console.</p>
</div>
<div class="rio-masthead-cta">
{% if identity.is_admin %}
<a class="rio-btn rio-btn--secondary rio-btn--md" href="/admin/history">{{ icon("clock") }} Audit log</a>
{% endif %}
<a class="rio-btn rio-btn--primary rio-btn--md" href="/admin/docs">Docs</a>
</div>
</div>
{# ---- Editorial ledger ---- #}
<div class="rio-ledger rio-dash-ledger" aria-label="At a glance">
<div class="rio-ledger-item"><span class="rio-ledger-num">{{ total_models }}</span><span class="rio-ledger-label">Models</span></div>
<div class="rio-ledger-item"><span class="rio-ledger-num">{{ total_rows }}</span><span class="rio-ledger-label">Total rows</span></div>
<div class="rio-ledger-item"><span class="rio-ledger-num">{{ recent_actions_count }}</span><span class="rio-ledger-label">Recent events</span></div>
<div class="rio-ledger-item rio-ledger-item--accent"><span class="rio-ledger-num rio-ledger-num--ver">v{{ framework_version }}</span><span class="rio-ledger-label">{{ environment_label }}</span></div>
</div>
{# ---- Browse data board ---- #}
{% if apps %}
<div class="rio-board">
<table class="rio-dtable">
<thead><tr><th>Model</th><th class="col-fields">Fields</th><th class="col-rows">Rows</th><th class="col-browse"> </th></tr></thead>
<tbody>
{% for app in apps %}{% for model in app.models %}
<tr>
<td>
<div class="rio-prod">
<span class="rio-mono-tile">{{ model.display_name | first | upper }}</span>
<span class="rio-prod-text">
<a class="rio-prod-name" href="/admin/{{ model.admin_name }}">{{ model.display_name }}</a>
<span class="rio-prod-cat">{{ app.label }}</span>
</span>
</div>
</td>
<td class="col-fields">{{ model.field_count }} field{% if model.field_count != 1 %}s{% endif %}</td>
<td class="col-rows"><span class="rio-rownum">{{ model.row_estimate }}</span></td>
<td class="col-browse">
<a class="rio-action-link" href="/admin/{{ model.admin_name }}">{{ icon("table") }} Browse</a>
{% if not read_only %}<a class="rio-action-link rio-action-link--muted" href="/admin/{{ model.admin_name }}/new">{{ icon("plus") }} Add</a>{% endif %}
</td>
</tr>
{% endfor %}{% endfor %}
</tbody>
</table>
<div class="rio-board-foot">
<span style="font-size:var(--rio-text-13);color:var(--rio-text-mute)">Showing <strong style="color:var(--rio-text-hi);font-weight:600">{{ total_models }}</strong> model{% if total_models != 1 %}s{% endif %} · <strong style="color:var(--rio-text-hi);font-weight:600">{{ total_rows }}</strong> row{% if total_rows != 1 %}s{% endif %} total</span>
</div>
</div>
{% else %}
<div class="rio-board" style="padding:48px 24px;text-align:center">
<div class="rio-empty">
{{ icon("database") }}
<div class="rio-empty-title">No models registered yet</div>
<div>Run <code>rustio-admin startapp <name></code> to scaffold a model, then register it on <code>Admin::new()</code>. It appears here on the next boot.</div>
</div>
</div>
{% endif %}
{% endblock %}