send flo functionality added

This commit is contained in:
Abhishek Sinha 2018-08-03 22:56:57 +05:30
parent db92cb5f6a
commit 7a326f3b8d
5 changed files with 118 additions and 29 deletions

View File

@ -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 {

View File

@ -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(`<strong> ${data._from} sent you ${data._floamount} FLOs. </strong>`);
}
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();
}

View File

@ -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(`<strong> ${data._from} sent you ${data._floamount} FLOs. </strong>`);
}
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();
}

View File

@ -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,21 +69,66 @@ router.post('/write', [
let _from = data._from;
let _to = data._to;
let card_id = data._cardid;
let _recp_addr = data._recp_addr;
let _floamount = isNaN(data._floamount) ? 0 : parseFloat(data._floamount);
try {
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}`;
var toaddress = "oXCsMUyX3mLJEdnn8SXoH6gyPW9Jd6kjYu";
var amount = 1;
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})
// });
res.json({"error":false, "txnid":"TXIDKJKLGJLKSJLKGJSKJGK", "_from":_from, "_to":_to, "card_id":card_id, "user_msg":user_msg})
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})
}
}

View File

@ -29,6 +29,12 @@
<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>
@ -47,25 +53,27 @@
<div id="pdfcontent" height="1000" width="1000" class="pdfcontent">
<div class="card mb-3 text-center">
<div class="card-body">
<h5 class="card-title">Dear <span id="span_to">Alice</span></h5>
</div>
<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>
<div class="card-body">
<p class="card-text"><span id="span_user_msg" class="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 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>