{% extends "base.html" %} {% from "partials/_macros.html" import status_badge, type_badge %} {% set active_section = "jobs" %} {% block body_class %}no-subnav{% endblock %} {% block title %}Job: {{ job.name }} | SPIKEE{% endblock %} {% block content %}
{# ── Back + action bar ── #}
← All Jobs {% if job.status == 'running' %} {% if job.type == 'manual' %}
{% else %}
{% endif %} {% else %} {% if job.type != 'manual' %}
{% endif %} {% endif %} {% if manual_meta %} {% if job.status == 'running' %}Resume{% else %}View Session{% endif %} View Results {% endif %} {% if dataset_filename %} View Dataset {% endif %} {% if result_keys %} {% for key in result_keys %} {% if result_keys | length == 1 %}View Results{% else %}Results {{ loop.index }}{% endif %} {% endfor %} {% endif %}
{{ type_badge(job.type) }} {{ status_badge(job.status) }}
{# ── Job header card ── #}
Name
{{ job.name }}
Created
{{ job.created_at.strftime('%Y-%m-%d %H:%M:%S') }}
{% if job.returncode is not none %}
Exit Code
{{ job.returncode }}
{% endif %}
{% if job.args and job.type == 'script' %}
Command
{{ job.args | join(' ') }}
{% elif job.args and job.type != 'manual' %}
Command
spikee {{ job.args | join(' ') }}
{% elif job.type == 'manual' and manual_meta %}
Dataset
{{ manual_meta.dataset }} {% if manual_meta.judge_options %} Judge Options: {{ manual_meta.judge_options }} {% endif %}
{% endif %}
{# ── Progress panel for manual jobs / log panel for automated jobs ── #} {% if job.type == 'manual' and manual_meta %}
Progress
{{ manual_meta.done }} of {{ manual_meta.total }} entries processed {{ ((manual_meta.done / [manual_meta.total, 1] | max) * 100) | round(0) | int }}%
{% if job.log %}
{% for line in job.log %}{{ line | e }}
{% endfor %}
{% endif %}
{% else %} {# ── Log panel ── #}
Output {% if job.status == 'running' %} Live {% endif %}
{% for line in job.log %}{{ line | e }}
{% endfor %}
{% endif %}
{% endblock %} {% block scripts %} {% endblock %}