diff --git a/public/css/main.css b/public/css/main.css index 9b06505..26e1b77 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -35,18 +35,30 @@ img { margin-top: 5rem; } +.pt-10 { + padding: 10px 10px; +} + .span_user_msg { font-size: 18px; - font-weight: bold; + font-family: 'Ranga', cursive; color: black; - padding: 5px 10px; + padding: 15px 10px; + margin: 20px 10px; } .pdfcontent, .pdfcontent > div { + text-align:center; width: 1124px; height: 1590px; border: none; - background-color: #c6c6c6; + background-color: #ffffff; + /*background: lightblue url("/images/bg.jpg") no-repeat fixed center;*/ +} + +.pdfcontent > * { + padding: 10px 5px; + margin: auto; } .border_stashed { diff --git a/public/js/bundle.js b/public/js/bundle.js index f9e0cbe..c7807c7 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -27380,6 +27380,8 @@ $(document).on('click', '#bc-btn', function() { 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) { @@ -27390,8 +27392,14 @@ $(document).on('click', '#bc-btn', function() { $.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) { @@ -27399,6 +27407,10 @@ $(document).on('click', '#bc-btn', function() { return false; } + if (parseFloat(_floamount)>0) { + $('#gift_flo_msg').html(` ${data._from} sent you ${data._floamount} FLOs. `); + } + var urlstring = `https://testnet.florincoin.info/tx/${txnid}`; var canvas = document.getElementById('canvas'); @@ -27413,7 +27425,6 @@ $(document).on('click', '#bc-btn', function() { 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) { if (download_pdf==true) { @@ -27421,7 +27432,6 @@ $(document).on('click', '#bc-btn', function() { var img = canvas.toDataURL("image/png"); var doc = new jsPDF('p', 'mm', 'a3'); doc.addImage(img, 'PNG', 0, 0); - //doc.addImage(img, 'PNG', 1, 2); doc.save(namepdf); doc.autoPrint(); } diff --git a/public/js/main.js b/public/js/main.js index de93d4a..b4d4944 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -44,6 +44,8 @@ $(document).on('click', '#bc-btn', function() { 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) { @@ -54,8 +56,14 @@ $(document).on('click', '#bc-btn', function() { $.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) { @@ -63,6 +71,10 @@ $(document).on('click', '#bc-btn', function() { return false; } + if (parseFloat(_floamount)>0) { + $('#gift_flo_msg').html(` ${data._from} sent you ${data._floamount} FLOs. `); + } + var urlstring = `https://testnet.florincoin.info/tx/${txnid}`; var canvas = document.getElementById('canvas'); @@ -77,7 +89,6 @@ $(document).on('click', '#bc-btn', function() { 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) { if (download_pdf==true) { @@ -85,7 +96,6 @@ $(document).on('click', '#bc-btn', function() { var img = canvas.toDataURL("image/png"); var doc = new jsPDF('p', 'mm', 'a3'); doc.addImage(img, 'PNG', 0, 0); - //doc.addImage(img, 'PNG', 1, 2); doc.save(namepdf); doc.autoPrint(); } diff --git a/routes.js b/routes.js index c50f183..4844a74 100644 --- a/routes.js +++ b/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,22 +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}) + 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}) + } + } + + 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}) + } } ) diff --git a/views/write.ejs b/views/write.ejs index 236b1ee..0235432 100644 --- a/views/write.ejs +++ b/views/write.ejs @@ -28,6 +28,12 @@ + + + + + +
- Your special message will appear here.
-From Bob
+
+ Your special message will appear here.
+From Bob
+
--- A Ranchi Mall FLO Blockchian Product ---
+