Warn user when adding an address noted as vacant/on hold/etc, close #22
This commit is contained in:
parent
af5edd83ec
commit
7f215b850c
@ -11,6 +11,44 @@ if (inStorage("notes")) {
|
||||
setStorage("notes", "[]");
|
||||
}
|
||||
|
||||
function findNote(number, street) {
|
||||
for (i in notes) {
|
||||
if (notes[i].number == number && notes[i].street.toUpperCase() == street.toUpperCase()) {
|
||||
return notes[i];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function isDeliverable(number, street) {
|
||||
var note = findNote(number, street);
|
||||
|
||||
var ok = true;
|
||||
var reason = "";
|
||||
|
||||
if (note != null) {
|
||||
for (t in note.toggles) {
|
||||
if (!note.toggles.hasOwnProperty(t)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (tt in SETTINGS.routenotetoggles) {
|
||||
if (SETTINGS.routenotetoggles[tt].id == t) {
|
||||
if (SETTINGS.routenotetoggles[tt].preventsDelivery == true && note.toggles[t] == true) {
|
||||
ok = false;
|
||||
reason = SETTINGS.routenotetoggles[tt].reason;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
ok: ok,
|
||||
reason: reason
|
||||
};
|
||||
}
|
||||
|
||||
function saveNote(id) {
|
||||
var exists = false;
|
||||
var index = -1;
|
||||
|
@ -376,63 +376,82 @@ function addPackageByAddress(number, street, citystate, type, callback) {
|
||||
}, 750);
|
||||
}
|
||||
|
||||
if (type == "express") {
|
||||
if (getStorage("deadlinealarm_minutes") == null) {
|
||||
setStorage("deadlinealarm_minutes", 20);
|
||||
}
|
||||
var minutes = getStorage("deadlinealarm_minutes");
|
||||
app.dialog.create({
|
||||
title: 'Express Item',
|
||||
text: 'Set a reminder for ' + minutes + ' minutes before:',
|
||||
buttons: [
|
||||
{
|
||||
text: '10:30 AM',
|
||||
close: true
|
||||
},
|
||||
{
|
||||
text: '12:00 PM',
|
||||
close: true
|
||||
},
|
||||
{
|
||||
text: '3:00 PM',
|
||||
close: true
|
||||
},
|
||||
{
|
||||
text: "No reminder",
|
||||
color: "red",
|
||||
close: true
|
||||
}
|
||||
],
|
||||
verticalButtons: true,
|
||||
onClick: function (dialog, index) {
|
||||
deadline = new Date();
|
||||
switch (index) {
|
||||
case 0:
|
||||
deadline.setMinutes(30);
|
||||
deadline.setHours(10);
|
||||
break;
|
||||
case 1:
|
||||
deadline.setMinutes(00);
|
||||
deadline.setHours(12);
|
||||
break;
|
||||
case 2:
|
||||
deadline.setMinutes(00);
|
||||
deadline.setHours(12 + 3);
|
||||
break;
|
||||
case 3:
|
||||
default:
|
||||
deadline = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (deadline != false) {
|
||||
deadline = deadline.getTime() / 1000;
|
||||
}
|
||||
ajaxlookup();
|
||||
var prelookup = function () {
|
||||
if (type == "express") {
|
||||
if (getStorage("deadlinealarm_minutes") == null) {
|
||||
setStorage("deadlinealarm_minutes", 20);
|
||||
}
|
||||
}).open();
|
||||
var minutes = getStorage("deadlinealarm_minutes");
|
||||
app.dialog.create({
|
||||
title: 'Express Item',
|
||||
text: 'Set a reminder for ' + minutes + ' minutes before:',
|
||||
buttons: [
|
||||
{
|
||||
text: '10:30 AM',
|
||||
close: true
|
||||
},
|
||||
{
|
||||
text: '12:00 PM',
|
||||
close: true
|
||||
},
|
||||
{
|
||||
text: '3:00 PM',
|
||||
close: true
|
||||
},
|
||||
{
|
||||
text: "No reminder",
|
||||
color: "red",
|
||||
close: true
|
||||
}
|
||||
],
|
||||
verticalButtons: true,
|
||||
onClick: function (dialog, index) {
|
||||
deadline = new Date();
|
||||
switch (index) {
|
||||
case 0:
|
||||
deadline.setMinutes(30);
|
||||
deadline.setHours(10);
|
||||
break;
|
||||
case 1:
|
||||
deadline.setMinutes(00);
|
||||
deadline.setHours(12);
|
||||
break;
|
||||
case 2:
|
||||
deadline.setMinutes(00);
|
||||
deadline.setHours(12 + 3);
|
||||
break;
|
||||
case 3:
|
||||
default:
|
||||
deadline = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (deadline != false) {
|
||||
deadline = deadline.getTime() / 1000;
|
||||
}
|
||||
ajaxlookup();
|
||||
}
|
||||
}).open();
|
||||
} else {
|
||||
ajaxlookup();
|
||||
}
|
||||
}
|
||||
|
||||
var deliverable = isDeliverable(number, street);
|
||||
|
||||
if (deliverable.ok) {
|
||||
prelookup();
|
||||
} else {
|
||||
ajaxlookup();
|
||||
app.dialog.confirm(
|
||||
"A route note says this address is " + deliverable.reason + ". Add item anyways?",
|
||||
"Confirm",
|
||||
function () {
|
||||
prelookup();
|
||||
},
|
||||
function () {
|
||||
// cancel
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -305,15 +305,21 @@ var SETTINGS = {
|
||||
routenotetoggles: [
|
||||
{
|
||||
name: "Vacant",
|
||||
id: "vacant"
|
||||
id: "vacant",
|
||||
preventsDelivery: true,
|
||||
reason: "vacant"
|
||||
},
|
||||
{
|
||||
name: "Outside delivery radius",
|
||||
id: "undeliverable"
|
||||
id: "undeliverable",
|
||||
preventsDelivery: true,
|
||||
reason: "too far from the route"
|
||||
},
|
||||
{
|
||||
name: "On hold",
|
||||
id: "hold"
|
||||
id: "hold",
|
||||
preventsDelivery: true,
|
||||
reason: "on hold"
|
||||
}
|
||||
],
|
||||
synckeyblacklist: [
|
||||
|
Loading…
x
Reference in New Issue
Block a user