forked from bitcoinafterlife/bal-welist-website
Merge pull request 'Align index.html with yearly-listing terms' (#3) from donkey-ai/bal-welist-website:fix/index-yearly-model-consistency into main
Reviewed-on: bitcoinafterlife/bal-welist-website#3
This commit is contained in:
25
index.html
25
index.html
@@ -117,7 +117,8 @@ tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 50%,transparent)}
|
|||||||
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
|
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
|
||||||
.score{font-family:var(--display);font-weight:600;font-size:15px}
|
.score{font-family:var(--display);font-weight:600;font-size:15px}
|
||||||
|
|
||||||
.add-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin:40px 0;align-items:start}
|
.add-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin:40px 0;align-items:stretch}
|
||||||
|
.add-grid>.panel{display:flex;flex-direction:column}
|
||||||
.panel{
|
.panel{
|
||||||
background:var(--panel);border:1px solid var(--line);
|
background:var(--panel);border:1px solid var(--line);
|
||||||
border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);
|
border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);
|
||||||
@@ -319,7 +320,7 @@ footer a{color:var(--accent);text-decoration:none}
|
|||||||
<div class="row"><span>Contact</span><span id="iv-contact">—</span></div>
|
<div class="row"><span>Contact</span><span id="iv-contact">—</span></div>
|
||||||
<div class="row"><span>Server</span><span id="iv-url">—</span></div>
|
<div class="row"><span>Server</span><span id="iv-url">—</span></div>
|
||||||
<div class="row"><span>Will Executor</span><span><a id="iv-weinfo" href="#" target="_blank">—</a></span></div>
|
<div class="row"><span>Will Executor</span><span><a id="iv-weinfo" href="#" target="_blank">—</a></span></div>
|
||||||
<div class="row" id="iv-nextdep-row" style="display:none"><span>Next deposit</span><span id="iv-nextdep">—</span></div>
|
<div class="row" id="iv-nextdep-row" style="display:none"><span>Next renewal</span><span id="iv-nextdep">—</span></div>
|
||||||
<div id="qrcode"></div>
|
<div id="qrcode"></div>
|
||||||
<button class="btn-share" id="share-btn">Share invoice</button>
|
<button class="btn-share" id="share-btn">Share invoice</button>
|
||||||
<p class="note">
|
<p class="note">
|
||||||
@@ -331,10 +332,11 @@ footer a{color:var(--accent);text-decoration:none}
|
|||||||
|
|
||||||
<div class="panel">
|
<div class="panel">
|
||||||
<h2>How ranking works</h2>
|
<h2>How ranking works</h2>
|
||||||
<p class="lead">Bid-based ranking: higher contributions rank higher.</p>
|
<p class="lead">Ordered by excess donated, then total paid, then base fee (lower first), then WeTime points.</p>
|
||||||
<div style="display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px"><span style="color:var(--muted)">Yearly fee</span><b class="mono"><span id="thr-min">50,000</span> sats</b></div>
|
<div style="display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px"><span style="color:var(--muted)">Yearly fee</span><b class="mono"><span id="thr-min">50,000</span> sats</b></div>
|
||||||
<div style="display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px"><span style="color:var(--muted)">Plugin integration</span><b>automatic</b></div>
|
<div style="display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px"><span style="color:var(--muted)">Listing period</span><b>365 days</b></div>
|
||||||
<div style="display:flex;justify-content:space-between;padding:8px 0;font-size:13px"><span style="color:var(--muted)">Early-adopter guarantee</span><b>12 months</b></div>
|
<div style="display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px"><span style="color:var(--muted)">Renewal window</span><b>from 6 months before expiry</b></div>
|
||||||
|
<div style="display:flex;justify-content:space-between;padding:8px 0;font-size:13px"><span style="color:var(--muted)">Plugin integration</span><b>automatic</b></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -354,8 +356,8 @@ footer a{color:var(--accent);text-decoration:none}
|
|||||||
|
|
||||||
<div class="info-block">
|
<div class="info-block">
|
||||||
<span class="ic">03</span>
|
<span class="ic">03</span>
|
||||||
<h3>Early Adopter Incentives</h3>
|
<h3>Listing & Renewal</h3>
|
||||||
<p>To support the project's initial launch phase, we plan to maintain the first Will Executor servers for a minimum of 12 months, rewarding early participants. Long-term position is determined by total paid, base fee, and WeTime points (see <a href="/terms.html" target="_blank">Terms</a>).</p>
|
<p>A flat yearly fee buys 365 days of presence in the list, starting when your payment reaches 3 confirmations. You can renew for one additional year at any time from 6 months before expiry; listings that are not renewed are removed at expiry. See the <a href="/terms.html" target="_blank">Terms</a> for details.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="info-block">
|
<div class="info-block">
|
||||||
@@ -439,8 +441,9 @@ function render() {
|
|||||||
const online = allServers.filter(d => d.status === "OK").length;
|
const online = allServers.filter(d => d.status === "OK").length;
|
||||||
document.getElementById('s-online').textContent = online;
|
document.getElementById('s-online').textContent = online;
|
||||||
document.getElementById('s-total').textContent = allServers.length;
|
document.getElementById('s-total').textContent = allServers.length;
|
||||||
const top = getFiltered()[0];
|
// Highest known block across all servers (the list is ranked by fee/points, not by height)
|
||||||
document.getElementById('s-block').textContent = top ? fmt(top.last_block) : '—';
|
const maxBlock = allServers.reduce((m, d) => Math.max(m, d.last_block || 0), 0);
|
||||||
|
document.getElementById('s-block').textContent = maxBlock ? fmt(maxBlock) : '—';
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchData() {
|
async function fetchData() {
|
||||||
@@ -587,7 +590,7 @@ document.getElementById('terms-accept').addEventListener('click', async function
|
|||||||
document.getElementById('iv-nextdep').textContent = result.next_deposit_date || '—';
|
document.getElementById('iv-nextdep').textContent = result.next_deposit_date || '—';
|
||||||
document.getElementById('iv-nextdep-row').style.display = 'flex';
|
document.getElementById('iv-nextdep-row').style.display = 'flex';
|
||||||
document.getElementById('iv-status').className = 'ok-line';
|
document.getElementById('iv-status').className = 'ok-line';
|
||||||
document.getElementById('iv-status').textContent = 'Server is already listed. Next deposit: ' + (result.next_deposit_date || '—');
|
document.getElementById('iv-status').textContent = 'Server is already listed. Next renewal: ' + (result.next_deposit_date || '—');
|
||||||
const inv = document.getElementById('invoice');
|
const inv = document.getElementById('invoice');
|
||||||
inv.classList.add('show');
|
inv.classList.add('show');
|
||||||
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
||||||
@@ -623,7 +626,7 @@ document.getElementById('terms-accept').addEventListener('click', async function
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
document.getElementById('iv-status').className = 'ok-line';
|
document.getElementById('iv-status').className = 'ok-line';
|
||||||
document.getElementById('iv-status').textContent = '✓ Server added: ' + serverUrl + '. Pay the invoice to complete.';
|
document.getElementById('iv-status').textContent = '✓ Server verified: ' + serverUrl + '. Pay the invoice — it will be listed after 3 confirmations.';
|
||||||
const inv = document.getElementById('invoice');
|
const inv = document.getElementById('invoice');
|
||||||
inv.classList.add('show');
|
inv.classList.add('show');
|
||||||
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
||||||
|
|||||||
Reference in New Issue
Block a user