Merge pull request #1 from avishkarabhishek786/master
Updating to latest commit release
47
Readme.md
@ -1 +1,46 @@
|
||||
#FLO Greeting Cards
|
||||
<h2>FLO Greeting Cards</h2>
|
||||
|
||||
Flo greetings app is a greetings card (PDF or PNG) file generator. If you want to send or gift someone FLO on any special occasion like birthdays, new year or any festival Flo greetings app is the best way to gift someone FLOs in a uninue fashion.
|
||||
|
||||
<h4>Prerequisites</h4>
|
||||
|
||||
**FLO Wallet**
|
||||
<p>You must have FLO wallet or FLOD daemon running. Flocore wallet exe can be downloaded from the following link: https://www.flo.cash//</p>
|
||||
|
||||
**NODE JS and NPM**
|
||||
<p>You also need to have Node JS v8+ installed. Likewise NPM v6+ is also required.</p>
|
||||
|
||||
<h4>Installation</h4>
|
||||
Now that you have FLO wallet, Node JS and NPM installed let's start the process:
|
||||
|
||||
<ul>
|
||||
<li>Step 1: Open your terminal or command line window</li>
|
||||
<li>Step 2: Clone flo-greeting-cards repository (git clone https://github.com/avishkarabhishek786/flo-greeting-cards.git)</li>
|
||||
<li>Step 3: Move into the flo-greetings-card folder (cd flo-greetings-card/)</li>
|
||||
<li>Step 4: Install the dependancies (npm install)</li>
|
||||
<li>Step 5: Configure server.example.js file. Rename it to server.js (sudo mv server.example.js server.js). Then configure username, password, network, port etc as per your FLO wallet settings.
|
||||
</li>
|
||||
<li>Step 6: Run FLO wallet (/path/to/wallet ./flo-qt) or FLOD daemon (/path/to/wallet ./flod)</li>
|
||||
<li>Step 7: Build the application (sudo npm start)</li>
|
||||
<li>Step 8: Start the browser and visit localhost://3001</li>
|
||||
</ul>
|
||||
|
||||
<h4>How to use the website?</h4>
|
||||
<ul>
|
||||
<li>Click on any menu icon (Birthday cards, New Year cards) on the top header section.</li>
|
||||
<li>Click on any card image below.</li>
|
||||
<li>Fill the form. <strong>(Leave Recipient Address and amount empty if you don't want to send FLO.)</strong></li>
|
||||
<li>Press submit. PDF and/or Image file will be generated respectively.</li>
|
||||
</ul>
|
||||
|
||||
<h4>Upcoming Feature</h4>
|
||||
<ul>Facillity to
|
||||
<li>Change Font Style</li>
|
||||
<li>Upload user's selected image</li>
|
||||
<li>Select background image</li>
|
||||
<li>Ability to beutify the card appearance more</li>
|
||||
</ul>
|
||||
|
||||
<h4>Author's Remarks:</h4>
|
||||
Thank you so much for using the application. Please help improving the application. Pull requests or notify for any bugs to
|
||||
abhishek@ranchimall.net
|
||||
|
||||
203
package-lock.json
generated
@ -1028,6 +1028,12 @@
|
||||
"is-arrayish": "^0.2.1"
|
||||
}
|
||||
},
|
||||
"es6-promise": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
|
||||
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
|
||||
"optional": true
|
||||
},
|
||||
"escape-html": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||
@ -1296,6 +1302,29 @@
|
||||
"is-extglob": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"extract-zip": {
|
||||
"version": "1.6.7",
|
||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
|
||||
"integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"concat-stream": "1.6.2",
|
||||
"debug": "2.6.9",
|
||||
"mkdirp": "0.5.1",
|
||||
"yauzl": "2.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
@ -1316,6 +1345,15 @@
|
||||
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
|
||||
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
|
||||
},
|
||||
"fd-slicer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
|
||||
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"pend": "~1.2.0"
|
||||
}
|
||||
},
|
||||
"file-saver": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz",
|
||||
@ -1426,6 +1464,17 @@
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
|
||||
"integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^2.1.0",
|
||||
"klaw": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
@ -1996,6 +2045,16 @@
|
||||
"minimalistic-assert": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"hasha": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
|
||||
"integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-stream": "^1.0.1",
|
||||
"pinkie-promise": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"helmet": {
|
||||
"version": "3.13.0",
|
||||
"resolved": "https://registry.npmjs.org/helmet/-/helmet-3.13.0.tgz",
|
||||
@ -2357,6 +2416,15 @@
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"jsonify": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
|
||||
@ -2390,6 +2458,12 @@
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"kew": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
|
||||
"integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
|
||||
"optional": true
|
||||
},
|
||||
"kind-of": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
@ -2398,6 +2472,15 @@
|
||||
"is-buffer": "^1.1.5"
|
||||
}
|
||||
},
|
||||
"klaw": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
|
||||
"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.9"
|
||||
}
|
||||
},
|
||||
"labeled-stream-splicer": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz",
|
||||
@ -2641,6 +2724,11 @@
|
||||
"integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
|
||||
"optional": true
|
||||
},
|
||||
"natives": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz",
|
||||
"integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg=="
|
||||
},
|
||||
"ncp": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
|
||||
@ -2772,6 +2860,11 @@
|
||||
"mem": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"outpipe": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz",
|
||||
@ -2915,16 +3008,54 @@
|
||||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"pend": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
||||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
||||
"optional": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
|
||||
},
|
||||
"phantomjs-prebuilt": {
|
||||
"version": "2.1.16",
|
||||
"resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
|
||||
"integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"es6-promise": "^4.0.3",
|
||||
"extract-zip": "^1.6.5",
|
||||
"fs-extra": "^1.0.0",
|
||||
"hasha": "^2.2.0",
|
||||
"kew": "^0.7.0",
|
||||
"progress": "^1.1.8",
|
||||
"request": "^2.81.0",
|
||||
"request-progress": "^2.0.1",
|
||||
"which": "^1.2.10"
|
||||
}
|
||||
},
|
||||
"pify": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
||||
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
|
||||
},
|
||||
"pinkie": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
|
||||
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
|
||||
"optional": true
|
||||
},
|
||||
"pinkie-promise": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
|
||||
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"pinkie": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"platform": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz",
|
||||
@ -2960,6 +3091,12 @@
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
||||
},
|
||||
"progress": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
|
||||
"integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
|
||||
"optional": true
|
||||
},
|
||||
"proxy-addr": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
|
||||
@ -3192,6 +3329,15 @@
|
||||
"uuid": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"request-progress": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
|
||||
"integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"throttleit": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"require-directory": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
@ -3558,6 +3704,12 @@
|
||||
"acorn-node": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"throttleit": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
|
||||
"integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
|
||||
"optional": true
|
||||
},
|
||||
"through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
@ -3580,6 +3732,14 @@
|
||||
"process": "~0.11.0"
|
||||
}
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"requires": {
|
||||
"os-tmpdir": "~1.0.2"
|
||||
}
|
||||
},
|
||||
"to-arraybuffer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
|
||||
@ -3760,6 +3920,40 @@
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||
},
|
||||
"webshot": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/webshot/-/webshot-0.18.0.tgz",
|
||||
"integrity": "sha1-BX5pJbw5cK6X7tVvwjEYV4y8/cM=",
|
||||
"requires": {
|
||||
"cross-spawn": "^0.2.3",
|
||||
"graceful-fs": "~3.0.4",
|
||||
"phantomjs-prebuilt": "^2.1.3",
|
||||
"tmp": "~0.0.25"
|
||||
},
|
||||
"dependencies": {
|
||||
"cross-spawn": {
|
||||
"version": "0.2.9",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz",
|
||||
"integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=",
|
||||
"requires": {
|
||||
"lru-cache": "^2.5.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
|
||||
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
|
||||
"requires": {
|
||||
"natives": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "2.7.3",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
||||
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
|
||||
}
|
||||
}
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz",
|
||||
@ -3875,6 +4069,15 @@
|
||||
"requires": {
|
||||
"camelcase": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"yauzl": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
|
||||
"integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fd-slicer": "~1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
package.json
@ -6,10 +6,17 @@
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "browserify public/js/main.js -o public/js/bundle.js",
|
||||
"watch": "watchify public/js/main.js -o public/js/bundle.js"
|
||||
"watch": "watchify public/js/main.js -o public/js/bundle.js",
|
||||
"prestart": "npm run build",
|
||||
"start": "nodemon --ignore public/js/bundle.js index.js",
|
||||
"poststart":"npm run watch"
|
||||
},
|
||||
"author": "Abhishek Sinha",
|
||||
"license": "ISC",
|
||||
"repository" :
|
||||
{ "type" : "git",
|
||||
"url" : "https://github.com/avishkarabhishek786/flo-greeting-cards.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.18.0",
|
||||
"bitcoin-core": "^2.0.0",
|
||||
@ -32,5 +39,8 @@
|
||||
"popper.js": "^1.14.3",
|
||||
"qrcode": "^1.2.2",
|
||||
"watchify": "^3.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^1.18.3"
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ body {
|
||||
|
||||
/* Declare heights because of positioning of img element */
|
||||
.carousel-item {
|
||||
height: 32rem;
|
||||
height: 38rem;
|
||||
background-color: #777;
|
||||
}
|
||||
.carousel-item > img {
|
||||
@ -32,7 +32,7 @@ body {
|
||||
top: 0;
|
||||
left: 0;
|
||||
min-width: 100%;
|
||||
height: 32rem;
|
||||
height: 38rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
img {
|
||||
max-height: 1000px;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
.mt-5 {
|
||||
margin-top: 5rem;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
|
||||
font-family: 'Lobster', cursive;
|
||||
|
||||
font-family: 'Dancing Script', cursive;
|
||||
|
||||
font-family: 'Amatic SC', cursive;
|
||||
|
||||
font-family: 'Ranga', cursive;
|
||||
|
||||
font-family: 'Great Vibes', cursive;
|
||||
|
||||
font-family: 'Caveat', cursive;
|
||||
|
||||
font-family: 'Arapey', serif;
|
||||
|
||||
*/
|
||||
|
||||
img {
|
||||
max-height: 1000px;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
.mt-5 {
|
||||
margin-top: 5rem;
|
||||
}
|
||||
|
||||
.pt-10 {
|
||||
padding: 10px 10px;
|
||||
}
|
||||
|
||||
.span_user_msg {
|
||||
font-size: 18px;
|
||||
font-family: 'Ranga', cursive;
|
||||
color: black;
|
||||
padding: 15px 10px;
|
||||
margin: 20px 10px;
|
||||
}
|
||||
|
||||
.pdfcontent, .pdfcontent > div {
|
||||
text-align:center;
|
||||
width: 1124px;
|
||||
height: 1590px;
|
||||
border: none;
|
||||
background-color: #ffffff;
|
||||
/*background: lightblue url("/images/bg.jpg") no-repeat fixed center;*/
|
||||
}
|
||||
|
||||
.pdfcontent > * {
|
||||
padding: 10px 5px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.border_stashed {
|
||||
border-style: dotted;
|
||||
}
|
||||
BIN
public/images/diwali3.jpg
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
public/images/hbd10.jpg
Normal file
|
After Width: | Height: | Size: 680 KiB |
BIN
public/images/hbd11.jpg
Normal file
|
After Width: | Height: | Size: 325 KiB |
BIN
public/images/hbd12.jpg
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
public/images/hbd13.jpg
Normal file
|
After Width: | Height: | Size: 357 KiB |
BIN
public/images/hbd14.jpg
Normal file
|
After Width: | Height: | Size: 339 KiB |
BIN
public/images/hbd15.jpg
Normal file
|
After Width: | Height: | Size: 315 KiB |
BIN
public/images/hbd3.jpg
Normal file
|
After Width: | Height: | Size: 390 KiB |
BIN
public/images/hbd4.jpg
Normal file
|
After Width: | Height: | Size: 229 KiB |
BIN
public/images/hbd5.jpg
Normal file
|
After Width: | Height: | Size: 270 KiB |
BIN
public/images/hbd6.jpg
Normal file
|
After Width: | Height: | Size: 274 KiB |
BIN
public/images/hbd7.jpg
Normal file
|
After Width: | Height: | Size: 362 KiB |
BIN
public/images/hbd8.jpg
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
public/images/hbd9.jpg
Normal file
|
After Width: | Height: | Size: 439 KiB |
BIN
public/images/hny1.jpg
Normal file
|
After Width: | Height: | Size: 362 KiB |
BIN
public/images/xmas.jpg
Normal file
|
After Width: | Height: | Size: 440 KiB |
27404
public/js/bundle.js
@ -20,17 +20,50 @@ $(document).on('keyup', '.stick_text', function() {
|
||||
}
|
||||
});
|
||||
|
||||
function saveAs(uri, filename) {
|
||||
var link = document.createElement('a');
|
||||
if (typeof link.download === 'string') {
|
||||
link.href = uri;
|
||||
link.download = filename;
|
||||
|
||||
//Firefox requires the link to be in the body
|
||||
document.body.appendChild(link);
|
||||
|
||||
//simulate click
|
||||
link.click();
|
||||
|
||||
//remove the link when done
|
||||
document.body.removeChild(link);
|
||||
} else {
|
||||
window.open(uri);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('click', '#bc-btn', function() {
|
||||
var text = $('#_bdata').val();
|
||||
var _from = $('#_from').val();
|
||||
var _to = $('#_to').val();
|
||||
var _cardid = $('#_cardid').val();
|
||||
var _recp_addr = $('#_recp_addr').val();
|
||||
var _floamount = $('#_floamount').val();
|
||||
|
||||
var atLeastOneIsChecked = $('input[name="chk"]').is(":checked");
|
||||
if (!atLeastOneIsChecked) {
|
||||
alert('Please specify download option: Image and/or PDF');
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/write',
|
||||
data: {_bdata:text,_from:_from, _to:_to, _cardid:_cardid},
|
||||
data: {_bdata:text,_from:_from, _to:_to, _cardid:_cardid, _recp_addr:_recp_addr, _floamount:_floamount},
|
||||
success: function(data) {
|
||||
console.log(data);
|
||||
|
||||
if ( data.error==true && data.msg.length>0) {
|
||||
alert(data.msg);
|
||||
return;
|
||||
}
|
||||
|
||||
var txnid = $.trim(data.txnid);
|
||||
if(txnid.length < 1) {
|
||||
@ -38,6 +71,10 @@ $(document).on('click', '#bc-btn', function() {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (parseFloat(_floamount)>0) {
|
||||
$('#gift_flo_msg').html(`<strong> ${data._from} sent you ${data._floamount} FLOs. </strong>`);
|
||||
}
|
||||
|
||||
var urlstring = `https://testnet.florincoin.info/tx/${txnid}`;
|
||||
|
||||
var canvas = document.getElementById('canvas');
|
||||
@ -45,20 +82,31 @@ $(document).on('click', '#bc-btn', function() {
|
||||
var opts = {
|
||||
width: 200,
|
||||
errorCorrectionLevel: 'H'
|
||||
}
|
||||
}
|
||||
|
||||
var download_pdf = $('#Checkpdf').is(":checked");
|
||||
var download_image = $('#Checkimg').is(":checked");
|
||||
|
||||
QRCode.toCanvas(canvas, urlstring, opts, function (error) {
|
||||
if (error) console.error(error)
|
||||
console.log('Qr generated! for : '.urlstring);
|
||||
// canvas in QRCode.toCanvas()is different to canvas below
|
||||
html2canvas(document.getElementById("pdfcontent"), { allowTaint: true }).then(function(canvas) {
|
||||
let namepdf = "flo-greetings-"+new Date().getTime()+".pdf";
|
||||
var img = canvas.toDataURL("image/png");
|
||||
var doc = new jsPDF('p', 'mm', 'a3');
|
||||
doc.addImage(img, 'PNG', 1, 2);
|
||||
doc.save(namepdf);
|
||||
doc.autoPrint();
|
||||
if (download_pdf==true) {
|
||||
let namepdf = "flo-greetings-"+new Date().getTime()+".pdf";
|
||||
var img = canvas.toDataURL("image/png");
|
||||
var doc = new jsPDF('p', 'mm', 'a3');
|
||||
doc.addImage(img, 'PNG', 0, 0);
|
||||
doc.save(namepdf);
|
||||
doc.autoPrint();
|
||||
}
|
||||
|
||||
if (download_image==true) {
|
||||
saveAs(canvas.toDataURL(), 'file-name.png');
|
||||
}
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
console.log(textStatus, errorThrown);
|
||||
|
||||
75
routes.js
@ -45,6 +45,10 @@ router.post('/write', [
|
||||
.isLength({min:1})
|
||||
.isAlphanumeric()
|
||||
.withMessage('Could not find the card id! Please select the card again.')
|
||||
.trim(),
|
||||
check('_recp_addr')
|
||||
.trim(),
|
||||
check('_floamount')
|
||||
.trim()
|
||||
],
|
||||
(req,res)=>{
|
||||
@ -65,24 +69,67 @@ router.post('/write', [
|
||||
let _from = data._from;
|
||||
let _to = data._to;
|
||||
let card_id = data._cardid;
|
||||
|
||||
let txComment = `${_from} #flogreets to ${_to}: ${user_msg}`;
|
||||
|
||||
var toaddress = "oXCsMUyX3mLJEdnn8SXoH6gyPW9Jd6kjYu";
|
||||
var amount = 1;
|
||||
let _recp_addr = data._recp_addr;
|
||||
let _floamount = isNaN(data._floamount) ? 0 : parseFloat(data._floamount);
|
||||
|
||||
try {
|
||||
client.sendToAddress(toaddress, amount, "Greetings App", "REBC Greetigs App", false, false, 1, 'UNSET', txComment)
|
||||
.then((txnid) => {
|
||||
console.log(txnid)
|
||||
res.json({"error":false, "txnid":txnid, "_from":_from, "_to":_to, "card_id":card_id, "user_msg":user_msg})
|
||||
});
|
||||
//res.json({"error":false, "txnid":"TXIDKJKLGJLKSJLKGJSKJGK", "_from":_from, "_to":_to, "card_id":card_id, "user_msg":user_msg})
|
||||
}catch(err){
|
||||
console.log("Unable to send FLO." + err.message);
|
||||
client.getBalance().then(balance=>{
|
||||
let low_bal = `You have insufficeint balance of ${balance}. This transaction will be discarded.`;
|
||||
if(balance < 1) {
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:low_bal})
|
||||
}
|
||||
if(_floamount !== "" && _floamount > 1 && balance <= _floamount) {
|
||||
low_bal += ` Reduce some amount (0.001 FLO appx) for miner's fee.`;
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:low_bal})
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
console.log("Unable to send FLO." + err.message);
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:err.message})
|
||||
}
|
||||
|
||||
var amount = 1;
|
||||
|
||||
console.log(_recp_addr.length);
|
||||
|
||||
if(_floamount !== "" && !isNaN(_floamount) && _floamount > 1) {
|
||||
amount = _floamount;
|
||||
|
||||
if (_recp_addr.length <= 0) {
|
||||
let no_user_adr = `Please specify recipient's address`;
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:no_user_adr})
|
||||
}
|
||||
}
|
||||
|
||||
//res.json({"error":true, "txnid":null, "card_id":null, "user_msg":null})
|
||||
if(_recp_addr.length > 0 && (_floamount == "" || isNaN(_floamount))) {
|
||||
let no_user_adr = `Please specify both recipient's address and amount of FLOs to be sent.`;
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:no_user_adr})
|
||||
}
|
||||
|
||||
if (_.trim(_recp_addr)=="") {
|
||||
_recp_addr = "";
|
||||
}
|
||||
|
||||
var toaddress = _recp_addr.length > 0 ? _recp_addr : "oXCsMUyX3mLJEdnn8SXoH6gyPW9Jd6kjYu";
|
||||
|
||||
let txComment = `${_from} #flogreets to ${_to}: ${user_msg}`;
|
||||
|
||||
if (txComment.length> 500) {
|
||||
let too_big = `Message exceeding maximum limit. Please shorten your message.`;
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:too_big})
|
||||
}
|
||||
|
||||
try {
|
||||
client.sendToAddress(toaddress, amount, "Greetings App", "REBC Greetigs App", false, false, 1, 'UNSET', txComment)
|
||||
.then((txnid) => {
|
||||
console.log(txnid)
|
||||
res.json({"error":false, "txnid":txnid, "_from":_from, "_to":_to, "card_id":card_id, "user_msg":user_msg, "_floamount":amount, msg:null})
|
||||
});
|
||||
//res.json({"error":false, "txnid":"TXIDKJKLGJLKSJLKGJSKJGK", "_from":_from, "_to":_to, "card_id":card_id, "user_msg":user_msg, "_floamount":amount, msg:null})
|
||||
}catch(err){
|
||||
console.log("Unable to send FLO." + err.message);
|
||||
res.json({"error":true, "txnid":"NOTXIDKJKLGJLKSJLKGJSKJGK", "_from":null, "_to":null, "card_id":null, "user_msg":null, "_floamount":null, msg:err.message})
|
||||
}
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
@ -1,3 +1,56 @@
|
||||
<% include partials/header.ejs %>
|
||||
<h1>BithDay Carfds</h1>
|
||||
<div class="container mt-5">
|
||||
|
||||
<div class="card-columns">
|
||||
|
||||
<div class="card">
|
||||
<a href="/write/hbd"><img class="card-img" src="/images/hbd.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd2"><img class="card-img" src="/images/hbd2.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd3"><img class="card-img" src="/images/hbd3.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd4"><img class="card-img" src="/images/hbd4.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd5"><img class="card-img" src="/images/hbd5.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd6"><img class="card-img" src="/images/hbd6.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd7"><img class="card-img" src="/images/hbd7.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd8"><img class="card-img" src="/images/hbd8.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd9"><img class="card-img" src="/images/hbd9.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd10"><img class="card-img" src="/images/hbd10.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd11"><img class="card-img" src="/images/hbd11.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd12"><img class="card-img" src="/images/hbd12.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd13"><img class="card-img" src="/images/hbd13.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd14"><img class="card-img" src="/images/hbd14.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
<div class="card">
|
||||
<a href="/write/hbd15"><img class="card-img" src="/images/hbd15.jpg" alt="Card image"></a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% include partials/footer.ejs %>
|
||||
@ -1,3 +1,41 @@
|
||||
<% include partials/header.ejs %>
|
||||
<h1>XMAS Carfds</h1>
|
||||
<div class="container mt-5">
|
||||
|
||||
<div class="card-columns">
|
||||
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% include partials/footer.ejs %>
|
||||
@ -1,3 +1,41 @@
|
||||
<% include partials/header.ejs %>
|
||||
<h1>Diwali Carfds</h1>
|
||||
<div class="container mt-5">
|
||||
|
||||
<div class="card-columns">
|
||||
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% include partials/footer.ejs %>
|
||||
@ -1,6 +1,64 @@
|
||||
<% include partials/header.ejs %>
|
||||
|
||||
|
||||
<!--Carousel starts-->
|
||||
<div id="myCarousel" class="carousel slide" data-ride="carousel">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="2"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="3"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="first-slide" src="/images/hbd3.jpg" alt="First slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>HAPPY BIRTHDAY WISHES.</h1>
|
||||
<p>Gift FLOs to your loved ones on their birthday with our Birthday card generator app below. Select from hundreds of cards and make your gift the most unique. </p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/bithday-cards" role="button">See all the cards</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img class="second-slide" src="/images/diwali3.jpg" alt="Second slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>HAPPY DIWALI.</h1>
|
||||
<p>Wish your loved ones a very happy Diwali by gifting them Ranchi Mall FLO Diwali cards.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/diwali-cards" role="button">Show the Diwali cards</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img class="third-slide" src="/images/xmas.jpg" alt="Third slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>Merry Christmas</h1>
|
||||
<p>Wish Merry Christmas to your friends, family and gift them Ranchi Mall FLO Merry Christmas Cards.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/christmas-cards" role="button">Browse gallery</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img class="third-slide" src="/images/hny1.jpg" alt="Fourth slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>Happy New Year</h1>
|
||||
<p>Wish Happy New Year to your friends, family in a unique fashion this year and gift them Ranchi Mall FLO Happy New Year Cards.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/new-year-cards" role="button">Browse gallery</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
||||
<!--Carousel ends-->
|
||||
|
||||
<div class="container marketing">
|
||||
|
||||
|
||||
@ -1,3 +1,41 @@
|
||||
<% include partials/header.ejs %>
|
||||
<h1>Hapyy New Year Carfds</h1>
|
||||
<div class="container mt-5">
|
||||
|
||||
<div class="card-columns">
|
||||
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
<div class="card">
|
||||
<img class="card-img" src="" alt="Card image">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% include partials/footer.ejs %>
|
||||
@ -10,6 +10,8 @@
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="/css/carousel.css" rel="stylesheet">
|
||||
<link href="/css/main.css" rel="stylesheet">
|
||||
<!--<link href="https://fonts.googleapis.com/css?family=Amatic+SC|Arapey:400,400i|Caveat|Dancing+Script|Great+Vibes|Lobster|Ranga" rel="stylesheet"> -->
|
||||
|
||||
<title><%=title%></title>
|
||||
</head>
|
||||
@ -48,62 +50,3 @@
|
||||
</header>
|
||||
|
||||
<main role="main">
|
||||
|
||||
<div id="myCarousel" class="carousel slide" data-ride="carousel">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="2"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="3"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="first-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="First slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>HAPPY BIRTHDAY WISHES.</h1>
|
||||
<p>Gift FLOs to your loved ones on their birthday with our Birthday card generator app below. Select from hundreds of cards and make your gift the most unique. </p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/bithday-cards" role="button">See all the cards</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img class="second-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Second slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>HAPPY DIWALI.</h1>
|
||||
<p>Wish your loved ones a very happy Diwali by gifting them Ranchi Mall FLO Diwali cards.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/diwali-cards" role="button">Show the Diwali cards</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img class="third-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Third slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>Merry Christmas</h1>
|
||||
<p>Wish Merry Christmas to your friends, family and gift them Ranchi Mall FLO Merry Christmas Cards.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/christmas-cards" role="button">Browse gallery</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img class="third-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Fourth slide">
|
||||
<div class="container">
|
||||
<div class="carousel-caption">
|
||||
<h1>Happy New Year</h1>
|
||||
<p>Wish Happy New Year to your friends, family in a unique fashion this year and gift them Ranchi Mall FLO Happy New Year Cards.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/new-year-cards" role="button">Browse gallery</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<% include partials/header.ejs %>
|
||||
|
||||
<div class="container">
|
||||
<div class="container mt-5">
|
||||
<div class="form-header">
|
||||
<% if (Object.keys(errors).length === 0) { %>
|
||||
<h2>Please write a review about your experience here:</h2>
|
||||
@ -28,32 +28,52 @@
|
||||
<textarea id="_bdata" class="form-control stick_text" placeholder="Your message here"name="_bdata"></textarea>
|
||||
|
||||
<input type="hidden" id="_cardid" name="_cardid" value="<%=data.card_id%>" >
|
||||
|
||||
<label for="_recp_addr">(Optional) Receipient's Address: (Leave blank if you are not sending FLOs)</label>
|
||||
<input type="text" class="form-control stick_text" name="_recp_addr" id="_recp_addr">
|
||||
|
||||
<label for="_floamount">(Optional) Amount of FLO to send in FLO unit: (Leave blank if you don't want to send FLO. Minimum 1 FLO, if sending) </label>
|
||||
<input type="text" class="form-control stick_text" name="_floamount" id="_floamount">
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="chk" id="Checkpdf">
|
||||
<label class="custom-control-label" for="Checkpdf">Download PDF</label>
|
||||
</div>
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="chk" id="Checkimg">
|
||||
<label class="custom-control-label" for="Checkimg">Download Image</label>
|
||||
</div>
|
||||
<br>
|
||||
<button type="submit" class="btn btn-primary" id="bc-btn">Submit</button>
|
||||
</div>
|
||||
|
||||
<div id="pdfcontent">
|
||||
<div class="border_stashed">
|
||||
|
||||
<div class="card mb-3 text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Dear <span id="span_to">Alice</span></h5>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<img src="/images/<%=data.card_id%>.jpg" alt="Card image cap">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="card-text"><span id="span_user_msg"><i>Your special message will appear here.</i></span></p>
|
||||
<p class="card-text"><small class="text-muted">From <span id="span_from">Bob</span></small></p>
|
||||
|
||||
<p class="card-text">
|
||||
<canvas id="canvas"></canvas>
|
||||
</p>
|
||||
|
||||
<p class="card-text">
|
||||
<img src="/images/rm.png" alt="Rabchi Mall logo" width="50" height="50">
|
||||
<img src="/images/FLO_teal.png" alt="FLO logo" width="50" height="50">
|
||||
<p><small class="text-muted">--- A Ranchi Mall FLO Blockchian Product ---</small></p>
|
||||
</p>
|
||||
<div id="pdfcontent" height="1000" width="1000" class="pdfcontent">
|
||||
<div class="card mb-3 text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><span id="span_to">Alice</span></h5>
|
||||
<div class="text-center">
|
||||
<img src="/images/<%=data.card_id%>.jpg" alt="Card image cap" id="pdf-img">
|
||||
</div>
|
||||
|
||||
<p class="card-text span_user_msg" id="span_user_msg"><i>Your special message will appear here.</i></p>
|
||||
<p class="card-text text-muted">From <span id="span_from">Bob</span></p>
|
||||
|
||||
<p class="card-text">
|
||||
<canvas id="canvas"></canvas>
|
||||
</p>
|
||||
<p class="card-text" id="gift_flo_msg"></p>
|
||||
|
||||
<p class="card-text">
|
||||
<img src="/images/rm.png" alt="Ranchi Mall logo" width="50" height="50">
|
||||
<img src="/images/FLO_teal.png" alt="FLO logo" width="50" height="50">
|
||||
<p><small class="text-muted">--- A Ranchi Mall FLO Blockchian Product ---</small></p>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||