155 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% extends 'layout.html' %}
 | 
						|
{% load i18n %}
 | 
						|
{% load bookwyrm_tags %}
 | 
						|
{% load humanize %}
 | 
						|
 | 
						|
{% block title %}{% trans "Import Status" %}{% endblock %}
 | 
						|
 | 
						|
{% block content %}{% spaceless %}
 | 
						|
<div class="block">
 | 
						|
    <h1 class="title">{% trans "Import Status" %}</h1>
 | 
						|
 | 
						|
    <p>
 | 
						|
        {% trans "Import started:" %} {{ job.created_date | naturaltime }}
 | 
						|
    </p>
 | 
						|
    {% if job.complete %}
 | 
						|
    <p>
 | 
						|
        {% trans "Import completed:" %} {{ task.date_done | naturaltime }}
 | 
						|
    </p>
 | 
						|
    {% elif task.failed %}
 | 
						|
    <div class="notification is-danger">{% trans "TASK FAILED" %}</div>
 | 
						|
    {% endif %}
 | 
						|
</div>
 | 
						|
 | 
						|
<div class="block">
 | 
						|
    {% if not job.complete %}
 | 
						|
    {% trans "Import still in progress." %}
 | 
						|
    <p>
 | 
						|
        {% trans "(Hit reload to update!)" %}
 | 
						|
    </p>
 | 
						|
    {% endif %}
 | 
						|
</div>
 | 
						|
 | 
						|
{% if failed_items %}
 | 
						|
<div class="block">
 | 
						|
    <h2 class="title is-4">{% trans "Failed to load" %}</h2>
 | 
						|
    {% if not job.retry %}
 | 
						|
    <form name="retry" action="/import/{{ job.id }}" method="post">
 | 
						|
        {% csrf_token %}
 | 
						|
 | 
						|
        {% with failed_count=failed_items|length %}
 | 
						|
            {% if failed_count > 10 %}
 | 
						|
                <p class="block">
 | 
						|
                    <a href="#select-all-failed-imports">
 | 
						|
                        {% blocktrans %}Jump to the bottom of the list to select the {{ failed_count }} items which failed to import.{% endblocktrans %}
 | 
						|
                    </a>
 | 
						|
                </p>
 | 
						|
            {% endif %}
 | 
						|
        {% endwith %}
 | 
						|
 | 
						|
        <fieldset id="failed-imports">
 | 
						|
            <ul>
 | 
						|
            {% for item in failed_items %}
 | 
						|
                <li class="pb-1">
 | 
						|
                    <input class="checkbox" type="checkbox" name="import_item" value="{{ item.id }}" id="import-item-{{ item.id }}">
 | 
						|
                    <label for="import-item-{{ item.id }}">
 | 
						|
                        Line {{ item.index }}:
 | 
						|
                        <strong>{{ item.data|dict_key:'Title' }}</strong> by
 | 
						|
                        {{ item.data|dict_key:'Author' }}
 | 
						|
                    </label>
 | 
						|
                    <p>
 | 
						|
                        {{ item.fail_reason }}.
 | 
						|
                    </p>
 | 
						|
                </li>
 | 
						|
            {% endfor %}
 | 
						|
            </ul>
 | 
						|
        </fieldset>
 | 
						|
 | 
						|
        <fieldset class="mt-3">
 | 
						|
            <a name="select-all-failed-imports"></a>
 | 
						|
 | 
						|
            <label class="label is-inline">
 | 
						|
                <input
 | 
						|
                    id="toggle-all-checkboxes-failed-imports"
 | 
						|
                    class="checkbox"
 | 
						|
                    type="checkbox"
 | 
						|
                    data-action="toggle-all"
 | 
						|
                    data-target="failed-imports"
 | 
						|
                />
 | 
						|
                {% trans "Select all" %}
 | 
						|
            </label>
 | 
						|
 | 
						|
            <button class="button is-block mt-3" type="submit">{% trans "Retry items" %}</button>
 | 
						|
        </fieldset>
 | 
						|
 | 
						|
        <hr>
 | 
						|
 | 
						|
        {% else %}
 | 
						|
        <ul>
 | 
						|
            {% for item in failed_items %}
 | 
						|
            <li class="pb-1">
 | 
						|
                <p>
 | 
						|
                    Line {{ item.index }}:
 | 
						|
                    <strong>{{ item.data|dict_key:'Title' }}</strong> by
 | 
						|
                    {{ item.data|dict_key:'Author' }}
 | 
						|
                </p>
 | 
						|
                <p>
 | 
						|
                    {{ item.fail_reason }}.
 | 
						|
                </p>
 | 
						|
            </li>
 | 
						|
            {% endfor %}
 | 
						|
        </ul>
 | 
						|
        {% endif %}
 | 
						|
    </form>
 | 
						|
</div>
 | 
						|
{% endif %}
 | 
						|
 | 
						|
<div class="block">
 | 
						|
    <h2 class="title is-4">{% trans "Successfully imported" %}</h2>
 | 
						|
    <table class="table">
 | 
						|
        <tr>
 | 
						|
            <th>
 | 
						|
                {% trans "Book" %}
 | 
						|
            </th>
 | 
						|
            <th>
 | 
						|
                {% trans "Title" %}
 | 
						|
            </th>
 | 
						|
            <th>
 | 
						|
                {% trans "Author" %}
 | 
						|
            </th>
 | 
						|
            <th>
 | 
						|
            </th>
 | 
						|
        </tr>
 | 
						|
        {% for item in items %}
 | 
						|
        <tr>
 | 
						|
            <td>
 | 
						|
                {% if item.book %}
 | 
						|
                <a href="/book/{{ item.book.id }}">
 | 
						|
                {% include 'snippets/book_cover.html' with book=item.book size='small' %}
 | 
						|
                </a>
 | 
						|
                {% endif %}
 | 
						|
            </td>
 | 
						|
            <td>
 | 
						|
                {{ item.data|dict_key:'Title' }}
 | 
						|
            </td>
 | 
						|
            <td>
 | 
						|
                {{ item.data|dict_key:'Author' }}
 | 
						|
            </td>
 | 
						|
            <td>
 | 
						|
                {% if item.book %}
 | 
						|
                <span class="icon icon-check">
 | 
						|
                    <span class="is-sr-only">{% trans "Imported" %}</span>
 | 
						|
                </span>
 | 
						|
                {% endif %}
 | 
						|
            </td>
 | 
						|
        </tr>
 | 
						|
        {% endfor %}
 | 
						|
    </table>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
{% endspaceless %}{% endblock %}
 | 
						|
 | 
						|
{% block scripts %}
 | 
						|
<script src="/static/js/check_all.js"></script>
 | 
						|
{% endblock %}
 |