#}
{% extends "mediagoblin/base.html" %}
+{% from "mediagoblin/utils/pagination.html" import render_pagination %}
+
{% block title -%}
{% trans %}Media processing panel{% endtrans %} — {{ super() }}
{%- endblock %}
<p>
{% trans %}You can track the state of media being processed for your gallery here.{% endtrans %}
</p>
-
-<h2>{% trans %}Media in-processing{% endtrans %}</h2>
-{% if processing_entries.count() %}
+<p>
+Show:
+<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel',
+ user=request.user.username) }}">All</a>,
+<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel',
+ user=request.user.username, state="processing") }}">In processing</a>,
+<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel',
+ user=request.user.username, state="failed") }}">Failed</a>,
+<a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel',
+ user=request.user.username, state="processed") }}">Successful</a>
+</p>
+
+{% if entries.count() %}
+ {{ render_pagination(request, pagination) }}
<table class="media_panel processing">
<tr>
- <th>ID</th>
+ <th width="210">Thumbnail</th>
<th>Title</th>
- <th>When submitted</th>
- <th>Transcoding progress</th>
+ <th width="20%">When submitted</th>
+ <th width="200">Transcoding progress</th>
</tr>
- {% for media_entry in processing_entries %}
+ {% for media_entry in entries %}
<tr>
- <td>{{ media_entry.id }}</td>
+ {% if media_entry.state == 'processed' %}
+ {% set entry_url = media_entry.url_for_self(request.urlgen) %}
+ <td>
+ <div class="thumb-wrapper">
+ <a href="{{ entry_url }}">
+ <img src="{{ media_entry.thumb_url }}" alt="{{ media_entry.title }}" />
+ </a>
+ </div>
+ </td>
+ <td><a href="{{ entry_url }}">{{ media_entry.title }}</a></td>
+ <td>{{ media_entry.created.strftime("%F %R") }}</td>
+ <td>Ready</td>
+ {% else %}
+ <td>
+ <div class="thumb-wrapper">
+ <img src="{{ media_entry.thumb_url }}" alt="{{ media_entry.title }}" />
+ {% if media_entry.state == 'processing' %}
+ <div class="thumb-overlay-status thumb-processing">Processing...</div>
+ {% elif media_entry.state == 'failed' %}
+ <div class="thumb-overlay-status thumb-failed">Failed!</div>
+ {% endif %}
+ </div>
+ </td>
<td>{{ media_entry.title }}</td>
<td>{{ media_entry.created.strftime("%F %R") }}</td>
{% if media_entry.transcoding_progress %}
{% else %}
<td>Unknown</td>
{% endif %}
+ {% endif %}
</tr>
{% endfor %}
</table>
+ {{ render_pagination(request, pagination) }}
{% else %}
- <p><em>{% trans %}No media in-processing{% endtrans %}</em></p>
+ <p><em>{% trans %}You have not uploaded anything yet!{% endtrans %}</em></p>
{% endif %}
-
-<h2>{% trans %}These uploads failed to process:{% endtrans %}</h2>
-{% if failed_entries.count() %}
-
- <table class="media_panel failed">
- <tr>
- <th>ID</th>
- <th>Title</th>
- <th>When submitted</th>
- <th>Reason for failure</th>
- <th>Failure metadata</th>
- </tr>
- {% for media_entry in failed_entries %}
- <tr>
- <td>{{ media_entry.id }}</td>
- <td>{{ media_entry.title }}</td>
- <td>{{ media_entry.created.strftime("%F %R") }}</td>
- {% if media_entry.get_fail_exception() %}
- <td>{{ media_entry.get_fail_exception().general_message }}</td>
- <td>{{ media_entry.fail_metadata }}</td>
- {% else %}
- <td> </td>
- <td> </td>
- {% endif %}
- </tr>
- {% endfor %}
- </table>
-{% else %}
- <p><em>{% trans %}No failed entries!{% endtrans %}</em></p>
-{% endif %}
-
-<h2>{% trans %}Your last 10 successful uploads{% endtrans %}</h2>
-{% if processed_entries.count() %}
-
- <table class="media_panel processed">
- <tr>
- <th>ID</th>
- <th>Title</th>
- <th>Submitted</th>
- </tr>
- {% for entry in processed_entries %}
- <tr>
- <td>{{ entry.id }}</td>
- <td><a href="{{ entry.url_for_self(request.urlgen) }}">{{ entry.title }}</a></td>
- <td>{{ entry.created.strftime("%F %R") }}</td>
- </tr>
- {% endfor %}
- </table>
-{% else %}
- <p><em>{% trans %}No processed entries, yet!{% endtrans %}</em></p>
-{% endif %}
{% endblock %}