forked from Netsyms/PackageHelper
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.
56 lines
2.0 KiB
JavaScript
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(); |