mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2024-11-19 18:11:30 +01:00
346 lines
9.9 KiB
HTML
346 lines
9.9 KiB
HTML
|
<!-- @format -->
|
||
|
|
||
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta charset="UTF-8" />
|
||
|
<title>LNBits Wallet</title>
|
||
|
<meta
|
||
|
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
|
||
|
name="viewport"
|
||
|
/>
|
||
|
<!-- Bootstrap 3.3.2 -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}"
|
||
|
/>
|
||
|
<!-- FontAwesome 4.3.0 -->
|
||
|
<link
|
||
|
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"
|
||
|
rel="stylesheet"
|
||
|
type="text/css"
|
||
|
/>
|
||
|
<!-- Ionicons 2.0.0 -->
|
||
|
<link
|
||
|
href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css"
|
||
|
rel="stylesheet"
|
||
|
type="text/css"
|
||
|
/>
|
||
|
|
||
|
<!-- Theme style -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='dist/css/AdminLTE.min.css') }}"
|
||
|
/>
|
||
|
<!-- AdminLTE Skins. Choose a skin from the css/skins
|
||
|
folder instead of downloading all of them to reduce the load. -->
|
||
|
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='dist/css/skins/_all-skins.min.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- iCheck -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='plugins/iCheck/flat/blue.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- Morris chart -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='plugins/morris/morris.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- jvectormap -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- Date Picker -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='plugins/datepicker/datepicker3.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- Daterange picker -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker-bs3.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- bootstrap wysihtml5 - text editor -->
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
media="screen"
|
||
|
href="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}"
|
||
|
/>
|
||
|
|
||
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||
|
<!--[if lt IE 9]>
|
||
|
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||
|
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
||
|
<![endif]-->
|
||
|
|
||
|
<style>
|
||
|
.small-box > .small-box-footer {
|
||
|
text-align: left;
|
||
|
padding-left: 10px;
|
||
|
}
|
||
|
|
||
|
#loadingMessage {
|
||
|
text-align: center;
|
||
|
padding: 40px;
|
||
|
background-color: #eee;
|
||
|
}
|
||
|
|
||
|
#canvas {
|
||
|
width: 100%;
|
||
|
}
|
||
|
|
||
|
#output {
|
||
|
margin-top: 20px;
|
||
|
background: #eee;
|
||
|
padding: 10px;
|
||
|
padding-bottom: 0;
|
||
|
}
|
||
|
|
||
|
#output div {
|
||
|
padding-bottom: 10px;
|
||
|
word-wrap: break-word;
|
||
|
}
|
||
|
|
||
|
#noQRFound {
|
||
|
text-align: center;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<!-- jQuery 2.1.3 -->
|
||
|
<script src="{{ url_for('static', filename='plugins/jQuery/jQuery-2.1.3.min.js') }}"></script>
|
||
|
<!-- jQuery UI 1.11.2 -->
|
||
|
<script
|
||
|
src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
|
||
|
<script>
|
||
|
$.widget.bridge('uibutton', $.ui.button)
|
||
|
</script>
|
||
|
<!-- Bootstrap 3.3.2 JS -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- Morris.js charts -->
|
||
|
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/morris/morris.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- Sparkline -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/sparkline/jquery.sparkline.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- jvectormap -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- jQuery Knob Chart -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/knob/jquery.knob.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- daterangepicker -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- datepicker -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/datepicker/bootstrap-datepicker.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- Bootstrap WYSIHTML5 -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- iCheck -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/iCheck/icheck.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- Slimscroll -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/slimScroll/jquery.slimscroll.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<!-- FastClick -->
|
||
|
<script src="{{ url_for('static', filename='plugins/fastclick/fastclick.min.js') }}"></script>
|
||
|
<!-- AdminLTE App -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='dist/js/app.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
|
||
|
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='dist/js/pages/dashboard.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
|
||
|
<!-- AdminLTE for demo purposes -->
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='dist/js/demo.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/datatables/jquery.dataTables.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<link
|
||
|
rel="stylesheet"
|
||
|
href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css"
|
||
|
/>
|
||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
|
||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/jscam/JS.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/jscam/qrcode.min.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/bolt11/decoder.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
<script
|
||
|
src="{{ url_for('static', filename='plugins/bolt11/utils.js') }}"
|
||
|
type="text/javascript"
|
||
|
></script>
|
||
|
</head>
|
||
|
<body class="skin-blue layout-boxed sidebar-collapse sidebar-open">
|
||
|
<div class="wrapper">
|
||
|
<header class="main-header">
|
||
|
<!-- Logo -->
|
||
|
<a href="/" class="logo"><b>LN</b>bits</a>
|
||
|
<!-- Header Navbar: style can be found in header.less -->
|
||
|
<nav class="navbar navbar-static-top" role="navigation">
|
||
|
<!-- Sidebar toggle button-->
|
||
|
<a
|
||
|
href="#"
|
||
|
class="sidebar-toggle"
|
||
|
data-toggle="offcanvas"
|
||
|
role="button"
|
||
|
>
|
||
|
<span class="sr-only">Toggle navigation</span>
|
||
|
</a>
|
||
|
<div class="navbar-custom-menu">
|
||
|
<ul class="nav navbar-nav">
|
||
|
<!-- Messages: style can be found in dropdown.less-->
|
||
|
<li class="dropdown messages-menu">
|
||
|
{% block messages %}{% endblock %}
|
||
|
</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</nav>
|
||
|
</header>
|
||
|
|
||
|
<!-- Right side column. Contains the navbar and content of the page -->
|
||
|
<div class="content-wrapper">
|
||
|
<!-- Content Header (Page header) -->
|
||
|
<section class="content-header">
|
||
|
<h1>
|
||
|
LNURL Withdraw Link
|
||
|
<small>Use LNURL compatible bitcoin wallet</small>
|
||
|
</h1>
|
||
|
|
||
|
</section>
|
||
|
|
||
|
<!-- Main content -->
|
||
|
<section class="content">><br/><br/>
|
||
|
<center><h1 style="font-size:500%">Withdraw Link: {{ user_fau[0][6] }}</h1></center>
|
||
|
|
||
|
<center><br/><br/> <div id="qrcode"></div><br/><br/>
|
||
|
<div style="width:55%;word-wrap: break-word;" id="qrcodetxt"></div> <br/></center>
|
||
|
|
||
|
</section><!-- /.content -->
|
||
|
</div><!-- /.content-wrapper -->
|
||
|
</div>
|
||
|
</body>
|
||
|
|
||
|
<script>
|
||
|
function getAjax(url, thekey, success) {
|
||
|
var xhr = window.XMLHttpRequest
|
||
|
? new XMLHttpRequest()
|
||
|
: new ActiveXObject('Microsoft.XMLHTTP')
|
||
|
xhr.open('GET', url, true)
|
||
|
xhr.onreadystatechange = function() {
|
||
|
if (xhr.readyState > 3 && xhr.status == 200) {
|
||
|
success(xhr.responseText)
|
||
|
}
|
||
|
}
|
||
|
xhr.setRequestHeader('Grpc-Metadata-macaroon', thekey)
|
||
|
xhr.setRequestHeader('Content-Type', 'application/json')
|
||
|
|
||
|
xhr.send()
|
||
|
return xhr
|
||
|
}
|
||
|
|
||
|
|
||
|
function drawwithdraw(data) {
|
||
|
|
||
|
|
||
|
console.log(data)
|
||
|
|
||
|
|
||
|
getAjax('/v1/lnurlencode/'+ window.location.hostname + "/" + data, "filla", function(datab) {
|
||
|
if (JSON.parse(datab).STATUS == 'TRUE') {
|
||
|
console.log(JSON.parse(datab).STATUS)
|
||
|
lnurlfau = (JSON.parse(datab).LNURL)
|
||
|
|
||
|
|
||
|
new QRCode(document.getElementById('qrcode'), {
|
||
|
text: lnurlfau,
|
||
|
width: 300,
|
||
|
height: 300,
|
||
|
colorDark: '#000000',
|
||
|
colorLight: '#ffffff',
|
||
|
correctLevel: QRCode.CorrectLevel.M
|
||
|
})
|
||
|
document.getElementById('qrcodetxt').innerHTML = lnurlfau + "<br/><br/>"
|
||
|
|
||
|
}
|
||
|
else {
|
||
|
|
||
|
data = "Failed to build LNURL"
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
drawwithdraw("{{ user_fau[0][5] }}")
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</script>
|
||
|
</html>
|