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", "[]");
|
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) {
|
function saveNote(id) {
|
||||||
var exists = false;
|
var exists = false;
|
||||||
var index = -1;
|
var index = -1;
|
||||||
|
@ -376,63 +376,82 @@ function addPackageByAddress(number, street, citystate, type, callback) {
|
|||||||
}, 750);
|
}, 750);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == "express") {
|
var prelookup = function () {
|
||||||
if (getStorage("deadlinealarm_minutes") == null) {
|
if (type == "express") {
|
||||||
setStorage("deadlinealarm_minutes", 20);
|
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();
|
|
||||||
}
|
}
|
||||||
}).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 {
|
} 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: [
|
routenotetoggles: [
|
||||||
{
|
{
|
||||||
name: "Vacant",
|
name: "Vacant",
|
||||||
id: "vacant"
|
id: "vacant",
|
||||||
|
preventsDelivery: true,
|
||||||
|
reason: "vacant"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Outside delivery radius",
|
name: "Outside delivery radius",
|
||||||
id: "undeliverable"
|
id: "undeliverable",
|
||||||
|
preventsDelivery: true,
|
||||||
|
reason: "too far from the route"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "On hold",
|
name: "On hold",
|
||||||
id: "hold"
|
id: "hold",
|
||||||
|
preventsDelivery: true,
|
||||||
|
reason: "on hold"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
synckeyblacklist: [
|
synckeyblacklist: [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user