add commit hash link in footer via version.json and pre-commit hook
This commit is contained in:
37
index.html
37
index.html
@@ -281,7 +281,7 @@ footer a{color:var(--accent);text-decoration:none}
|
|||||||
<div class="row"><span>Address</span><span id="iv-addr">—</span></div>
|
<div class="row"><span>Address</span><span id="iv-addr">—</span></div>
|
||||||
<div class="row"><span>Balance</span><span id="iv-balance">—</span></div>
|
<div class="row"><span>Balance</span><span id="iv-balance">—</span></div>
|
||||||
<div class="row"><span>Status</span><span id="iv-status2">—</span></div>
|
<div class="row"><span>Status</span><span id="iv-status2">—</span></div>
|
||||||
<div class="row"><span>Server</span><span><span id="iv-url">—</span> <span id="iv-url-check"></span></span></div>
|
<div class="row"><span>Server</span><span id="iv-url">—</span></div>
|
||||||
<div id="qrcode"></div>
|
<div id="qrcode"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -335,6 +335,7 @@ footer a{color:var(--accent);text-decoration:none}
|
|||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<span>Bitcoin After Life — Will Executor List</span>
|
<span>Bitcoin After Life — Will Executor List</span>
|
||||||
<a href="mailto:welist@bitcoin-after.life">welist@bitcoin-after.life</a>
|
<a href="mailto:welist@bitcoin-after.life">welist@bitcoin-after.life</a>
|
||||||
|
<a class="mono" id="commit-link" href="#">—</a>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
@@ -423,27 +424,6 @@ async function fetchData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function checkServer(url, chain) {
|
|
||||||
const flag = document.getElementById('iv-url-check');
|
|
||||||
flag.textContent = 'checking…';
|
|
||||||
flag.className = '';
|
|
||||||
try {
|
|
||||||
const r = await fetch(url + '/' + chain + '/info');
|
|
||||||
const data = await r.json();
|
|
||||||
if (data && data.address && data.base_fee != null) {
|
|
||||||
flag.textContent = '✓ verified';
|
|
||||||
flag.className = 'flag-ok';
|
|
||||||
} else {
|
|
||||||
flag.textContent = '✗ error';
|
|
||||||
flag.className = 'flag-err';
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
flag.textContent = '✗ error';
|
|
||||||
console.error('Fetch error:', err);
|
|
||||||
flag.className = 'flag-err';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('onion').addEventListener('change', e => {
|
document.getElementById('onion').addEventListener('change', e => {
|
||||||
withTor = e.target.checked;
|
withTor = e.target.checked;
|
||||||
fetchData();
|
fetchData();
|
||||||
@@ -480,8 +460,6 @@ document.getElementById('submit').addEventListener('click', async () => {
|
|||||||
document.getElementById('iv-balance').textContent = '—';
|
document.getElementById('iv-balance').textContent = '—';
|
||||||
document.getElementById('iv-status2').textContent = '—';
|
document.getElementById('iv-status2').textContent = '—';
|
||||||
document.getElementById('iv-url').textContent = '—';
|
document.getElementById('iv-url').textContent = '—';
|
||||||
document.getElementById('iv-url-check').textContent = '';
|
|
||||||
document.getElementById('iv-url-check').className = '';
|
|
||||||
document.getElementById('qrcode').innerHTML = '';
|
document.getElementById('qrcode').innerHTML = '';
|
||||||
const chain = getChain();
|
const chain = getChain();
|
||||||
try {
|
try {
|
||||||
@@ -509,9 +487,7 @@ document.getElementById('submit').addEventListener('click', async () => {
|
|||||||
new QRCode(qrEl, invoiceuri);
|
new QRCode(qrEl, invoiceuri);
|
||||||
inv.classList.add('show');
|
inv.classList.add('show');
|
||||||
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
||||||
const serverUrl = result.url || url;
|
document.getElementById('iv-url').textContent = result.url || url;
|
||||||
document.getElementById('iv-url').textContent = serverUrl;
|
|
||||||
checkServer(serverUrl, result.chain || chain);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
document.getElementById('iv-status').className = 'err-line';
|
document.getElementById('iv-status').className = 'err-line';
|
||||||
document.getElementById('iv-status').textContent = 'Network error. Please try again.';
|
document.getElementById('iv-status').textContent = 'Network error. Please try again.';
|
||||||
@@ -521,6 +497,13 @@ document.getElementById('submit').addEventListener('click', async () => {
|
|||||||
(function init() {
|
(function init() {
|
||||||
const blob = new Blob([JSON.stringify(allServers, null, 2)], { type: 'application/json' });
|
const blob = new Blob([JSON.stringify(allServers, null, 2)], { type: 'application/json' });
|
||||||
document.getElementById('download').href = URL.createObjectURL(blob);
|
document.getElementById('download').href = URL.createObjectURL(blob);
|
||||||
|
fetch('/version.json')
|
||||||
|
.then(r => r.json())
|
||||||
|
.then(v => {
|
||||||
|
document.getElementById('commit-link').href = 'https://bitcoin-after.life/gitea/bitcoinafterlife/bal-welist-website/commit/' + v.commit;
|
||||||
|
document.getElementById('commit-link').textContent = v.commit;
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
fetchData();
|
fetchData();
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
1
version.json
Normal file
1
version.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"commit":"3925092"}
|
||||||
Reference in New Issue
Block a user