2025-01-22 22:41:35 +01:00
< div class = "container" >
2025-01-25 22:42:59 +01:00
{% if error %}< div class = "alert alert-danger" role = "alert" > < strong > Error:< / strong > {{ error }}.< / div > {% endif %}
< div class = "row" >
< div class = "col-12" >
< form method = "POST" action = "{{ url_for('instructions.do_download') }}" >
< div class = "card mb-3" >
< div class = "card-header" >
< h5 class = "mb-0" > < i class = "ri-download-line" > < / i > Download instructions from Rebrickable< / h5 >
< / div >
< div class = "card-body" >
< div class = "mb-3" >
< label for = "download-set" class = "form-label" > Set number (only one)< / label >
< input type = "text" class = "form-control" id = "download-set" name = "download-set" placeholder = "107-1 or 1642-1 or ..." value = "{{ set }}" >
2025-01-22 22:41:35 +01:00
< / div >
2025-01-25 22:42:59 +01:00
< / div >
< div class = "card-footer text-end" >
< button type = "submit" class = "btn btn-primary" > < i class = "ri-search-line" > < / i > Search< / button >
< / div >
2025-01-22 22:41:35 +01:00
< / div >
2025-01-25 22:42:59 +01:00
< / form >
{% if instructions %}
< div class = "card mb-3" >
< div class = "card-header" >
< h5 class = "mb-0" > < i class = "ri-checkbox-line" > < / i > Select instructions to download< / h5 >
< / div >
< div class = "card-body" >
< div class = "mb-3" >
< div id = "download-fail" class = "alert alert-danger d-none" role = "alert" > < / div >
< div id = "download-complete" > < / div >
< h5 class = "border-bottom" > Available Instructions< / h5 >
< div id = "download-files" >
{% for alt_text, href in instructions %}
< div class = "form-check" >
< input class = "form-check-input" type = "checkbox" id = "instruction-{{ loop.index }}" data-download-href = "{{ href }}" data-download-alt = "{{ alt_text }}" autocomplete = "off" >
< label class = "form-check-label" for = "instruction-{{ loop.index }}" > {{ alt_text }}< / label >
< / div >
{% endfor %}
< / div >
< / div >
< hr >
< div class = "mb-3" >
< p >
Progress < span id = "download-count" > < / span >
< span id = "download-spinner" class = "d-none" >
< span class = "spinner-border spinner-border-sm" aria-hidden = "true" > < / span >
< span class = "visually-hidden" role = "status" > Loading...< / span >
< / span >
< / p >
< div id = "download-progress" class = "progress" role = "progressbar" aria-label = "Download an instructions file progress" aria-valuenow = "0" aria-valuemin = "0" aria-valuemax = "100" >
< div id = "download-progress-bar" class = "progress-bar" style = "width: 0%" > < / div >
< / div >
< p id = "download-progress-message" class = "text-center d-none" > < / p >
< / div >
< / div >
< div class = "card-footer text-end" >
< span id = "download-status-icon" class = "me-1" > < / span > < span id = "download-status" class = "me-1" > < / span > < button id = "download" type = "button" class = "btn btn-primary" > < i class = "ri-download-line" > < / i > Download selected files< / button >
< / div >
< / div >
{% include 'instructions/socket.html' %}
{% endif %}
2025-01-22 22:41:35 +01:00
< / div >
2025-01-25 22:42:59 +01:00
< / div >
< / div >