{% 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 %}
{% for stat in job_type_stats %}

{{ stat.label }}

{{ stat.total }}
{% trans "Total" %}
{% if stat.pending is not None %}
{{ stat.pending }}
{% trans "Pending" %}
{% endif %} {% if stat.processing is not None %}
{{ stat.processing }}
{% trans "Running" %}
{% endif %} {% if stat.completed is not None %}
{{ stat.completed }}
{% trans "Done" %}
{% endif %} {% if stat.failed is not None %}
{{ stat.failed }}
{% trans "Failed" %}
{% endif %}
{% endfor %}
{% if status_choices %}
{% for value, label in status_choices %} {{ 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' %}
( {% trans "job(s)" %})
{% if scheduled_jobs %}
{% trans "Job ID" %} {% trans "Function" %} {% trans "Trigger" %} {% trans "Next Run" %}
{% trans "No jobs match this filter." %}
{% else %}
{% trans "No scheduled jobs." %}
{% endif %} {% else %} {% if page_rows %}
{% if 'source_url' in current_tab_config.columns %}{% endif %} {% if 'status' in current_tab_config.columns %}{% endif %} {% if 'retry' in current_tab_config.columns %}{% endif %} {% if 'error' in current_tab_config.columns %}{% endif %} {% if 'size' in current_tab_config.columns %}{% endif %} {% for row in page_rows %} {% if 'source_url' in current_tab_config.columns %} {% endif %} {% if 'status' in current_tab_config.columns %} {% endif %} {% if 'retry' in current_tab_config.columns %} {% endif %} {% if 'error' in current_tab_config.columns %} {% endif %} {% if 'size' in current_tab_config.columns %} {% endif %} {% endfor %}
ID {{ current_tab_config.title_label }}{% trans "Source URL" %}{% trans "Status" %}{% trans "Retries" %}{% trans "Error" %}{% trans "Size" %}{% trans "Updated" %}
{{ row.id|truncatechars:12 }} {% if row.detail_url and row.detail_url != '#' %} {{ row.title|truncatechars:55 }} {% else %} {{ row.title|truncatechars:55 }} {% endif %} {{ row.extra.source_url|truncatechars:50 }} {{ row.status }} {% if row.retry is not None %}{{ row.retry }}/{{ row.retry_max }}{% else %}{% endif %} {% if row.error %} {% else %}{% endif %} {% if row.extra.formatted_size %}{{ row.extra.formatted_size }}{% else %}{% endif %} {{ row.updated_at|timesince }} {% trans "ago" %}
{% else %}
{% trans "No items match this filter." %}
{% endif %} {% comment %}pages table removed — unified table above handles all types{% endcomment %} {% if False %}
{% 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 %} {% comment %}image_imports table removed — unified table above handles all types{% endcomment %} {% if False %} {% 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 %} {% 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" }} {{ scheduled_jobs|json_script:"scheduled-jobs-data" }} {{ bulk_actions|json_script:"bulk-actions-data" }} {% endblock %}