62 lines
2.7 KiB
HTML
62 lines
2.7 KiB
HTML
{% extends 'base.html' %}
|
|
|
|
{% block content %}
|
|
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
|
|
<h1 class="h2"><i class="bi bi-file-earmark-plus text-primary me-2"></i>{{ _('Prepare Print') }}</h1>
|
|
</div>
|
|
|
|
{% if error %}
|
|
<div class="alert alert-danger" role="alert">
|
|
<i class="bi bi-exclamation-triangle me-2"></i>{{ error }}
|
|
</div>
|
|
{% else %}
|
|
<div class="card shadow-sm">
|
|
<div class="card-header bg-light fw-bold text-secondary">
|
|
<i class="bi bi-card-text me-1"></i>{{ _('Available Files on Printer') }}
|
|
</div>
|
|
<div class="list-group list-group-flush">
|
|
{% for f in files %}
|
|
{% if f.type == 'machinecode' %}
|
|
<div class="list-group-item list-group-item-action d-flex justify-content-between align-items-center py-3">
|
|
<div class="me-auto text-truncate" style="max-width: 80%;">
|
|
<h6 class="mb-1"><i class="bi bi-file-earmark-code text-primary me-2"></i>{{ f.name }}</h6>
|
|
<small class="text-muted d-block">{{ _('Size:') }} {{ f.size }} bytes, {{ _('Time:') }} {{ f.gcodeAnalysis.estimatedPrintTime if f.gcodeAnalysis else 'Unknown' }}s</small>
|
|
</div>
|
|
<div>
|
|
<button class="btn btn-sm btn-outline-success rounded-pill px-3 shadow-sm" onclick="printFile('{{ f.origin }}', '{{ f.path }}')"><i class="bi bi-play-fill me-1"></i>{{ _('Print Now') }}</button>
|
|
<!-- <button class="btn btn-sm btn-outline-secondary rounded-pill ms-2" onclick="selectFile('{{ f.origin }}', '{{ f.path }}')">{{ _('Select') }}</button> -->
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% else %}
|
|
<div class="list-group-item text-center py-5 text-muted">
|
|
<i class="bi bi-inbox display-4 d-block mb-3"></i>
|
|
<p>{{ _('No printable files found. Go slice some G-Code first!') }}</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function printFile(origin, path) {
|
|
if(!confirm("{{ _('Send this file to print immediately?') }}\n\n" + path)) return;
|
|
|
|
fetch('{{ url_for("printer.api_print_file") }}', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ origin: origin, path: path })
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if(data.success) {
|
|
alert("{{ _('Print starting! Going to dashboard...') }}");
|
|
window.location.href = "{{ url_for('printer.status') }}";
|
|
} else {
|
|
alert("Error: " + data.error);
|
|
}
|
|
})
|
|
.catch(err => alert("Error: " + err));
|
|
}
|
|
</script>
|
|
{% endif %}
|
|
{% endblock %} |