diff --git a/www/assets/js/notes.js b/www/assets/js/notes.js index fd9716e..89ead93 100644 --- a/www/assets/js/notes.js +++ b/www/assets/js/notes.js @@ -49,7 +49,7 @@ function isDeliverable(number, street) { }; } -function saveNote(id) { +function saveNote(id) { var exists = false; var index = -1; for (var i = 0; i < notes.length; i++) { @@ -63,6 +63,8 @@ function saveNote(id) { id: id, number: "", street: "", + zipcode: "", + route: "", notes: "", toggles: {} }; @@ -70,9 +72,31 @@ function saveNote(id) { note = notes[index]; } - note.number = $("input[name=number]").val(); - note.street = $("input[name=street]").val(); - note.notes = $("textarea#notes").val(); + note.number = $("input[name=number]").val().trim(); + note.street = $("input[name=street]").val().trim(); + note.zipcode = $("input[name=zipcode]").val().trim(); + note.route = $("input[name=route]").val().trim().toUpperCase(); + note.notes = $("textarea#notes").val().trim(); + + if (note.number == "") { + app.dialog.alert("Fill in an address number.", "Error"); + return false; + } + if (note.street == "") { + app.dialog.alert("Fill in a street.", "Error"); + return false; + } + if (note.zipcode == "") { + app.dialog.alert("Fill in a zip code.", "Error"); + return false; + } + if (note.route == "" || /^[CRHG][0-9]{3}$/.test(note.route) != true) { + app.dialog.alert("Fill in a route (examples: C123, R001, H050).", "Error"); + return false; + } + + setStorage("lastrouteid", note.route); + setStorage("zipcode", note.zipcode); for (i in SETTINGS.routenotetoggles) { var toggle = SETTINGS.routenotetoggles[i]; @@ -148,6 +172,12 @@ $(".view-main").on("click", ".deletenotebtn", function () { }); }); +$(".view-main").on("blur", "#notenumberinput,#notestreetinput", function () { + if (findNote($("#notenumberinput").val(), $("#notestreetinput").val()) != null) { + app.dialog.alert("A note already exists for that address.", "Warning"); + } +}); + function getToggleName(id) { for (i in SETTINGS.routenotetoggles) { if (SETTINGS.routenotetoggles[i].id == id) { @@ -157,10 +187,23 @@ function getToggleName(id) { return ""; } +function getToggleIcon(id) { + for (i in SETTINGS.routenotetoggles) { + if (SETTINGS.routenotetoggles[i].id == id) { + return SETTINGS.routenotetoggles[i].icon; + } + } + return ""; +} + Template7.registerHelper('notetogglename', function (key) { return getToggleName(key); }); +Template7.registerHelper('notetoggleicon', function (key) { + return getToggleIcon(key); +}); + Template7.registerHelper('newlinestobr', function (text) { return text.replace(/(?:\r\n|\r|\n)/g, '
'); }); \ No newline at end of file diff --git a/www/pages/add.html b/www/pages/add.html index a1e5050..f634fba 100644 --- a/www/pages/add.html +++ b/www/pages/add.html @@ -61,7 +61,7 @@
Street
- +
diff --git a/www/pages/myroute.html b/www/pages/myroute.html index ceef3e6..67c1ebc 100644 --- a/www/pages/myroute.html +++ b/www/pages/myroute.html @@ -13,6 +13,21 @@
Route Notes
+
+ + search + +
+ @@ -25,7 +40,7 @@
Notes
{{#if notes}} -
+
    {{#each notes}}
  • @@ -41,11 +56,11 @@ {{#if notes}}

    {{newlinestobr notes}}

    {{/if}} -
    +
      {{#each toggles}} {{#if this}} -
    • {{notetogglename @key}}
    • +
    • {{notetogglename @key}}
    • {{/if}} {{/each}}
    diff --git a/www/pages/myroute/editnote.html b/www/pages/myroute/editnote.html index 4aee8d5..f5a28ee 100644 --- a/www/pages/myroute/editnote.html +++ b/www/pages/myroute/editnote.html @@ -32,7 +32,7 @@
    Number
    - +
    @@ -41,11 +41,31 @@
    Street
    - +
  • +
  • +
    +
    +
    +
    ZIP
    +
    + +
    +
    +
    +
    +
    +
    Route
    +
    + +
    +
    +
    +
    +
  • Options
  • {{#each toggles}} diff --git a/www/routes.js b/www/routes.js index 6b1caea..0e042d4 100644 --- a/www/routes.js +++ b/www/routes.js @@ -107,7 +107,17 @@ var routes = [ }, on: { pageAfterIn: function () { - // TODO: searchbar + notessearchbar = app.searchbar.create({ + el: '.notes-list-searchbar', + searchContainer: '#noteslist', + searchIn: '.item-title', + backdrop: false, + on: { + search(sb, query, previousQuery) { + console.log(query, previousQuery); + } + } + }); } }, routes: [ @@ -131,6 +141,8 @@ var routes = [ id: uuid, number: "", street: "", + zipcode: inStorage("zipcode") ? getStorage("zipcode") : "", + route: inStorage("lastrouteid") ? getStorage("lastrouteid") : "", notes: "", toggles: {} } diff --git a/www/settings.js b/www/settings.js index 6c6a602..de8ecbd 100644 --- a/www/settings.js +++ b/www/settings.js @@ -322,19 +322,22 @@ var SETTINGS = { name: "Vacant", id: "vacant", preventsDelivery: true, - reason: "vacant" + reason: "vacant", + icon: "far fa-circle" }, { name: "Outside delivery radius", id: "undeliverable", preventsDelivery: true, - reason: "too far from the route" + reason: "too far from the route", + icon: "fas fa-route" }, { name: "On hold", id: "hold", preventsDelivery: true, - reason: "on hold" + reason: "on hold", + icon: "fas fa-pause-circle" } ], synckeyblacklist: [