Prevent syncing package list between different versions, fix bug
This commit is contained in:
parent
7a385b2ccd
commit
096ab5bebe
@ -177,37 +177,44 @@ function addPackage(address, latitude, longitude, type, callback, deadline) {
|
||||
function importPackageList(newlist) {
|
||||
skipped = 0;
|
||||
let count = 0;
|
||||
for (latlng in newlist) {
|
||||
var latitude = newlist[latlng].coords[0];
|
||||
var longitude = newlist[latlng].coords[1];
|
||||
if (packages.length > 0) {
|
||||
for (latlng in newlist) {
|
||||
var latitude = newlist[latlng].coords[0];
|
||||
var longitude = newlist[latlng].coords[1];
|
||||
|
||||
latitude = +(parseFloat("" + latitude).toFixed(4));
|
||||
longitude = +(parseFloat("" + longitude).toFixed(4));
|
||||
latitude = +(parseFloat("" + latitude).toFixed(4));
|
||||
longitude = +(parseFloat("" + longitude).toFixed(4));
|
||||
|
||||
for (pkg in newlist[latlng].items) {
|
||||
var added = false;
|
||||
for (var i = 0; i < packages.length; i++) {
|
||||
if (+(parseFloat("" + packages[i].coords[0]).toFixed(4)) == latitude && +(parseFloat("" + packages[i].coords[1]).toFixed(4)) == longitude) {
|
||||
var newpackage = newlist[latlng].items[pkg];
|
||||
for (var j in packages[i].items) {
|
||||
if (packages[i].items[j].id == newpackage.id) {
|
||||
// This package already exists in the local database.
|
||||
added = true;
|
||||
skipped++;
|
||||
for (pkg in newlist[latlng].items) {
|
||||
var added = false;
|
||||
for (var i = 0; i < packages.length; i++) {
|
||||
if (+(parseFloat("" + packages[i].coords[0]).toFixed(4)) == latitude && +(parseFloat("" + packages[i].coords[1]).toFixed(4)) == longitude) {
|
||||
var newpackage = newlist[latlng].items[pkg];
|
||||
for (var j in packages[i].items) {
|
||||
if (packages[i].items[j].id == newpackage.id) {
|
||||
// This package already exists in the local database.
|
||||
console.log("Skipping package ", newpackage);
|
||||
added = true;
|
||||
skipped++;
|
||||
}
|
||||
}
|
||||
if (!added) {
|
||||
packages[i].items.push(package);
|
||||
count++;
|
||||
added = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!added) {
|
||||
packages[i].items.push(package);
|
||||
count++;
|
||||
added = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!added) {
|
||||
packages.push(newlist[latlng]);
|
||||
}
|
||||
}
|
||||
if (!added) {
|
||||
packages.push(newlist[latlng]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// internal list is empty, so just copy
|
||||
packages = newlist;
|
||||
skipped = -1;
|
||||
}
|
||||
setStorage("packages", JSON.stringify(packages));
|
||||
|
||||
|
@ -17,7 +17,8 @@ function uploadList() {
|
||||
dataType: 'json',
|
||||
method: 'post',
|
||||
data: {
|
||||
packages: JSON.stringify(packages)
|
||||
packages: JSON.stringify(packages),
|
||||
appversion: app_version
|
||||
},
|
||||
timeout: 15 * 1000,
|
||||
success: function (resp) {
|
||||
@ -69,12 +70,23 @@ function downloadItemList(code) {
|
||||
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");
|
||||
}
|
||||
app.dialog.alert("List imported and merged with the existing one.", "Import Complete");
|
||||
}
|
||||
} else {
|
||||
app.dialog.alert(resp.message, "Error");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user