diff --git a/www/assets/js/home.js b/www/assets/js/home.js index 69468e0..d41bb2c 100644 --- a/www/assets/js/home.js +++ b/www/assets/js/home.js @@ -18,7 +18,33 @@ $("#clientsearchbar").submit(function (evt) { function scanBarcodeOpenMachine() { scanBarcode(function (code) { - router.navigate("/machine/" + code); + if (code.startsWith("http")) { + matches = code.match(/[0-9]{8,}/g); + if (matches.length == 0) { + app.dialog.alert("No IDs detected in barcode.", "Error"); + } else if (matches.length == 1) { + router.navigate("/machine/" + matches[0]); + } else if (matches.length > 1) { + var buttons = []; + for (var i = 0; i < matches.length; i++) { + buttons.push({ + text: matches[i] + }); + } + app.dialog.create({ + title: 'Multiple IDs', + text: 'Multiple potential IDs exist in that barcode. Select the correct one.', + buttons: buttons, + verticalButtons: true, + onClick: function (dialog, index) { + var id = matches[index]; + router.navigate("/machine/" + id); + } + }).open(); + } + } else { + router.navigate("/machine/" + code); + } }, function (error) { app.dialog.alert(error, "Error"); });