From 579a4d2032a991aeaa1ede5bfa981e3331d83c2e Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sat, 6 Feb 2021 03:37:23 -0700 Subject: [PATCH] Add paid redelivery of USPS packages (Pick Up and Redeliver) --- license-credits.md | 78 +++++++++ package-lock.json | 108 ++++++------- package.json | 15 +- scripts/remove_bloat.sh | 7 + www/assets/css/app.css | 42 +++++ www/assets/images/3849_back.png | Bin 0 -> 10072 bytes www/assets/images/3849_front.png | Bin 0 -> 14177 bytes www/assets/images/signature-line.svg | 73 +++++++++ www/assets/js/noticeslip.js | 228 +++++++++++++++++++++++++++ www/assets/js/util.js | 6 + www/index.html | 2 + www/package-lock.json | 7 +- www/package.json | 3 +- www/pages/addresscode.html | 2 +- www/pages/credits.html | 78 +++++++++ www/pages/home.html | 2 +- www/pages/noticeslip.html | 120 ++++++++++++++ www/pages/noticeslipsuccess.html | 35 ++++ www/routes.js | 20 +++ www/settings.js | 4 +- 20 files changed, 760 insertions(+), 70 deletions(-) create mode 100644 www/assets/images/3849_back.png create mode 100644 www/assets/images/3849_front.png create mode 100644 www/assets/images/signature-line.svg create mode 100644 www/assets/js/noticeslip.js create mode 100644 www/pages/noticeslip.html create mode 100644 www/pages/noticeslipsuccess.html diff --git a/license-credits.md b/license-credits.md index 63d7272..a7fb842 100644 --- a/license-credits.md +++ b/license-credits.md @@ -1066,6 +1066,32 @@ THE SOFTWARE. ----- +The following software may be included in this product: signature_pad. A copy of the source code may be downloaded from https://github.com/szimek/signature_pad.git. This software contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Szymon Nowak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + The following software may be included in this product: ssr-window. A copy of the source code may be downloaded from git+https://github.com/nolimits4web/ssr-window.git. This software contains the following license and notice below: MIT License @@ -3494,6 +3520,32 @@ The Apache Software Foundation (http://www.apache.org/). ----- +The following software may be included in this product: cordova-plugin-document-scanner. A copy of the source code may be downloaded from https://github.com/NeutrinosPlatform/cordova-plugin-document-scanner. This software contains the following license and notice below: + +MIT License + +Copyright (c) 2018 NeutrinosPlatform + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + The following software may be included in this product: cordova-plugin-nativestorage. A copy of the source code may be downloaded from https://github.com/TheCocoaProject/cordova-plugin-nativestorage. This software contains the following license and notice below: Apache License @@ -5701,6 +5753,32 @@ THE SOFTWARE. ----- +The following software may be included in this product: recursive-readdir. A copy of the source code may be downloaded from git://github.com/jergason/recursive-readdir.git. This software contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + The following software may be included in this product: reusify. A copy of the source code may be downloaded from git+https://github.com/mcollina/reusify.git. This software contains the following license and notice below: The MIT License (MIT) diff --git a/package-lock.json b/package-lock.json index 5dd4c9d..0409a46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "com.netsyms.helenaexpress.app", - "version": "1.0.1", + "version": "1.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -326,69 +326,28 @@ "which": "^2.0.1" } }, - "endent": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", - "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", - "dev": true, - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.4" - } - }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "universalify": "^2.0.0" } }, "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "objectorarray": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", - "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", - "dev": true - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -416,16 +375,10 @@ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, - "underscore": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz", - "integrity": "sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==", - "dev": true - }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, "which": { @@ -642,11 +595,33 @@ } } }, + "cordova-plugin-androidx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-androidx/-/cordova-plugin-androidx-3.0.0.tgz", + "integrity": "sha512-niMnhcxKsu4/oKTUbL0jRAnh6/cdoIVxRxJqj3uEyv8CVOlAj1sWhX+9b1XiAo9+bejAM9BbA21YK0mChfbVTA==", + "dev": true + }, + "cordova-plugin-androidx-adapter": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-androidx-adapter/-/cordova-plugin-androidx-adapter-1.1.3.tgz", + "integrity": "sha512-W1SImn0cCCvOSTSfWWp5TnanIQrSuh2Bch+dcZXIzEn0km3Qb7VryeAqHhgBQYwwzC5Ollk1DtUAk/AJSojuZA==", + "dev": true, + "requires": { + "q": "^1.5.1", + "recursive-readdir": "^2.2.2" + } + }, "cordova-plugin-device": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.3.tgz", "integrity": "sha1-wrQbfv0EVd0Jf4k1bYW/3V2t6w8=" }, + "cordova-plugin-document-scanner": { + "version": "5.0.0-beta.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-document-scanner/-/cordova-plugin-document-scanner-5.0.0-beta.0.tgz", + "integrity": "sha512-ydBWR06fwAIKah3HQbp+ZwfCsVReebGpBVBKM53ff46rplW4WNK9pLubg02qRmByUdNwalSVZ0ugns8pGhlwRg==", + "dev": true + }, "cordova-plugin-headercolor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cordova-plugin-headercolor/-/cordova-plugin-headercolor-1.0.0.tgz", @@ -786,9 +761,9 @@ "dev": true }, "execa": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", - "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -1492,6 +1467,15 @@ "with-open-file": "^0.1.6" } }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", diff --git a/package.json b/package.json index d3b621a..35c4d5f 100644 --- a/package.json +++ b/package.json @@ -27,12 +27,18 @@ "cordova-plugin-statusbar": {}, "cordova-plugin-headercolor": {}, "cordova-plugin-theme-detection": {}, - "cordova-plugin-nativestorage": {} + "cordova-plugin-nativestorage": {}, + "cordova-plugin-document-scanner": { + "CAMERA_USAGE_DESCRIPTION": "This app needs camera access", + "PHOTOLIBRARY_USAGE_DESCRIPTION": "This app needs read/write-access photo library access" + }, + "cordova-plugin-androidx": {}, + "cordova-plugin-androidx-adapter": {} }, "platforms": [ - "android", "browser", - "ios" + "ios", + "android" ] }, "dependencies": { @@ -47,6 +53,9 @@ "cordova-browser": "^6.0.0", "cordova-ios": "^6.1.1", "cordova-plugin-add-swift-support": "^2.0.2", + "cordova-plugin-androidx": "^3.0.0", + "cordova-plugin-androidx-adapter": "^1.1.3", + "cordova-plugin-document-scanner": "^5.0.0-beta.0", "cordova-plugin-nativestorage": "^2.3.2" } } \ No newline at end of file diff --git a/scripts/remove_bloat.sh b/scripts/remove_bloat.sh index 146846c..f75f021 100755 --- a/scripts/remove_bloat.sh +++ b/scripts/remove_bloat.sh @@ -75,4 +75,11 @@ find dist -type f -not -name 'mapbox-gl.css' -not -name 'mapbox-gl.js' -delete rm -rf dist/style-spec cd $DIR +cd signature_pad +rm -rf {docs,src} +rm README.md +rm -rf dist/types +find dist -type f -not -name 'signature_pad.umd.min.js' -delete +cd $DIR + echo "Cleanup finished" diff --git a/www/assets/css/app.css b/www/assets/css/app.css index b742e24..00a0ee9 100644 --- a/www/assets/css/app.css +++ b/www/assets/css/app.css @@ -126,4 +126,46 @@ Framework7 and FontAwesome both have a .fab class .clicktext { display: initial; } +} + +.signature-wrapper { + background-color: white; + border-radius: 10px; + position: relative; + width: 400px; + max-width: 100%; + height: 200px; + margin: 0 auto; + border: 1px solid rgba(0,0,0,0.5); +} + +.signature-wrapper img { + position: absolute; + bottom: 0; + left: 0; +} + +.signature-wrapper canvas { + position: absolute; + left: 0; + top: 0; + width: 400px; + max-width: 95vw; + height: 200px; +} + +.signature-wrapper #signatureClearBtn { + display: block; + position: absolute; + right: 0; + top: 0; + padding: 10px; +} + +.signature-wrapper #signatureUndoBtn { + display: block; + position: absolute; + right: 40px; + top: 0; + padding: 10px; } \ No newline at end of file diff --git a/www/assets/images/3849_back.png b/www/assets/images/3849_back.png new file mode 100644 index 0000000000000000000000000000000000000000..e279588f97c243dfb861cd9a1c3898f2a46d0a17 GIT binary patch literal 10072 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 literal 0 HcmV?d00001 diff --git a/www/assets/images/3849_front.png b/www/assets/images/3849_front.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dd46b347abc920183246af4a4f5b8b44e2a0f6 GIT binary patch literal 14177 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 SCwv$VMNw8&rb5a%@c#kSC6I;y literal 0 HcmV?d00001 diff --git a/www/assets/images/signature-line.svg b/www/assets/images/signature-line.svg new file mode 100644 index 0000000..b757c38 --- /dev/null +++ b/www/assets/images/signature-line.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/www/assets/js/noticeslip.js b/www/assets/js/noticeslip.js new file mode 100644 index 0000000..1f5eba4 --- /dev/null +++ b/www/assets/js/noticeslip.js @@ -0,0 +1,228 @@ +/* + * 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/. + */ + +var signaturePad = null; +var frontSlipImg = null; +var backSlipImg = null; + +function initSignaturePad() { + var canvas = document.getElementById("signaturecanvas"); + resizeCanvas(canvas); + signaturePad = new SignaturePad(canvas, { + backgroundColor: 'rgba(255, 255, 255, 0.5)' + }); +} + +function resizeCanvas(canvas) { + var ratio = Math.max(window.devicePixelRatio || 1, 1); + canvas.width = canvas.offsetWidth * ratio; + canvas.height = canvas.offsetHeight * ratio; + canvas.getContext("2d").scale(ratio, ratio); + if (signaturePad != null) { + signaturePad.clear(); // otherwise isEmpty() might return incorrect value + } +} + + +function initNoticeSlipForm() { + initSignaturePad(); + $("#noticeform #name").attr("placeholder", ["John Doe", "Jane Doe", "Dave S. Nothereman", "Sara N. Ignatur"].random()); + $("#noticeform #zip").attr("placeholder", ["59601", "59602"].random()); + $.getScript("https://js.stripe.com/v3"); +} + +function takeDocPhoto(side) { + try { + scan.scanDoc(function (img) { + if (side == "front") { + frontSlipImg = "data:image/jpg;base64," + img; + $("#noticefrontimg").attr("src", frontSlipImg); + } else if (side == "back") { + backSlipImg = "data:image/jpg;base64," + img; + $("#noticebackimg").attr("src", backSlipImg); + } + }, function (err) { + + }, { + sourceType: 1, + quality: 3, + returnBase64: true + }); + } catch (ex) { + app.dialog.alert("Looks like you can't do that with this device.", "Whoops!"); + } +} + +function checkNoticeSlipForm() { + // make sure everything's filled out + if ($("#noticeform #name").val().length < 5) { + return "Please type your name where provided."; + } + if ($("#noticeform #street").val().length < 5) { + return "Please type your street address (i.e. 1234 Example Rd, Apt 5)."; + } + if ($("#noticeform #zip").val().length < 5) { + return "Please type your ZIP Code."; + } + + if (signaturePad.isEmpty()) { + return "Please sign with a finger or stylus in the box provided."; + } + + if ($("#noticesignform #signature").val().length < 5) { + return "Please type your full name below your signature."; + } + + if (frontSlipImg == null) { + return "Take a picture of the front side of your notice slip."; + } + if (backSlipImg == null) { + return "Take a picture of the signed back side of your notice slip."; + } + + return true; +} + +function getPrice() { + var precheckResult = checkNoticeSlipForm(); + if (precheckResult === true) { + app.dialog.preloader("Loading..."); + apirequest(SETTINGS.apis.pickuprequest, { + action: "rate", + street: $("#noticeform #street").val(), + zip: $("#noticeform #zip").val() + }, function (resp) { + app.dialog.close(); + if (resp.status == "OK") { + // set display text so customer knows what they're paying + $("#noticeslip-pay-amount").text(resp.rate); + // initialize Stripe.js + initStripe(); + // open payment popup + app.popup.create({el: document.getElementById("noticeslip-pay-popup")}).open(); + } else if (resp.status == "ERROR") { + app.dialog.alert(resp.message, "Error"); + } else { + app.dialog.alert("There was a server problem. Try again later.", "Error"); + } + }, function (xhr) { + app.dialog.close(); + try { + var error = $.parseJSON(xhr.responseText); + if (error && typeof error.msg != 'undefined') { + app.dialog.alert(error.msg, "Error"); + } else { + app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error"); + } + } catch (ex) { + app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error"); + } + }, "GET"); + } else if (typeof precheckResult == "string") { + app.dialog.alert(precheckResult, "Whoops!"); + } else { + app.dialog.alert("Check that the form is filled out correctly.", "Whoops!"); + } +} + +function initStripe() { + // Wait for Stripe to be loaded + if (typeof Stripe == 'undefined') { + setTimeout(initStripe, 500); + return; + } + stripe = Stripe(SETTINGS["stripe_pubkey"]); + elements = stripe.elements(); + + card = elements.create('card', {}); + + // stop console warning "This Element will be mounted to a DOM element that contains child nodes." + $("#noticeslip-stripe-elements").html(""); + + card.mount('#noticeslip-stripe-elements'); + + card.addEventListener('change', function (event) { + var displayError = document.getElementById('noticeslip-card-errors'); + if (event.error) { + displayError.textContent = event.error.message; + } else { + displayError.textContent = ''; + } + }); +} + +function noticeSlipPayAndFinish() { + getPrice(); +} + +function submitNoticeSlip() { + app.preloader.show(); + stripe.createPaymentMethod({type: 'card', card: card}).then(function (result) { + if (result.error) { + // Inform the customer that there was an error. + app.preloader.hide(); + var errorElement = document.getElementById('noticeslip-card-errors'); + errorElement.textContent = result.error.message; + } else { + apirequest(SETTINGS.apis.pickuprequest, { + action: "submit", + name: $("#noticeform #name").val(), + street: $("#noticeform #street").val(), + zip: $("#noticeform #zip").val(), + front: frontSlipImg, + back: backSlipImg, + signature: signaturePad.toDataURL(), + signatureName: $("#noticesignform #signature").val(), + amount: $("#noticeslip-pay-amount").text(), + stripeid: result.paymentMethod.id + }, function (resp) { + app.preloader.hide(); + if (resp.status == "OK") { + app.popup.close(); + router.navigate("/noticeslip/success"); + } else if (resp.status == "ERROR") { + app.dialog.alert(resp.message, "Error"); + } else { + app.dialog.alert("There was a server problem. Try again later.", "Error"); + } + }, function (xhr) { + app.preloader.hide(); + app.popup.close(); + try { + var error = $.parseJSON(xhr.responseText); + if (error && typeof error.msg != 'undefined') { + app.dialog.alert(error.msg, "Error"); + } else { + app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error"); + } + } catch (ex) { + app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error"); + } + }, "POST"); + } + }); +} + +$("#app").on("click", "#signatureClearBtn", function () { + //signaturePad.clear(); + // clear the signature pad and fix it if it's wrong + resizeCanvas(document.getElementById("signaturecanvas")); +}); + +$("#app").on("click", "#signatureUndoBtn", function () { + var data = signaturePad.toData(); + + if (data) { + data.pop(); // remove the last dot or line + signaturePad.fromData(data); + } +}); + +//$(window).on("resize", function () { +// if (signaturePad != null) { +// resizeCanvas(document.getElementById("signaturecanvas")); +// } +//}); \ No newline at end of file diff --git a/www/assets/js/util.js b/www/assets/js/util.js index bfc2b8b..5d279be 100644 --- a/www/assets/js/util.js +++ b/www/assets/js/util.js @@ -4,6 +4,12 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +// add random() function to arrays that returns a random element +// credit: https://stackoverflow.com/a/24137301 +Array.prototype.random = function () { + return this[Math.floor((Math.random()*this.length))]; +} + /** * Generate a UUID. * From https://stackoverflow.com/a/2117523 diff --git a/www/index.html b/www/index.html index 0686aff..b1df8d5 100644 --- a/www/index.html +++ b/www/index.html @@ -38,6 +38,7 @@ + @@ -51,6 +52,7 @@ + \ No newline at end of file diff --git a/www/package-lock.json b/www/package-lock.json index 09ea354..cab3d3b 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -1,6 +1,6 @@ { "name": "HelenaExpressApp", - "version": "1.0.1", + "version": "1.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -262,6 +262,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "signature_pad": { + "version": "3.0.0-beta.4", + "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-3.0.0-beta.4.tgz", + "integrity": "sha512-cOf2NhVuTiuNqe2X/ycEmizvCDXk0DoemhsEpnkcGnA4kS5iJYTCqZ9As7tFBbsch45Q1EdX61833+6sjJ8rrw==" + }, "ssr-window": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz", diff --git a/www/package.json b/www/package.json index a6a0da3..f83afed 100644 --- a/www/package.json +++ b/www/package.json @@ -11,7 +11,8 @@ "jquery": "^3.5.1", "jsbarcode": "^3.11.0", "maplibre-gl": "^1.13.0-rc.4", - "material-design-icons": "^3.0.1" + "material-design-icons": "^3.0.1", + "signature_pad": "^3.0.0-beta.4" }, "devDependencies": {} } diff --git a/www/pages/addresscode.html b/www/pages/addresscode.html index 35af1ae..9070f99 100644 --- a/www/pages/addresscode.html +++ b/www/pages/addresscode.html @@ -50,7 +50,7 @@ -