Prevent syncing package list between different versions, fix bug

Skylar Ittner 2 years ago
parent 7a385b2ccd
commit 096ab5bebe

@ -177,6 +177,7 @@ function addPackage(address, latitude, longitude, type, callback, deadline) {
function importPackageList(newlist) { function importPackageList(newlist) {
skipped = 0; skipped = 0;
let count = 0; let count = 0;
if (packages.length > 0) {
for (latlng in newlist) { for (latlng in newlist) {
var latitude = newlist[latlng].coords[0]; var latitude = newlist[latlng].coords[0];
var longitude = newlist[latlng].coords[1]; var longitude = newlist[latlng].coords[1];
@ -192,6 +193,7 @@ function importPackageList(newlist) {
for (var j in packages[i].items) { for (var j in packages[i].items) {
if (packages[i].items[j].id == newpackage.id) { if (packages[i].items[j].id == newpackage.id) {
// This package already exists in the local database. // This package already exists in the local database.
console.log("Skipping package ", newpackage);
added = true; added = true;
skipped++; skipped++;
} }
@ -209,6 +211,11 @@ function importPackageList(newlist) {
} }
} }
} }
} else {
// internal list is empty, so just copy
packages = newlist;
skipped = -1;
}
setStorage("packages", JSON.stringify(packages)); setStorage("packages", JSON.stringify(packages));
appendActivityLog("Imported List", count + " items added", "", "fas fa-file-download"); appendActivityLog("Imported List", count + " items added", "", "fas fa-file-download");

@ -17,7 +17,8 @@ function uploadList() {
dataType: 'json', dataType: 'json',
method: 'post', method: 'post',
data: { data: {
packages: JSON.stringify(packages) packages: JSON.stringify(packages),
appversion: app_version
}, },
timeout: 15 * 1000, timeout: 15 * 1000,
success: function (resp) { success: function (resp) {
@ -69,9 +70,20 @@ function downloadItemList(code) {
downloadlistdialogopen = false; downloadlistdialogopen = false;
} }
if (resp.status == "OK") { 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); var skipped = importPackageList(resp.packages);
if (skipped > 0) { 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"); 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 { } else {
app.dialog.alert("List imported and merged with the existing one.", "Import Complete"); app.dialog.alert("List imported and merged with the existing one.", "Import Complete");
} }

Loading…
Cancel
Save