Senden und Abbruch laufen über den Treiber, Orca-Doppelzeilen und tote Ideen-API fallen weg, Drucker folgen der Datei, Etikettenformat liegt in den Einstellungen.
55 lines
2.0 KiB
HTML
55 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{ title }}</title>
|
|
{% include "_etikett_style.html" %}
|
|
<style>
|
|
.sheet { page-break-after: always; }
|
|
.sheet:last-child { page-break-after: auto; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="toolbar">
|
|
<button type="button" onclick="window.print()">Drucken</button>
|
|
<a class="ghost" href="/protokoll/{{ run.id }}">Zurück</a>
|
|
</div>
|
|
{% for sheet in sheets %}
|
|
<div class="sheet">
|
|
<div class="meta">
|
|
<h1>{{ sheet.object_name or (run.filename.split('/')[-1] if run.filename else 'Druck') }}</h1>
|
|
<p class="code">{{ sheet.chargen_nr }}</p>
|
|
{% set soll = sheet.target_g if sheet.target_g is defined else target_g %}
|
|
{% if soll %}
|
|
<p>Soll {{ '%.0f'|format(soll) }} g</p>
|
|
{% endif %}
|
|
<p>{{ run.printer_name }} · {{ (run.ended_at or run.started_at or '')[:10] }}</p>
|
|
{% for spool in spools %}
|
|
<p>{% if spool.material_type %}{{ spool.material_type }}{% endif %}{% if spool.brand %} · {{ spool.brand }}{% endif %}{% if spool.name %} · {{ spool.name }}{% endif %}{% if spool.chargen_nr %} · {{ spool.chargen_nr }}{% endif %}{% if spool.hersteller_charge %} · H: {{ spool.hersteller_charge }}{% endif %}</p>
|
|
{% else %}
|
|
<p class="code" style="font-weight:500;color:#666">kein Material zugeordnet</p>
|
|
{% endfor %}
|
|
</div>
|
|
<div class="qr-wrap">
|
|
<canvas class="qr" id="qr-{{ loop.index0 }}" width="80" height="80" data-url="{{ sheet.qr_url }}"></canvas>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
<script src="{{ url_for('static', filename='qrcode.min.js') }}?v=1"></script>
|
|
<script>
|
|
const qrMm = {{ (etikett.qr_mm if etikett is defined else 20)|tojson }};
|
|
document.querySelectorAll("canvas.qr").forEach((node) => {
|
|
QRCode.toCanvas(node, node.dataset.url, {
|
|
width: 80,
|
|
margin: 1,
|
|
color: { dark: "#111111", light: "#ffffff" }
|
|
}, () => {
|
|
node.style.width = qrMm + "mm";
|
|
node.style.height = qrMm + "mm";
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|