From afbf8b6122c50bfacf93efadcde0abf5050efa74 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Tue, 12 Nov 2019 21:36:28 -0700 Subject: [PATCH] Add package tracking (close #23), add large package and signature item types --- www/assets/images/largebox.png | Bin 0 -> 1085 bytes www/assets/images/largebox.svg | 63 ++++++++++++++ www/assets/images/largeboxes.png | Bin 0 -> 1045 bytes www/assets/images/largeboxes.svg | 63 ++++++++++++++ www/assets/images/signature.png | Bin 0 -> 1966 bytes www/assets/images/signature.svg | 63 ++++++++++++++ www/assets/images/signatures.png | Bin 0 -> 2079 bytes www/assets/images/signatures.svg | 74 ++++++++++++++++ www/assets/js/map_leaflet.js | 3 +- www/assets/js/packages.js | 56 ++++++------- www/assets/js/toolbox_track.js | 125 ++++++++++++++++++++++++++++ www/pages/home.html | 10 ++- www/pages/manage.html | 24 +----- www/pages/toolbox.html | 41 +++++++++ www/pages/toolbox/track.html | 48 +++++++++++ www/pages/toolbox/trackinginfo.html | 70 ++++++++++++++++ www/routes.js | 22 ++++- www/settings.js | 41 ++++++++- 18 files changed, 649 insertions(+), 54 deletions(-) create mode 100644 www/assets/images/largebox.png create mode 100644 www/assets/images/largebox.svg create mode 100644 www/assets/images/largeboxes.png create mode 100644 www/assets/images/largeboxes.svg create mode 100644 www/assets/images/signature.png create mode 100644 www/assets/images/signature.svg create mode 100644 www/assets/images/signatures.png create mode 100644 www/assets/images/signatures.svg create mode 100644 www/assets/js/toolbox_track.js create mode 100644 www/pages/toolbox.html create mode 100644 www/pages/toolbox/track.html create mode 100644 www/pages/toolbox/trackinginfo.html diff --git a/www/assets/images/largebox.png b/www/assets/images/largebox.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7aba4149ec44d83a0c4c31b11291446afaf041 GIT binary patch literal 1085 zcmV-D1j74?P)K~!jg?V7)9<7ODgzpo_Azpjq2*bW6JA%#LSWQeC0Iy6&< zLf1IZspre+to;i@p*T(GwSz-@OQvjvPHiE>^`KKc#1J^z8WJZR;#iR^*_JH5PlvNj z>7C=(SNq}=eL%ze=;8Z5UkSZGcm??Q_}l~=C7Fm~0OTQQHe;+gL?;3uI7G)`j9H?! z2^k?G>H7NmC&t+Oj^nt4@?He|h!G;1wJhuFX0!Rn z-rnAWVzKzpvaCOKUH@j%hK3cEDVNI{ZW#B`okwiju3DC5Zf|e5QmIt`UMiKMLZM)r zrfJ!>T^%-$0HAWYtPxS>wHwK1vs5S)oMbXNFejNzQlU_Avf1qP8X5OBiV=U*nl^kR z(}r(k+7LCu85?O=JQgHL0st-w-g`&fv_K<`8=+o%ad8p5ySt{MC>_xb9LEW*t*wP^+Xeurs)~bygO;kQZBY%^bpxB5 zoA)Y}NS zC`9z()z#IPvMkR4fMFQ2=Xoy-W3gE5ZB5gji3$e-fzV50!BI4#(dfdzW1i>9hGG1w zX_^NBuIttliNxp3G|l?@`uhEgi;I4;<2X1zKJK?8kqDNSmPGsSQ!16f`SVXjk|eCG ztc + diff --git a/www/assets/images/largeboxes.png b/www/assets/images/largeboxes.png new file mode 100644 index 0000000000000000000000000000000000000000..58b3fb67e99027ee83bf99176b6b0dfec29bd6e7 GIT binary patch literal 1045 zcmV+w1nT>VP)tC2)3Zx|wSA~KCq?4|=B2+0- zq(~G*6)BOBXiOxU6#M~^QhmI5=RJ*P_RScGh=_O@bW;a2rvRt}>N64jIiN-$`X*AV)xK6$ z^*!6R-GRi3NZ0jNGMRixMCC!WLc`2i%d*<4sxp9qe}zK9VdhW%>$s&pHr=*u-*pFC zj4st`RRxe9ir7o&m&lz&8P&whJPF`INVf)n--t-`c8nwuW`1N@*0+^Pg~RxzQYlI# z5l%FI?sMqU{nK|2gtdC@m2qEIOZQsTZj^hXbdT-yo z+3Zmw<3^OoxDh2XZbXTU8}~X9L3HB{I5b4W0D7y{ThBqy9j_Ie*NR3Wde&?(btHDc4 zOE^3{{5_M&d=xYY*LAp8pzBuHw4xqqVIzS(dl%qJ!=XfL>P@~wc5I&>j@G4@uK1W zZ1zzHFf0^ie(U1m;&WM+Cjh`SP1*PTYsXk7lX+0D*MAKvtg33fk1ZBPBbiLT(QEU4 zUp7ti$9lc)1AymwwOlUuDOr|PTU}k9JUu<_4t5*|$H&Lrb|R6${QP{-`MVU0MF{bH zt4NZB#l^+Y8Yd?wxH>QZU}0eanx=KzhGAfTfBz!-vX2{*=Xq`>lNog!w`O8u0>1Bi zRIAlKi^XF3R;x9fe?R|clF6jzy6!ds05c~rocsAGxFn+XzYmLuc(wTp`tW%_RPozt P00000NkvXXu0mjfJ80|> literal 0 HcmV?d00001 diff --git a/www/assets/images/largeboxes.svg b/www/assets/images/largeboxes.svg new file mode 100644 index 0000000..7aa1767 --- /dev/null +++ b/www/assets/images/largeboxes.svg @@ -0,0 +1,63 @@ + + diff --git a/www/assets/images/signature.png b/www/assets/images/signature.png new file mode 100644 index 0000000000000000000000000000000000000000..7c03943cb9bbfab25fc0234ab023129204c98420 GIT binary patch literal 1966 zcmV;f2T}NmP)&RM{EFpEEPy3^3sA0J>eiP~-xd{N&~9O8 zU14n+jYJfQ3PP2{YO6`R#l#QQ53NaQn_yxTld7ThCE1#dO`}HrP;K20+SEXlpGsDdM`=NITECXB|2Kr(D$w}_L=Xsv<{PLW8&)jo|=o|fii2+#Z_xpcN zM9YbYB@)bPwR+Rj)3*XxBZT-J5&a`GGxHaWG4G6IJBcisraeA+@?_@o=g&=v1e!N* z9^JTcV^BYRtGBoJy_+|0mL5HNv=%@aW2}1y@|{@i?d?NEghZRoX2a0XkVZrVpz^_k z2Yw>L?%lg1Qp&FYyqio8Q(s@7HJJl+c6OQ?8ylTc%D*QQCZXwMRM)OuGc`3ey(Ojm zTe4tg1%!y`>eZ{JrluxmvS4NngebW%vkF3#JeXMrAxaL+oPZGh52mH1B?j|$qVeVo zgox{YC9#y}#G2rX(|D`bAb&)(_(K0VtDF{-wIQI^)r!MlpN6ciL>q@<)6@+mAVr0dtOnI7F9GDw8AwS<2~<@T0KTUu_`a&DqNJo`ob5!F8G#_0*>%Kd+pu8+6h)B$zN;rz zp{lA_zkdCMK01shg!owuW&~m`KuSwXW0lyXCse5@id?sD-ITt$xw-IoJg)&X($_Vc zATF0H2C-3xaI2~+ii?X4`8PE+g@q9R0gyLmATE~+oO21_eI4RM&bgdyI*o1(4GrNj z_rzR)l$V!72q9t+!^6WLDT<;QnNCE6{rmSvq?8^2g>fNf1EjpX9IC2v0Hr#_7DZ9C zwQJWJ^53^_-_#Jv2HCiA;~0o=I9%oP`Q)lqs|@+?+O;bpgzy0P)}#>01lhD{Qw(Cm zXo!_7R~quKt*tcC&a(oC^T!bcpZ!d_K8i#R@~??Afy? ztV0wUf|w4-;lqc6obv%iQ7#A}23lHLLKE3mR#w8}@%)vD2tcLJ=aWT6MTW+ytE-z{ zC8h&nv)Leo&;TsdlY3hTq1kLUBOt9OPMny|J@M7FA;{n^N>x=Ag+ignjIjX#X2w{5 zFc|#2s;bJ+AONPc*|~FP^xU~~KD*ss${6c06nK;jfz;R6OQ+L$Q9nIOM3kMKePQq3 zy@D}D1qB6^pC5mnGNPKA8k|3W-fy?t%SP{vOh;3`SlMhg+PrzQnTS3E-~@0A!0(CZ zGq>A)!Q=60DJdzEF=h@1gK5W(9ZT!$>odGxwqwT*baZt1bci?p7&IlwmMvT8_3PK4 zr>Ccja5#K`F=mZMquVSN%lSwo^4qkuv_CM${z*gx;5+T@?SHy``}SfZgKyuy9TzWN z^xN%r7h~*SZwfIXh{NHaBS(%5FJ8QO$nADhc6Ro!h=>$LIndeJNp*E~jYM?bY&L(Q z1AItCsf@8(04l1gs=f#YgOOOgnwpy6vSrK0?5bES7PfWk){qYIG7$(OivQHQd-pCM z92`6cpgFdn0a)qrcw|~y8aU^J0G#^uk9&K2`Lk!wgr;df(XZtJDA$kQ)8oWz-%c1{ zGLV6R0Wta!2%tm=F|cjhwg?g7^5x4~AP_hLAXQb>R}~c%Sh#Q@yk4&s3Wa_MVD>jP z;(;_bH;1H@((Cnh3nBbHJw3d-x;h%`FDNKLe}BIwrBu(JJv$h?URYR&J9qBzp`oEc zpU>Ch^?JLFG|u_WL^)V%Yb#ElK0U4@D=UkfPA93VN`Ak8T))X=BD>vAobz#gR;!ir z^2WdW#FM^3*XwjT3#Xm^C`~v8IOlPbj42w8PS_s^1nAW(W6OcrJlQ6ran0%Xk(rb! zKR-V(mkBIbuz(_w$dsQIrjn(;zCO^^)s@=S)ivwY$;`~8GiT1o`Sa)hCec_7z!JaT z{|ONlQG$P}nXaPIsMq0ebXY8wPiJ%7Z!{bFFYF + diff --git a/www/assets/images/signatures.png b/www/assets/images/signatures.png new file mode 100644 index 0000000000000000000000000000000000000000..45aac699dfefe20854ead5747d7e4435bba2b374 GIT binary patch literal 2079 zcmV+)2;ldLP)5sSr`h~@#v1K^A! z)@K0v0IUJf$QZj8hmWWlHwY1ZT~*c3tE#F5MN!PL1j)(Cp`4tYUjb2#J0f>0TA#uF70{pjGqg8={(>)5?}w?RbZMD)Rl6DO3^)Ku!|=+OLr|Bn-upD6}g zUeh#7B7$~yb|O1F+tJe=*@~ z$53ZyCzdW<>hOBK9~03r#+W~r^%g}@KJj|J-#>Qjm>7vfUYK;d-PpBj*Z%+{3}pTK z^+IlLZXnt`$8kJ>*#Q1MbdHEDk|cd%wOWe;fxzA5dwVAmV@!EG9+Z`peMgd{u23lC8_m{cvxS^a=lg^IbiY(pJ$3#1_4jgfbA?bS zgu1#q=J)&EwY9ZZiD+p;8r)d&`FvQoaG^MJ=1kFMvyE!o)YPOnolbt>HxXF?B!@zw z^9vR%$Vp92MSFWY0HD6Uo^c%KK5*c`Nrc1UsFzEkF0EL`y?giii0GaEm{wVq&ug0Y zB@v|sgTc*Do;=YqGBO731wo)dAmD#3w%-BS?RF$3C0T*z5Q?JwrKP21<<6Zu-_kU# z&1$uNmYkgYlWW(m`7$yxz!*byb+zvI`#*hcDq^?Wsj;z9lO*Xh5pl9CUpRN}oMyFJ z2>_LrmWEYT9jr`OSC?8}U$0A&bd`ws*8+s&IBITg))YlKNkqIPNf*zaJ?pbrEHBuV zm6e6Q3Zts(--zh>{WRGi9LLe6OP4fRmh1Z=8qb_LGYn#2Y~Q{;q^jx@BAU_P%mDze zWY>x&p67Al!UbPeR@Ql^)455O<%Y(_#&2%eut6BwoB@C_hV1O@a3m6G2hhhDqru6^ zstC{X)Y8(TNs{y@BI5ch;g41c#uyzvdekq=^5;b47)Ci6Ac7#!<;#~fNs>-kfO$;KDAZD|fYHDhHe!o9((+UBo}ZSLm36S9qGH(LkTHgEINS+f zL3eleJ0&G0ykQu_d@;sw=+L1+K|#SCm&>(+F*fQ!6G$M)=FOWGm&^4rfUntXwgYR| zt~K*KAJtydwD3p}08mv`^{lY4(Cc(MS1`u3@x)I^A4y6|!t&+ItpFN`sDUw-7YGFY zQCV5J)Mm43x~`i&9*-~{UsY9Afuf?KyDpdO-SI*I2?ANOW)1v)e=EmvQvfVC3?t9& zcGu?T=aVRkzcUPDYJPtHhYueX#*G{Axm>R0j4?Hq93}*^b?eq}adELS zfBt-%+wHChhr{bTIywxe)A@tsAPV-e8O=@#GUXh%Czp27^{bQN9-ng&cOf{k`(? za;~kd4K+12C@wC(2w?V>En6JHU=U4BO^5Av`wtDn`0q&mIF1XNOr|1T*A0&2e#sd7 z@|A!nih@Op7743Xtt#~Se7JJu3LZax3;@`%V+Vin;>Cpz9z4L^yLSNqvuDqCtX#Qr z@vK?1hLz!~+OubmpX0a+05O3~`Z0d!xPSkC9}&GB69mTSBf74`WHJrBEqG?L*+$;@ z6DW(t!T^L~UN_ogPfrgbk%*m$W&&s_DJgk&>((u+uIusUIjZK&nPa4+qyzvwh;=Os zhr?lu#S--k)V_WDo|TrC{@LYn6%f&PpFVxM)i8{BKD~`8j^iG=T&|B8W9>079_=1M z|B3bX?c1uND78fNQUDU6F)IQ9q9~%GqCzh!DuU1FYc~ud=4;Dhv4q`j_g2Q(zv53f zy2b@EAcw<&%*;$onKC8jK$Vr1T4rYE8phaPV_rNC#neZ9J|Ax0yct&@Ns?mTiDJ=f z^`>zmG6ezw-;5bEUTzSR3F+zS764r@D~1KYZ(CbiKdh^(a|DCIgja|$hSjTAs}6_b z?~E~TqWurX0RSTU7JwB1qCe8buLyu!08TQ-hQD=tqc?iJ^?&iRiiil>Z~XuO002ov JPDHLkV1if?@@N16 literal 0 HcmV?d00001 diff --git a/www/assets/images/signatures.svg b/www/assets/images/signatures.svg new file mode 100644 index 0000000..357fd0e --- /dev/null +++ b/www/assets/images/signatures.svg @@ -0,0 +1,74 @@ + + diff --git a/www/assets/js/map_leaflet.js b/www/assets/js/map_leaflet.js index 7447cc4..1899a6a 100644 --- a/www/assets/js/map_leaflet.js +++ b/www/assets/js/map_leaflet.js @@ -17,7 +17,7 @@ function leafletMap() { if (localStorage.getItem("mapsource") == null) { localStorage.setItem("mapsource", "liberty"); } - + $("#mapbox").css("background-color", SETTINGS.maptileurls[localStorage.getItem("mapsource")].bgcolor); L.tileLayer(SETTINGS.maptileurls[localStorage.getItem("mapsource")].url, { @@ -65,6 +65,7 @@ function leafletMap() { // of the loop, or something like that (function (datai) { var iconName = getMapIconForItems(datai.items); + console.log(iconName); var icon = L.icon({ iconUrl: "assets/images/" + iconName + ".png", diff --git a/www/assets/js/packages.js b/www/assets/js/packages.js index 16a9360..90a71c5 100644 --- a/www/assets/js/packages.js +++ b/www/assets/js/packages.js @@ -35,25 +35,12 @@ function getPackage(packageid) { } } -function getIconForType(packagetype) { - switch (packagetype) { - case "package": - return "fas fa-box"; - case "letter": - return "fas fa-envelope"; - case "express": - return "fas fa-shipping-fast"; - default: - return "fas fa-box"; - } +function getIconForType(type) { + return SETTINGS.itemtypes[type].icon; } function getMapIconForItems(items) { - var types = { - package: 0, - letter: 0, - express: 0 - }; + var types = {}; var deliveredcount = 0; var type = "package"; for (var i = 0; i < items.length; i++) { @@ -63,27 +50,36 @@ function getMapIconForItems(items) { deliveredcount++; continue; } + if (isNaN(types[items[i].type])) { + types[items[i].type] = 0; + } types[items[i].type]++; } + if (deliveredcount == items.length) { return "check"; } - if (types.letter == 0 && types.express == 0) { - if (types.package > 1) { - return "boxes"; + + item_types = 0; + icon = "multiple-items"; + // Count how many types we have, and set/overwrite the icon assuming we + // only have that type. If we end up with multiple types, we return that + // icon instead of a specific one. + console.log(types); + for (var type in types) { + console.log(type); + item_types++; + if (types[type] == 1) { + icon = SETTINGS.itemtypes[type].mapicon; + } else { + icon = SETTINGS.itemtypes[type].pluralmapicon; } - return "box"; + console.log(icon); } - if (types.package == 0 && types.express == 0) { - if (types.letter > 1) { - return "envelopes"; - } - return "envelope"; + if (item_types > 1) { + return "multiple-items"; } - if (types.package == 0 && types.letter == 0) { - return "express"; - } - return "multiple-items"; + return icon; } function addPackage(address, latitude, longitude, type, callback) { @@ -281,7 +277,7 @@ function addPackageByAddress(address, citystate, type, callback) { app.dialog.alert("There was a network issue while finding the address. Please try adding the item again.", "Error"); } }); - + // Open a loading message if there's a delay finding the address setTimeout(function () { if (!requestfinished) { diff --git a/www/assets/js/toolbox_track.js b/www/assets/js/toolbox_track.js new file mode 100644 index 0000000..2b3c2a6 --- /dev/null +++ b/www/assets/js/toolbox_track.js @@ -0,0 +1,125 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +function locationArrayToString(location) { + var locarray = []; + if (location.street != "" && location.street != null) { + locarray.push(location.street); + } + if (location.city != "" && location.city != null) { + locarray.push(location.city); + } + if (location.state != "" && location.state != null) { + locarray.push(location.state); + } + if (location.zip != "" && location.zip != null) { + locarray.push(location.zip); + } + if (location.country != "" && location.country != "US" && location.country != null) { + locarray.push(location.country); + } + return locarray.join(", "); +} + +function timestampToDateTimeString(timestamp) { + var date = new Date(timestamp * 1000); + + var pm = date.getHours() >= 12; + var hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours(); + var minutes = date.getMinutes(); + var time = hours + ":" + minutes + " " + (pm ? "PM" : "AM"); + + return date.toLocaleDateString() + " " + time; +} + +function trackingStatusToNiceString(status, icon) { + if (typeof icon == 'undefined' || icon !== true) { + var icon = false; + } + switch (status) { + case "UNKNOWN": + return (icon ? ' ' : '') + "Unknown"; + case "PRE_TRANSIT": + return (icon ? ' ' : '') + "Pre-transit"; + case "TRANSIT": + return (icon ? ' ' : '') + "In Transit"; + case "DELIVERED": + return (icon ? ' ' : '') + "Delivered"; + case "RETURNED": + return (icon ? ' ' : '') + "Returned"; + case "FAILURE": + return (icon ? ' ' : '') + "Failure"; + default: + return status; + } +} + +function openTrackingHistory(trackingcode) { + var requestfinished = false; + var trackingdialogopen = false; + $.ajax({ + url: SETTINGS.trackingapi, + dataType: 'json', + data: { + code: trackingcode + }, + timeout: 15 * 1000, + success: function (resp) { + if (trackingdialogopen) { + app.dialog.close(); + trackingdialogopen = false; + } + requestfinished = true; + if (resp.status == "OK") { + var infocontext = resp; + + infocontext.current.location.display = locationArrayToString(infocontext.current.location); + infocontext.current.date = timestampToDateTimeString(infocontext.current.date); + infocontext.current.status = trackingStatusToNiceString(infocontext.current.status, true); + + for (var i = 0; i < infocontext.history.length; i++) { + infocontext.history[i].location.display = locationArrayToString(infocontext.history[i].location); + infocontext.history[i].date = timestampToDateTimeString(infocontext.history[i].date); + infocontext.history[i].status = trackingStatusToNiceString(infocontext.history[i].status, true); + } + // TODO: format timestamps as local time + router.navigate("/toolbox/track/info", { + context: infocontext + }); + } else { + playSound("error"); + app.dialog.alert(resp.message, "Error"); + } + }, + error: function (jqXHR, status, errorThrown) { + if (trackingdialogopen) { + app.dialog.close(); + searchingdialogopen = false; + } + requestfinished = true; + playSound("error"); + app.dialog.alert("There was a network issue while tracking the item. Please try again.", "Error"); + } + }); + + // Open a loading message if there's a delay + setTimeout(function () { + if (!requestfinished) { + app.dialog.preloader("Tracking..."); + trackingdialogopen = true; + } + }, 750); +} + +$("#trackbtn").click(function () { + var code = $("input[name=trackingcode]").val(); + + if (code != "" && code.length > 5) { + openTrackingHistory(code); + } else { + app.dialog.alert("That's not a valid tracking code.", "Error"); + } +}); \ No newline at end of file diff --git a/www/pages/home.html b/www/pages/home.html index 28972bf..34b1b67 100644 --- a/www/pages/home.html +++ b/www/pages/home.html @@ -27,7 +27,7 @@ > -
  • Item Type
  • + {{#each itemtypes}}
  • -
  • -
  • - -
  • -
  • -
  • + {{/each}} diff --git a/www/pages/toolbox.html b/www/pages/toolbox.html new file mode 100644 index 0000000..b140372 --- /dev/null +++ b/www/pages/toolbox.html @@ -0,0 +1,41 @@ + + +
    + + + +
    + +
    +
    \ No newline at end of file diff --git a/www/pages/toolbox/track.html b/www/pages/toolbox/track.html new file mode 100644 index 0000000..4b5525f --- /dev/null +++ b/www/pages/toolbox/track.html @@ -0,0 +1,48 @@ + + +
    + + + +
    +
    +
      +
    • +
      +
      Tracking Code
      +
      + + +
      +
      +
    • + +
    • + Track +
    • +
    +
    + +
    + Compatible with USPS, UPS, FedEx, and DHL tracking codes. +
    +
    + + +
    \ No newline at end of file diff --git a/www/pages/toolbox/trackinginfo.html b/www/pages/toolbox/trackinginfo.html new file mode 100644 index 0000000..116bb05 --- /dev/null +++ b/www/pages/toolbox/trackinginfo.html @@ -0,0 +1,70 @@ + + +
    + + + +
    +
    +
      +
    • Current Status
    • + +
    • +
      +
      + {{#with current}} +
      +
      {{status}}
      +
      {{date}}
      +
      +
      {{details}}
      +
      {{location.display}}
      + {{/with}} +
      {{carrier.name}} | {{service.name}}
      +
      +
      +
    • +
    • Item Info
    • +
    • +
      +
      +
      Tracking Code: {{code}}
      +
      Carrier: {{carrier.name}} | {{service.name}}
      +
      +
      +
    • +
    • History
    • + {{#each history}} +
    • +
      +
      +
      +
      {{status}}
      +
      {{date}}
      +
      +
      {{details}}
      +
      {{location.display}}
      +
      +
      +
    • + {{else}} +
    • + No item history found. +
    • + {{/each}} +
    +
    +
    +
    \ No newline at end of file diff --git a/www/routes.js b/www/routes.js index dfb30e2..4f516c3 100644 --- a/www/routes.js +++ b/www/routes.js @@ -27,7 +27,12 @@ var routes = [ }, { path: '/manage', - url: './pages/manage.html', + templateUrl: './pages/manage.html', + options: { + context: { + itemtypes: SETTINGS.itemtypes + } + }, name: 'manage', on: { pageAfterIn: function () { @@ -83,6 +88,21 @@ var routes = [ } } }, + { + path: '/toolbox', + url: './pages/toolbox.html', + name: 'toolbox' + }, + { + path: '/toolbox/track', + url: './pages/toolbox/track.html', + name: 'track' + }, + { + path: '/toolbox/track/info', + templateUrl: './pages/toolbox/trackinginfo.html', + name: 'trackinginfo' + }, { path: '/credits', url: './pages/credits.html', diff --git a/www/settings.js b/www/settings.js index 52dec58..ef0f6a5 100644 --- a/www/settings.js +++ b/www/settings.js @@ -40,5 +40,44 @@ var SETTINGS = { file: "alert.sonar.mp3" } }, - geocodeapi: "https://apis.netsyms.net/packagehelper/geocode.php" + itemtypes: { + package: { + id: "package", + name: "Package", + icon: "fas fa-box fa-fw", + mapicon: "box", + pluralmapicon: "boxes", + selected: true + }, + letter: { + id: "letter", + name: "Letter", + icon: "fas fa-envelope fa-fw", + mapicon: "envelope", + pluralmapicon: "envelopes" + }, + signature: { + id: "signature", + name: "Signature", + icon: "fas fa-file-signature fa-fw", + mapicon: "signature", + pluralmapicon: "signatures" + }, + large: { + id: "large", + name: "Large Package", + icon: "fas fa-pallet fa-fw", + mapicon: "largebox", + pluralmapicon: "largeboxes" + }, + express: { + id: "express", + name: "Express", + icon: "fas fa-shipping-fast fa-fw", + mapicon: "express", + pluralmapicon: "multiple-items" + } + }, + geocodeapi: "https://apis.netsyms.net/packagehelper/geocode.php", + trackingapi: "https://apis.netsyms.net/packagehelper/track.php" }