40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
import JsBarcode from "jsbarcode";
|
|
import { toWords as numberToWords } from "number-to-words";
|
|
import QRCode from "qrcode";
|
|
|
|
import data from "./export-computers-assets-2020-01-30.json";
|
|
|
|
async function renderLabels() {
|
|
const template = document.querySelector("#labelTemplate");
|
|
|
|
const URL_BASE = "https://inv.claremontmakerspace.org/";
|
|
|
|
for (const asset of data.data) {
|
|
const {
|
|
"Asset Tag": assetTag,
|
|
"Asset Name": assetName,
|
|
"MAC Address": mac
|
|
} = asset;
|
|
let clone = document.importNode(template.content, true);
|
|
|
|
let qrcode = await QRCode.toDataURL(URL_BASE + assetTag, { margin: 0 });
|
|
clone.querySelector(".qrcode").src = qrcode;
|
|
|
|
JsBarcode(clone.querySelector(".barcode"), assetTag, {
|
|
displayValue: false,
|
|
margin: 0
|
|
});
|
|
|
|
let name = numberToWords(assetName.match(/[0-9]+$/)[0]).toUpperCase();
|
|
|
|
clone.querySelector(".name").textContent = name;
|
|
clone.querySelector(".hostname").textContent = assetName;
|
|
clone.querySelector(".mac").textContent = mac;
|
|
clone.querySelector(".tag").textContent = assetTag;
|
|
|
|
document.body.appendChild(clone);
|
|
}
|
|
}
|
|
|
|
window.addEventListener("load", renderLabels);
|