Spoolman leads CC2 Control's copies; new spools from the bridge
- Master data of CC2 Control's copies follows Spoolman (name, brand, colour, diameter, density, net, tare, price; not the material, which was fitted to the tray). - A loaded spool's rest in CC2 Control is set to Spoolman's via /api/spools/adjust once everything is booked (old copy after the roll printed in the other printer, weigh-in in Spoolman); the resulting correction is not booked back. - Copies of spools archived or deleted in Spoolman are deleted from CC2 Control when no tray holds them (library limit 128); an outage never counts as deleted. - A roll that ran out is archived in Spoolman (setting, default on); a scan of an archived spool maps nothing. - A roll scanned again with unchanged tag data and put back into its old slot (after printing in the other printer) is recognised. - Tag generator: "Neue Spule" creates spools in Spoolman from an existing or a new filament (and vendor), labelled vendor + id, then opens the tag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014GcEk5tkfFSYD6NTF66NkC
This commit is contained in:
1 parent
d03668e3c5
commit
b37cd64909
13 files changed
+873
-27
No files matched your search
@@ -51,6 +51,7 @@ details.pr[open] > summary .chev { transform: rotate(90deg); }
|
||||
<div class="frow"><label for="location_slot">Ort im Slot<small><code>{printer}</code> = Druckername, <code>{n}</code> = 1–4</small></label><input id="location_slot" required></div>
|
||||
<div class="frow"><label for="location_storage">Ort im Lager</label><input id="location_storage" required></div>
|
||||
<div class="frow"><label for="spoolman_fields">Zusatzfelder „Drucker“ und „Slot“ in Spoolman pflegen</label><span class="switch"><input type="checkbox" id="spoolman_fields"><span></span></span></div>
|
||||
<div class="frow"><label for="archive_empty">Leergelaufene Rollen in Spoolman archivieren<small>Ihre Kopie in CC2 Control wird danach gelöscht</small></label><span class="switch"><input type="checkbox" id="archive_empty"><span></span></span></div>
|
||||
</div>
|
||||
|
||||
<div class="label section-label">Abfrage</div>
|
||||
@@ -147,6 +148,7 @@ async function loadSettings() {
|
||||
current = await api('GET', '/api/settings');
|
||||
for (const f of FIELDS) $(f).value = current[f];
|
||||
$('spoolman_fields').checked = current.spoolman_fields;
|
||||
$('archive_empty').checked = current.archive_empty;
|
||||
printers = current.printers.map((p) => ({ ...p }));
|
||||
saved = new Set(printers.map((p) => p.id));
|
||||
showMode(current.dry_run);
|
||||
@@ -156,6 +158,7 @@ async function saveSettings() {
|
||||
const body = { printers };
|
||||
for (const f of FIELDS) body[f] = $(f).value;
|
||||
body.spoolman_fields = $('spoolman_fields').checked;
|
||||
body.archive_empty = $('archive_empty').checked;
|
||||
try {
|
||||
current = await api('POST', '/api/settings', body);
|
||||
printers = current.printers.map((p) => ({ ...p }));
|
||||
|
||||
Reference in new issue
Block a user