rustio-admin 0.7.0

Django Admin, but for Rust. A small, focused admin framework.
Documentation
{% extends "admin/_base.html" %}
{% block content %}
<div class="rio-form-shell">

<header class="rio-page-header">
  <nav class="rio-breadcrumbs">
    <a href="/admin">Home</a> ·
    <a href="/admin/{{ admin_name }}">{{ display_name }}</a> ·
    <span>{% if mode == "new" %}Add {{ singular_name }}{% else %}#{{ object_id }}{% endif %}</span>
  </nav>
  <h1>{% if mode == "new" %}Add {{ singular_name }}{% else %}Change {{ singular_name }} #{{ object_id }}{% endif %}</h1>
</header>

{% if errors %}
<div class="rio-flash rio-flash--error" role="alert">
  <strong>Please correct the errors below:</strong>
  <ul>{% for e in errors %}<li>{{ e }}</li>{% endfor %}</ul>
</div>
{% endif %}

<form method="post" action="{% if mode == 'new' %}/admin/{{ admin_name }}/new{% else %}/admin/{{ admin_name }}/{{ object_id }}/edit{% endif %}" class="rio-form">
  <input type="hidden" name="_csrf" value="{{ csrf_token }}">
  {% for section in sections %}
  <fieldset class="rio-fieldset">
    {% if section.title %}<legend>{{ section.title }}</legend>{% endif %}
    <div class="rio-fieldset-grid">
      {% for field in section.fields %}{% include "admin/includes/_form_field.html" %}{% endfor %}
    </div>
  </fieldset>
  {% endfor %}

  {# Primary save buttons stay left; secondary (History) and
   # destructive (Delete) + Cancel are pushed right by the spacer.
   # On wrap (narrow viewports) the whole row stacks naturally. #}
  <div class="rio-form-actions">
    <button type="submit" name="_save" class="rio-button rio-button--primary">Save</button>
    <button type="submit" name="_continue" class="rio-button">Save and continue editing</button>
    <button type="submit" name="_addanother" class="rio-button">Save and add another</button>
    <span class="rio-form-actions-spacer" aria-hidden="true"></span>
    {% if mode == "edit" %}
    <a href="/admin/{{ admin_name }}/{{ object_id }}/history" class="rio-button rio-button--ghost">{{ icon("clock", class="rio-icon") }} History</a>
    <a href="/admin/{{ admin_name }}/{{ object_id }}/delete" class="rio-button rio-button--danger-ghost">{{ icon("trash", class="rio-icon") }} Delete</a>
    {% endif %}
    <a href="/admin/{{ admin_name }}" class="rio-button rio-button--ghost">Cancel</a>
  </div>
</form>

</div>
{% endblock %}