diff --git a/index.html b/index.html index 5f870b1..c006fd6 100644 --- a/index.html +++ b/index.html @@ -151,6 +151,8 @@ tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 50%,transparent)} .invoice .row:last-child{border-bottom:0} .invoice .row span:first-child{color:var(--muted)} .invoice .row span:last-child{font-family:var(--mono);text-align:right;word-break:break-all} +.invoice .row a{color:var(--accent);text-decoration:none} +.invoice .row a:hover{text-decoration:underline} #qrcode{margin:18px auto 4px;width:160px} #qrcode canvas,#qrcode img{width:160px!important;height:160px!important;max-width:100%} #qr-overlay{ @@ -286,9 +288,12 @@ footer a{color:var(--accent);text-decoration:none}
Enter your server URL. It will be checked online before it appears in the list.
@@ -502,6 +509,9 @@ document.getElementById('submit').addEventListener('click', async () => { document.getElementById('iv-addr').textContent = '—'; document.getElementById('iv-balance').textContent = '—'; document.getElementById('iv-url').textContent = '—'; + document.getElementById('iv-contact').textContent = '—'; + document.getElementById('iv-weinfo').href = '#'; + document.getElementById('iv-weinfo').textContent = '—'; document.getElementById('qrcode').innerHTML = ''; document.getElementById('qrcode').style.cursor = ''; document.getElementById('qr-overlay').classList.remove('show'); @@ -514,7 +524,7 @@ document.getElementById('submit').addEventListener('click', async () => { const response = await fetch('/data', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ url, chain }) + body: JSON.stringify({ url, chain, contact: document.getElementById('contact').value.trim() || undefined }) }); const result = await response.json(); if (!response.ok) { @@ -526,6 +536,16 @@ document.getElementById('submit').addEventListener('click', async () => { document.getElementById('iv-chain').textContent = result.chain || chain; document.getElementById('iv-addr').textContent = result.address || '—'; document.getElementById('iv-balance').textContent = result.balance != null ? fmt(result.balance) : '—'; + document.getElementById('iv-contact').textContent = document.getElementById('contact').value.trim() || '—'; + const weLink = result.id ? `/weinfo/${result.chain || chain}/${result.id}` : null; + const weinfoEl = document.getElementById('iv-weinfo'); + if (weLink) { + weinfoEl.href = weLink; + weinfoEl.textContent = 'View page'; + } else { + weinfoEl.href = '#'; + weinfoEl.textContent = '—'; + } const amountSats = result.amount != null ? result.amount : minAmount; const amountBtc = (amountSats / 1e8).toFixed(8).replace(/\.?0+$/, ''); const invoiceuri = `bitcoin:${result.address}?amount=${amountBtc}&label=BAL&message=Order+For+url+%26+${encodeURIComponent(url)}`; diff --git a/weinfo.html b/weinfo.html index 402cc3e..a761d2f 100644 --- a/weinfo.html +++ b/weinfo.html @@ -81,38 +81,42 @@ const chain = path[1]; const cdate=new Date().toISOString().replace(/[-:T.Z]/g, '').slice(0, 14); fetchDataAndPopulateTable('/weinfodata/'+chain+"/"+we_id, new URLSearchParams(),(data) => { - document.getElementById('wename').innerHTML = DOMPurify.sanitize(data.url); - document.getElementById('wechain').innerHTML = DOMPurify.sanitize(data.chain); - document.getElementById('weinfo').innerHTML = DOMPurify.sanitize(data.info); - document.getElementById('wefees').innerHTML = data.base_fee; - document.getElementById('weheight').innerHTML = data.last_block; - document.getElementById('wepoints').innerHTML = data.points; - document.getElementById('wewin').innerHTML = data.count_win; - document.getElementById('wetld').innerHTML = DOMPurify.sanitize(data.tld); - document.getElementById('webalance').innerHTML = data.balance; - document.getElementById('weversion').innerHTML = data.version;; - document.getElementById('westatus').innerHTML = DOMPurify.sanitize(data.status); - document.getElementById('weupdate').innerHTML = data.last_update; + document.getElementById('wename').innerHTML = DOMPurify.sanitize(data.url||'—'); + document.getElementById('wechain').innerHTML = DOMPurify.sanitize(data.chain||'—'); + document.getElementById('weinfo').innerHTML = DOMPurify.sanitize(data.info||'—'); + document.getElementById('wefees').innerHTML = data.base_fee != null ? data.base_fee : '—'; + document.getElementById('weheight').innerHTML = data.last_block != null ? data.last_block : '—'; + document.getElementById('wepoints').innerHTML = data.points != null ? data.points : '—'; + document.getElementById('wewin').innerHTML = data.count_win != null ? data.count_win : '—'; + document.getElementById('wetld').innerHTML = DOMPurify.sanitize(data.tld||'—'); + document.getElementById('webalance').innerHTML = data.balance != null ? data.balance : '—'; + document.getElementById('weversion').innerHTML = data.version||'—'; + document.getElementById('westatus').innerHTML = DOMPurify.sanitize(data.status||'—'); + document.getElementById('weupdate').innerHTML = data.last_update||'—'; const tableBody = document.querySelector('#wetimes tbody'); tableBody.innerHTML =''; - Object.entries(data.times).forEach(([key,wetime]) => { - const row = document.createElement('tr'); - const d = new Date(wetime.time/1000); - row.innerHTML = ` -