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) {
|
function importPackageList(newlist) {
|
||||||
skipped = 0;
|
skipped = 0;
|
||||||
let count = 0;
|
let count = 0;
|
||||||
for (latlng in newlist) {
|
if (packages.length > 0) {
|
||||||
var latitude = newlist[latlng].coords[0];
|
for (latlng in newlist) {
|
||||||
var longitude = newlist[latlng].coords[1];
|
var latitude = newlist[latlng].coords[0];
|
||||||
|
var longitude = newlist[latlng].coords[1];
|
||||||
|
|
||||||
latitude = +(parseFloat("" + latitude).toFixed(4));
|
latitude = +(parseFloat("" + latitude).toFixed(4));
|
||||||
longitude = +(parseFloat("" + longitude).toFixed(4));
|
longitude = +(parseFloat("" + longitude).toFixed(4));
|
||||||
|
|
||||||
for (pkg in newlist[latlng].items) {
|
for (pkg in newlist[latlng].items) {
|
||||||
var added = false;
|
var added = false;
|
||||||
for (var i = 0; i < packages.length; i++) {
|
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) {
|
if (+(parseFloat("" + packages[i].coords[0]).toFixed(4)) == latitude && +(parseFloat("" + packages[i].coords[1]).toFixed(4)) == longitude) {
|
||||||
var newpackage = newlist[latlng].items[pkg];
|
var newpackage = newlist[latlng].items[pkg];
|
||||||
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.
|
||||||
added = true;
|
console.log("Skipping package ", newpackage);
|
||||||
skipped++;
|
added = true;
|
||||||
|
skipped++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (!added) {
|
||||||
|
packages[i].items.push(package);
|
||||||
|
count++;
|
||||||
|
added = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (!added) {
|
}
|
||||||
packages[i].items.push(package);
|
if (!added) {
|
||||||
count++;
|
packages.push(newlist[latlng]);
|
||||||
added = true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!added) {
|
|
||||||
packages.push(newlist[latlng]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// internal list is empty, so just copy
|
||||||
|
packages = newlist;
|
||||||
|
skipped = -1;
|
||||||
}
|
}
|
||||||
setStorage("packages", JSON.stringify(packages));
|
setStorage("packages", JSON.stringify(packages));
|
||||||
|
|
||||||
|
@ -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,12 +70,23 @@ 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");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
app.dialog.alert(resp.message, "Error");
|
app.dialog.alert(resp.message, "Error");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user