1
0
Files
electrum/lib/www/index.html
Serge Victor 55d392c274 Spread payment requests to subdirs
Currently Electrum stores all payment requests in main requests
directory. It's not going to be efficient when we have thousands of
thousands of payment requests. This patch spreads that files across
two level of subdirectories.
2016-10-01 05:40:40 +00:00

112 lines
3.8 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Payment request</title>
<script type="text/javascript" charset="utf-8" src="jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="qrcode.js"></script>
<script type="text/javascript" src="jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="jquery-ui.css">
<script type="text/javascript">
function getUrlParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
var id = getUrlParameter('id');
if (id) {
var uri_path = location.pathname;
var jqxhr = $.getJSON(uri_path.replace("index.html", "req/"+ id[0] + "/"+ id[1] + "/"+ id + "/"+ id + ".json"), function() {
console.log("getJSON:success");
})
.done( function(data) {
new QRCode(document.getElementById("qrcode"), data.URI);
$("<p />").text(data.memo).appendTo($("p#reason"));
$("<p />").text(data.amount/100000000 + "BTC").appendTo($("p#amount"));
$("a").attr("href", data.URI);
$("<p />").text("Powered by Electrum").appendTo($("p#powered"));
var websocket_server = data.websocket_server;
var websocket_port = data.websocket_port;
$(function () {
var current;
var max = 100;
var initial = data.time;
var duration = data.exp;
if(duration){
var current = 100 * (Math.floor(Date.now()/1000) - initial)/duration;
$("#progressbar").progressbar({
value: current,
max: max
});
function update() {
current = 100 * (Math.floor(Date.now()/1000) - initial)/duration;
$("#progressbar").progressbar({
value: current
});
if (current >= max) {
$("#container").html("This invoice has expired");
}
};
var interval = setInterval(update, 1000);
}
});
var wss_address = "wss://" + websocket_server + ":" + websocket_port +"/");
console.log("Opening WSS: " + wss_address)
var ws = new WebSocket(wss_address);
ws.onopen = function() {
ws.send('id:' + id);
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
if(received_msg == 'paid'){
$("#container").html("This invoice has been paid.");
}
else alert("Message is received:"+ received_msg);
};
})
.fail(function() {
console.log("error fail");
$("<p />").text("error").appendTo($("p#error"));
});
};
// See http://stackoverflow.com/questions/29186154/chrome-clicking-mailto-links-closes-websocket-connection
$(document).on('click', 'a[href^="bitcoin:"]', function (e) {
e.preventDefault();
var btcWindow = window.open($(e.currentTarget).attr('href'));
btcWindow.close();
return false;
});
</script>
</head>
<body>
<div id="container" style="width:20em; text-align:center; margin:auto; font-family:arial, serif;">
<p id="error"></p>
<p id="reason"></p>
<p id="amount"></p>
<div style="background-color:#7777aa; border-radius: 5px; padding:10px;">
<a style="color:#ffffff; text-decoration:none;" id="paylink" target="_blank">Pay with Bitcoin</a>
</div>
<br/>
<div id="qrcode" align="center"></div>
<p id="powered" style="font-size:80%;"></p>
<div id="progressbar"></div>
</div>
</body>
</html>