|
|
|
@ -10,7 +10,73 @@ if (localStorage.getItem("packages") != null) {
|
|
|
|
|
packages = JSON.parse(localStorage.getItem("packages"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Count how many items are still undelivered for an address.
|
|
|
|
|
* @param {type} address An item in the packages array.
|
|
|
|
|
* @returns {Number}
|
|
|
|
|
*/
|
|
|
|
|
function getUndeliveredCount(address) {
|
|
|
|
|
var undelivered = 0;
|
|
|
|
|
for (var i = 0; i < address.items.length; j++) {
|
|
|
|
|
if (!address.items[i].delivered) {
|
|
|
|
|
undelivered++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return undelivered;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function addPackage(address, latitude, longitude) {
|
|
|
|
|
var added = false;
|
|
|
|
|
for (var i = 0; i < packages.length; i++) {
|
|
|
|
|
if (packages[i].coords == [latitude, longitude] && packages[i].address == address) {
|
|
|
|
|
packages[i].items.push({
|
|
|
|
|
address: address,
|
|
|
|
|
delivered: false,
|
|
|
|
|
type: "package",
|
|
|
|
|
id: uuidv4()
|
|
|
|
|
});
|
|
|
|
|
added = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!added) {
|
|
|
|
|
packages.push({
|
|
|
|
|
coords: [
|
|
|
|
|
latitude,
|
|
|
|
|
longitude
|
|
|
|
|
],
|
|
|
|
|
id: uuidv4(),
|
|
|
|
|
address: address,
|
|
|
|
|
items: [
|
|
|
|
|
{
|
|
|
|
|
address: address,
|
|
|
|
|
delivered: false,
|
|
|
|
|
type: "package",
|
|
|
|
|
id: uuidv4()
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
localStorage.setItem("packages", JSON.stringify(packages));
|
|
|
|
|
|
|
|
|
|
playSound("ok");
|
|
|
|
|
|
|
|
|
|
app.toast.show({
|
|
|
|
|
text: 'Package Added!<br><span style="font-size: 80%;">' + address + "</span>",
|
|
|
|
|
position: "bottom",
|
|
|
|
|
destroyOnClose: true,
|
|
|
|
|
closeTimeout: 1000 * 3
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (map != null) {
|
|
|
|
|
reloadMap();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function markDelivered(id, delivered) {
|
|
|
|
|
for (var i = 0; i < packages.length; i++) {
|
|
|
|
|
for (var j = 0; j < packages[i].items.length; j++) {
|
|
|
|
|
if (packages[i].items[j].id == id) {
|
|
|
|
|
if (typeof delivered == 'undefined') {
|
|
|
|
|
if (typeof packages[id].delivered == "undefined" || packages[id].delivered == false) {
|
|
|
|
|
delivered = true;
|
|
|
|
@ -18,10 +84,15 @@ function markDelivered(id, delivered) {
|
|
|
|
|
delivered = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
packages[i].items[j].delivered = delivered;
|
|
|
|
|
if (delivered) {
|
|
|
|
|
packages[id].deliverytimestamp = Date.now();
|
|
|
|
|
packages[i].items[j].deliverytimestamp = Date.now();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
packages[id].delivered = delivered;
|
|
|
|
|
|
|
|
|
|
localStorage.setItem("packages", JSON.stringify(packages));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -40,18 +111,32 @@ function confirmDeletePackage(id) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function deletePackage(id) {
|
|
|
|
|
packages.splice(id, 1);
|
|
|
|
|
for (var i = 0; i < packages.length; i++) {
|
|
|
|
|
for (var j = 0; j < packages[i].items.length; j++) {
|
|
|
|
|
if (packages[i].items[j].id == id) {
|
|
|
|
|
packages[i].items.splice(j, 1);
|
|
|
|
|
|
|
|
|
|
if (packages[i].items.length == 0) {
|
|
|
|
|
packages.splice(i, 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
localStorage.setItem("packages", JSON.stringify(packages));
|
|
|
|
|
loadPackageList();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function countRemainingPackages() {
|
|
|
|
|
var undelivered = 0;
|
|
|
|
|
for (var i = 0; i < packages.length; i++) {
|
|
|
|
|
if (packages[i].delivered != true) {
|
|
|
|
|
for (var j = 0; j < packages[i].items.length; j++) {
|
|
|
|
|
if (packages[i].items[j].delivered != true) {
|
|
|
|
|
undelivered++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return undelivered;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|