diff --git a/index.html b/index.html index 064f2f8..42411b5 100644 --- a/index.html +++ b/index.html @@ -260,6 +260,34 @@ borderToggle: false, labels: [], + readUrlParams() { + const params = new URLSearchParams(window.location.search); + if (params.has("startNumber")) { + const val = parseInt(params.get("startNumber"), 10); + if (!isNaN(val) && val >= 1) this.startNumber = val; + } + if (params.has("prefix")) { + this.prefix = params.get("prefix"); + } + if (params.has("leadingZeros")) { + const val = parseInt(params.get("leadingZeros"), 10); + if (!isNaN(val) && val >= 0) this.leadingZeros = val; + } + if (params.has("borderToggle")) { + this.borderToggle = params.get("borderToggle") === "true"; + } + }, + + updateUrl() { + const params = new URLSearchParams(); + params.set("startNumber", this.startNumber); + params.set("prefix", this.prefix); + params.set("leadingZeros", this.leadingZeros); + params.set("borderToggle", this.borderToggle); + const newUrl = `${window.location.pathname}?${params.toString()}`; + window.history.replaceState({}, "", newUrl); + }, + generateLabels() { this.labels = []; let totalLabels = 7 * 27; // 7 columns x 27 rows @@ -278,11 +306,13 @@ this.labels.push({ qrCodeUrl, text }); } + this.updateUrl(); }, printLabels() { window.print(); }, init() { + this.readUrlParams(); this.generateLabels(); }, };