Add option to use full URL in QR codes instead of web+spoolman: prefix

This commit is contained in:
Michal Kunc
2024-02-10 00:09:39 +01:00
parent babb95d086
commit 30ee5b7cae
4 changed files with 14 additions and 3 deletions

View File

@@ -105,7 +105,8 @@
"showTemperatures": "Teploty", "showTemperatures": "Teploty",
"showSpoolComment": "Poznámka k cívce", "showSpoolComment": "Poznámka k cívce",
"showFilamentComment": "Poznámka k filamentu", "showFilamentComment": "Poznámka k filamentu",
"showVendorComment": "Poznámka k výrobci" "showVendorComment": "Poznámka k výrobci",
"useHTTPUrl": "Použít HTTP(S) odkaz v QR kódu"
}, },
"spoolSelect": { "spoolSelect": {
"title": "Vybrat cívky", "title": "Vybrat cívky",

View File

@@ -106,7 +106,8 @@
"showTemperatures": "Temperatures", "showTemperatures": "Temperatures",
"showSpoolComment": "Spool Comment", "showSpoolComment": "Spool Comment",
"showFilamentComment": "Filament Comment", "showFilamentComment": "Filament Comment",
"showVendorComment": "Vendor Comment" "showVendorComment": "Vendor Comment",
"useHTTPUrl": "Use HTTP(S) link in QR code"
}, },
"spoolSelect": { "spoolSelect": {
"title": "Select Spools", "title": "Select Spools",

View File

@@ -21,6 +21,7 @@ const SpoolQRCodePrintingDialog: React.FC<SpoolQRCodePrintingDialog> = ({ visibl
const [showSpoolComment, setShowSpoolComment] = useSavedState("print-showSpoolComment", false); const [showSpoolComment, setShowSpoolComment] = useSavedState("print-showSpoolComment", false);
const [showFilamentComment, setShowFilamentComment] = useSavedState("print-showFilamentComment", false); const [showFilamentComment, setShowFilamentComment] = useSavedState("print-showFilamentComment", false);
const [showVendorComment, setShowVendorComment] = useSavedState("print-showVendorComment", false); const [showVendorComment, setShowVendorComment] = useSavedState("print-showVendorComment", false);
const [useHTTPUrl, setUseHTTPUrl] = useSavedState("print-useHTTPUrl", false);
const formatFilament = (filament: IFilament) => { const formatFilament = (filament: IFilament) => {
let vendorPrefix = ""; let vendorPrefix = "";
@@ -49,7 +50,7 @@ const SpoolQRCodePrintingDialog: React.FC<SpoolQRCodePrintingDialog> = ({ visibl
const tempLine = temps.join(" - "); const tempLine = temps.join(" - ");
return { return {
value: `web+spoolman:s-${spool.id}`, value: useHTTPUrl ? `${window.location.origin}/spool/show/${spool.id}` : `web+spoolman:s-${spool.id}`,
label: ( label: (
<p <p
style={{ style={{
@@ -126,6 +127,9 @@ const SpoolQRCodePrintingDialog: React.FC<SpoolQRCodePrintingDialog> = ({ visibl
<Form.Item label={t("printing.qrcode.showVendorComment")}> <Form.Item label={t("printing.qrcode.showVendorComment")}>
<Switch checked={showVendorComment} onChange={(checked) => setShowVendorComment(checked)} /> <Switch checked={showVendorComment} onChange={(checked) => setShowVendorComment(checked)} />
</Form.Item> </Form.Item>
<Form.Item label={t("printing.qrcode.useHTTPUrl")}>
<Switch checked={useHTTPUrl} onChange={(checked) => setUseHTTPUrl(checked)} />
</Form.Item>
</> </>
} }
/> />

View File

@@ -18,6 +18,11 @@ const QRCodeScannerModal: React.FC = () => {
setVisible(false); setVisible(false);
navigate(`/spool/show/${match.groups.id}`); navigate(`/spool/show/${match.groups.id}`);
} }
const fullURLmatch = result.match(/^https?:\/\/[^/]+\/spool\/show\/(?<id>[0-9]+)$/);
if (fullURLmatch && fullURLmatch.groups) {
setVisible(false);
navigate(`/spool/show/${fullURLmatch.groups.id}`);
}
}; };
return ( return (