add commit hash link in footer via version.json and pre-commit hook

This commit is contained in:
2026-07-05 16:31:00 -04:00
parent eda26684a0
commit c9d665f929
2 changed files with 11 additions and 27 deletions

View File

@@ -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>Balance</span><span id="iv-balance"></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>
@@ -335,6 +335,7 @@ footer a{color:var(--accent);text-decoration:none}
<div class="wrap">
<span>Bitcoin After Life — Will Executor List</span>
<a href="mailto:welist@bitcoin-after.life">welist@bitcoin-after.life</a>
<a class="mono" id="commit-link" href="#"></a>
</div>
</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 => {
withTor = e.target.checked;
fetchData();
@@ -480,8 +460,6 @@ document.getElementById('submit').addEventListener('click', async () => {
document.getElementById('iv-balance').textContent = '—';
document.getElementById('iv-status2').textContent = '—';
document.getElementById('iv-url').textContent = '—';
document.getElementById('iv-url-check').textContent = '';
document.getElementById('iv-url-check').className = '';
document.getElementById('qrcode').innerHTML = '';
const chain = getChain();
try {
@@ -509,9 +487,7 @@ document.getElementById('submit').addEventListener('click', async () => {
new QRCode(qrEl, invoiceuri);
inv.classList.add('show');
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
const serverUrl = result.url || url;
document.getElementById('iv-url').textContent = serverUrl;
checkServer(serverUrl, result.chain || chain);
document.getElementById('iv-url').textContent = result.url || url;
} catch (err) {
document.getElementById('iv-status').className = 'err-line';
document.getElementById('iv-status').textContent = 'Network error. Please try again.';
@@ -521,6 +497,13 @@ document.getElementById('submit').addEventListener('click', async () => {
(function init() {
const blob = new Blob([JSON.stringify(allServers, null, 2)], { type: 'application/json' });
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();
})();
</script>

1
version.json Normal file
View File

@@ -0,0 +1 @@
{"commit":"3925092"}