/* * 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 uploadList() { if (packages.length == 0) { app.dialog.alert("Your list doesn't have anything to send.", "Empty List"); return; } app.dialog.preloader("Uploading..."); var uploadlistdialogopen = true; $.ajax({ url: SETTINGS.sharelistapi, dataType: 'json', method: 'post', data: { packages: JSON.stringify(packages), appversion: app_version }, timeout: 15 * 1000, success: function (resp) { if (uploadlistdialogopen) { app.dialog.close(); uploadlistdialogopen = false; } if (resp.status == "OK") { JsBarcode("#listidbarcode", resp.uuid, { format: "code128", ean128: false, width: 2, height: 40 }); $("#listidbarcodeli").css("display", ""); appendActivityLog("Shared List", countPackages() + " items sent", "", "fas fa-file-upload"); } else { app.dialog.alert(resp.message, "Error"); } }, error: function (jqXHR, status, errorThrown) { if (uploadlistdialogopen) { app.dialog.close(); uploadlistdialogopen = false; } app.dialog.alert("There was a network or server issue while uploading the list. Please try again.", "Error"); } }); } function downloadItemList(code) { if (typeof code == "undefined") { code = $("#getlistidbox").val(); } if (code.match(/^[a-f0-9]{10}$/i)) { app.dialog.preloader("Downloading..."); var downloadlistdialogopen = true; $.ajax({ url: SETTINGS.sharelistapi, dataType: 'json', method: 'get', data: { uuid: code }, timeout: 15 * 1000, success: function (resp) { if (downloadlistdialogopen) { app.dialog.close(); downloadlistdialogopen = false; } if (resp.status == "OK") { if (typeof resp.appversion == "string") { if (resp.appversion != app_version) { app.dialog.alert("The sender is using " + app.name + " verson " + resp.appversion + " but you have " + app_version + ". Both devices must have the same version installed.", "Version Mismatch"); return; } } else { app.dialog.alert("The sender is using an old version of " + app.name + ". Both devices must have the same version installed.", "Version Mismatch"); return; } var skipped = importPackageList(resp.packages); if (skipped > 0) { app.dialog.alert("List imported and merged with the existing one. " + skipped + " items already existed locally and were skipped. Verify their delivery status manually.", "Import Complete"); } else if (skipped == -1) { app.dialog.alert("List imported.", "Import Complete"); } else { app.dialog.alert("List imported and merged with the existing one.", "Import Complete"); } } else { app.dialog.alert(resp.message, "Error"); } }, error: function (jqXHR, status, errorThrown) { if (downloadlistdialogopen) { app.dialog.close(); downloadlistdialogopen = false; } app.dialog.alert("There was a network or server issue while downloading the list. Please try again.", "Error"); } }); } else { app.dialog.alert("That's not a valid list ID.", "Error"); } } function scanListIDBarcode() { scanBarcode(function (code) { playSound("scan"); downloadItemList(code); }, function (error) { app.dialog.alert(error, "Error"); }); }