You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PackageHelper/www/assets/js/hardscan.js

56 lines
2.0 KiB
JavaScript

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function setupHardwareScanner() {
try {
onScan.detachFrom(document);
} catch (ex) {
// do nothing
}
if (getStorage("hardwarescanner") == "true") {
onScan.attachTo(document, {
suffixKeyCodes: [13], // enter-key expected at the end of a scan
reactToKeyDown: true,
reactToPaste: true, // Compatibility to built-in scanners in paste-mode (as opposed to keyboard-mode)
ignoreIfFocusOn: 'input',
stopPropagation: true,
preventDefault: true,
keyCodeMapper: function (evt) {
// Handle special char codes
switch (evt.which) {
case 119: // F8, separates 42012345 from actual tracking barcode
return "";
}
var char = String.fromCharCode(evt.which);
// Handle special characters
switch (char) {
case "\u0010": // In some fields in UPS MI codes but pointless
return "";
}
// Return everything that gets through the special cases above
return char;
},
onScan: function (code, qty) { // Alternative to document.addEventListener('scan')
console.log("Scanned: ", code);
switch (router.currentRoute.name) {
case "add":
addPackageBarcode(code);
break;
case "track":
openTrackingHistory(code);
break;
case "scanner":
addCodeToScannerList(code);
break;
}
}
});
}
}
setupHardwareScanner();