{% extends 'base.html' %} {% load i18n %} {% load static %} {% block extra_css %} {% endblock %} {% block content %}

{% trans "Jobs" %}

{% if scheduler_running %}{% trans "Scheduler running" %}{% else %}{% trans "Scheduler stopped" %}{% endif %} {% trans "Max concurrent:" %} {{ site_settings.max_concurrent_screenshot_jobs }} {% trans "Change" %}
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
{% if tab == 'screenshots' or tab == 'pages' %}
{% for s, label, pill_active_style, pill_inactive_style in filter_options %} {{ label }} {% endfor %}
{% elif tab == 'image_imports' %}
{% for s, label, pill_active_style, pill_inactive_style in import_filter_options %} {{ label }} {% endfor %}
{% endif %}
☑ {% trans "Use the checkbox in the header row to select all, or check individual rows — then use bulk actions here" %}
{% if tab == 'scheduler' %} {% if scheduled_jobs %}
{% for job in scheduled_jobs %} {% endfor %}
{% trans "Job ID" %} {% trans "Function" %} {% trans "Trigger" %} {% trans "Next Run" %}
{{ job.id }} {{ job.name }} {{ job.trigger }} {% if job.next_run %}{{ job.next_run }}{% else %}—{% endif %}
{% else %}
{% trans "No scheduled jobs." %}
{% endif %} {% elif tab == 'screenshots' %} {% if page_obj.object_list %}
{% for ss in page_obj.object_list %} {% endfor %}
ID {% trans "Page" %} {% trans "Status" %} {% trans "Retries" %} {% trans "Error" %} {% trans "Updated" %}
{{ ss.id }} {{ ss.page.title|default:ss.page.url|truncatechars:55 }} {{ ss.status }} {{ ss.retry_count }}/3 {% if ss.error %} {% else %}{% endif %} {{ ss.updated_at|timesince }} {% trans "ago" %}
{% else %}
{% trans "No screenshots match this filter." %}
{% endif %} {% elif tab == 'pages' %} {% if page_obj.object_list %}
{% for pg in page_obj.object_list %} {% endfor %}
ID {% trans "Title / URL" %} {% trans "Status" %} {% trans "Retries" %} {% trans "Error" %} {% trans "Updated" %}
{{ pg.id }} {{ pg.title|default:pg.url|truncatechars:55 }} {{ pg.process_status }} {{ pg.retry_count }}/3 {% if pg.error_message %} {% else %}{% endif %} {{ pg.updated_at|timesince }} {% trans "ago" %}
{% else %}
{% trans "No pages match this filter." %}
{% endif %} {% elif tab == 'image_imports' %} {% if page_obj.object_list %}
{% for imp in page_obj.object_list %} {% endfor %}
ID {% trans "Filename" %} {% trans "Source URL" %} {% trans "Status" %} {% trans "Size" %} {% trans "Updated" %}
{{ imp.id|truncatechars:12 }} {{ imp.name|truncatechars:40 }} {{ imp.source_url|truncatechars:50 }} {% if imp.size > 0 %} {% trans "done" %} {% else %} {% trans "pending" %} {% endif %} {% if imp.size > 0 %}{{ imp.formatted_size }}{% else %}{% endif %} {{ imp.updated_at|timesince }} {% trans "ago" %}
{% else %}
{% trans "No image imports match this filter." %}
{% endif %} {% endif %} {% if page_obj.has_other_pages %}
{% trans "Showing" %} {{ page_obj.start_index }}–{{ page_obj.end_index }} {% trans "of" %} {{ page_obj.paginator.count }}
{% if page_obj.has_previous %} ‹ {% trans "Prev" %} {% endif %} {% for num in page_obj.paginator.page_range %} {% if page_obj.number == num %} {{ num }} {% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %} {{ num }} {% endif %} {% endfor %} {% if page_obj.has_next %} {% trans "Next" %} › {% endif %}
{% endif %}

{% trans "Error Details" %}

{% trans "Job ID:" %}


            
{{ all_ids|json_script:"jobs-all-ids" }} {% endblock %}