2.1 KiB · text History 94679c7
{% extends "root.html" %}

{% block inner %}
<div class="space-y-6 text-left">
  <div class="flex justify-between items-center mb-4">
    <h2 class="text-2xl font-bold text-accent">Failed jobs ({{ rows|length }})</h2>
    {% if rows %}
    <form method="post" action="/failed/retry" class="m-0">
      <button type="submit" class="btn btn-warning btn-sm">
        <i class="fas fa-rotate-right"></i> Retry all
      </button>
    </form>
    {% endif %}
  </div>

  {% if request and request.query.notice %}
  <div class="alert alert-success">
    <i class="fas fa-circle-check"></i>
    <span>{{ request.query.notice }}</span>
  </div>
  {% endif %}

  {% if not rows %}
  <div class="alert alert-info">
    <i class="fas fa-circle-info"></i>
    <span>Nothing to retry — no failed jobs.</span>
  </div>
  {% else %}
  <div class="overflow-x-auto">
    <table class="table table-zebra table-sm">
      <thead>
        <tr>
          <th>Upload</th>
          <th>Kind</th>
          <th>Attempts</th>
          <th>Error</th>
          <th>Last attempt</th>
          <th class="text-right">Actions</th>
        </tr>
      </thead>
      <tbody>
        {% for r in rows %}
        <tr>
          <td>
            <a href="/uploads/{{ r.upload_id }}" class="link link-hover font-mono text-xs">
              {{ r.file_name_original }}
            </a>
          </td>
          <td><span class="badge badge-ghost">{{ r.kind }}</span></td>
          <td>{{ r.attempts }}</td>
          <td class="font-mono text-xs max-w-md truncate" title="{{ r.error or '' }}">
            {{ r.error or '—' }}
          </td>
          <td class="font-mono text-xs">{{ r.updated_at }}</td>
          <td class="text-right">
            <form method="post"
                  action="/uploads/{{ r.upload_id }}/jobs/{{ r.kind }}/retry"
                  class="inline m-0">
              <button type="submit" class="btn btn-ghost btn-xs">
                <i class="fas fa-rotate-right"></i> Retry
              </button>
            </form>
          </td>
        </tr>
        {% endfor %}
      </tbody>
    </table>
  </div>
  {% endif %}
</div>
{% endblock %}