rustio-admin 0.21.1

Django Admin, but for Rust. A small, focused admin framework.
Documentation
{% extends "admin/_base.html" %}
{% from "admin/_row_actions.html" import row_actions %}
{% block content %}
<header class="rio-page-header">
  <nav class="rio-breadcrumbs"><a href="/admin">Home</a> · <span>Groups</span></nav>
  <div class="rio-page-actions">
    <h1>Groups</h1>
    <a class="rio-button rio-button--primary" href="/admin/groups/new">{{ icon("plus", class="rio-icon") }} Add group</a>
  </div>
  <p class="rio-page-header__lead">Bundle permissions into reusable groups; assign groups to users.</p>
</header>

<section class="rio-section" aria-label="Groups">
  <header class="rio-section__header">
    <div class="rio-section__heading">
      <span class="rio-section__label">All groups</span>
      <h2 class="rio-section__title">{{ groups|length }} group{% if groups|length != 1 %}s{% endif %}</h2>
    </div>
  </header>
  <div class="rio-card rio-card--quiet rio-list">
    {% if groups %}
    <table class="rio-table rio-table--striped">
      <thead>
        <tr>
          <th class="rio-th">ID</th>
          <th class="rio-th">Name</th>
          <th class="rio-th">Description</th>
          <th class="rio-th rio-th--actions">Actions</th>
        </tr>
      </thead>
      <tbody>
        {% for g in groups %}
        <tr>
          <td class="rio-td rio-td--number">{{ g.id }}</td>
          <td class="rio-td rio-td--text"><a href="/admin/groups/{{ g.id }}/edit">{{ g.name }}</a></td>
          <td class="rio-td rio-td--text" title="{{ g.description }}">{{ g.description }}</td>
          <td class="rio-td rio-td--actions">{{ row_actions("groups", g.id) }}</td>
        </tr>
        {% endfor %}
      </tbody>
    </table>
    {% else %}
    <div class="rio-empty-state">
      <div class="rio-empty-state__icon">{{ icon("key", class="rio-icon") }}</div>
      <h3 class="rio-empty-state__title">No groups yet</h3>
      <p class="rio-empty-state__lead">
        Create a group to bundle permissions — then assign the
        group to users instead of granting permissions one by one.
      </p>
      <a class="rio-button rio-button--primary" href="/admin/groups/new">{{ icon("plus", class="rio-icon") }} Add group</a>
    </div>
    {% endif %}
  </div>
</section>
{% endblock %}