| {% extends "base.html" %} | |
| {% block title %} | |
| {{ application_name }} Development Console - Tasks Viewer{% endblock %} | |
| {% block head %} | |
| <style type="text/css">{% include "css/pager.css" %}</style> | |
| <style type="text/css">{% include "css/tasks.css" %}</style> | |
| <script type="text/javascript"> | |
| {% include "js/webhook.js" %} | |
| var handleTaskResult = function(hook, req, error) { | |
| if (error != null) { | |
| return; | |
| }; | |
| if (req == null) { | |
| return; | |
| }; | |
| if (req.status != 200) { | |
| return; | |
| }; | |
| var parts = hook.formId.split('.');// + ['']; | |
| var deleteForm = document.getElementById('deleteform.' + parts[1]); | |
| if (deleteForm != null) { | |
| deleteForm.submit(); | |
| }; | |
| }; | |
| </script> | |
| {% endblock %} | |
| {% block breadcrumbs %} | |
| <span class="item"><a href="">Tasks Viewer</a></span> | |
| {% endblock %} | |
| {% block body %} | |
| <h3>Tasks for Queue: {{ queue_name|escape }}</h3> | |
| {% if tasks %} | |
| {% if is_push_queue %} | |
| <p> | |
| Push the 'Run' button to execute a task manually. | |
| </p> | |
| {% endif %} | |
| <table id="ah-tasks" class="ae-table ae-table-striped"> | |
| <thead> | |
| <tr> | |
| <th>Task Name</th> | |
| <th>ETA (UTC)</th> | |
| <th>Method</th> | |
| <th>URL</th> | |
| <th></th> | |
| <th></th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| {% for task in tasks %} | |
| <tr class="{% cycle ae-odd,ae-even %}"> | |
| <td valign="top"> | |
| {{ task.name|escape }} | |
| </td> | |
| <td valign="top"> | |
| <div>{{ task.eta|escape }}</div> | |
| <div>({{ task.eta_delta|escape }})</div> | |
| </td> | |
| <td valign="top"> | |
| {{ task.method|escape }} | |
| </td> | |
| <td valign="top"> | |
| {{ task.url|escape }} | |
| </td> | |
| <td valign="top"> | |
| {% if is_push_queue %} | |
| <form id="runform.{{ task.name|escape }}" action="{{ task.url|escape }}" method="{{ task.method|escape }}" onsubmit="(new Webhook('runform.{{ task.name|escape }}')).run(handleTaskResult); return false"> | |
| <input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/> | |
| <input type="hidden" name="payload" value="{{ task.body|escape }}"> | |
| {% for header in task.headers %} | |
| <input type="hidden" name="header:{{ header.0|escape }}" | |
| value="{{ header.1|escape }}"/> | |
| {% endfor %} | |
| <input type="submit" value="Run"/> | |
| </form> | |
| {% endif %} | |
| </td> | |
| <td valign="top"> | |
| <form id="deleteform.{{ task.name|escape }}" action="{{ tasks_path }}" method="post"> | |
| <input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/> | |
| <input type="hidden" name="queue" value="{{ queue|escape }}"/> | |
| <input type="hidden" name="task" value="{{ task.name|escape }}"/> | |
| <input type="hidden" name="start_name" value="{{ this_page.start_name|escape }}"/> | |
| <input type="hidden" name="start_eta" value="{{ this_page.start_eta|escape }}"/> | |
| <input type="hidden" name="page_no" value="{{ this_page.number|escape }}"/> | |
| <input type="hidden" name="action:deletetask" value="true"/> | |
| <input type="submit" value="Delete"/> | |
| </form> | |
| </td> | |
| </tr> | |
| {% endfor %} | |
| <tr> | |
| <td colspan="6" class="ae-pager" align="right"> | |
| {% if prev_page %} | |
| <a href="{{ tasks_path }}?{{ prev_page.url }}">‹ Previous</a> | |
| {% endif %} | |
| | |
| {% for page in pages %} | |
| <a {% ifequal page this_page %} class="ae-page-selected ae-page-number" {% endifequal %} | |
| href="{{ tasks_path }}?{{ page.url }}">{{ page.number }}</a> | |
| {% if page.has_gap %}...{% endif %} | |
| {% endfor %} | |
| | |
| {% if next_page %} | |
| <a href="{{ tasks_path }}?{{ next_page.url }}">Next ›</a> | |
| {% endif %} | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| {% else %} | |
| This queue doesn't contain any tasks. | |
| {% endif %} | |
| {% endblock %} |