diff --git a/assets/controllers/pages/barcode_scan_controller.js b/assets/controllers/pages/barcode_scan_controller.js index c0e24438..423f7b13 100644 --- a/assets/controllers/pages/barcode_scan_controller.js +++ b/assets/controllers/pages/barcode_scan_controller.js @@ -143,6 +143,12 @@ export default class extends Controller { return; } + // If info mode is OFF and part was NOT found, redirect to create part URL + if (!infoMode && !data.found && data.createUrl) { + window.location.assign(data.createUrl); + return; + } + // Otherwise render returned fragment HTML if (typeof data.html === "string" && data.html !== "") { const el = document.getElementById("scan-augmented-result"); diff --git a/src/Controller/ScanController.php b/src/Controller/ScanController.php index 5cbdb6a5..d1140bc2 100644 --- a/src/Controller/ScanController.php +++ b/src/Controller/ScanController.php @@ -382,6 +382,7 @@ class ScanController extends AbstractController 'ok' => true, 'found' => $targetFound, 'redirectUrl' => $redirectUrl, // client redirects only when infoMode=false + 'createUrl' => $createUrl, 'html' => $html, 'infoMode' => $infoMode, ], 200);