The escrow wizard sends the typed-back words to the box; the new package reaches the hub only when they match (R-1151 controller half, unreleased; works with every agent)
gates / gates (push) Successful in 47s
gates / gates (push) Successful in 47s
This commit is contained in:
@@ -249,6 +249,7 @@
|
||||
<div id="verify-error" class="alert alert-error" style="display:none;margin-top:.5rem">A megadott szavak nem egyeznek — ellenőrizd a felírt kódot.</div>
|
||||
</div>
|
||||
<button class="btn btn-sm" id="verify-btn" onclick="verifyWords()">Szavak ellenőrzése</button>
|
||||
<a href="/backup/escrow" class="btn btn-sm btn-primary" id="verify-restart" style="display:none">Újraindítás</a>
|
||||
<div id="finish-block" style="display:none;margin-top:1rem">
|
||||
<h3>7. Befejezés</h3>
|
||||
|
||||
@@ -390,6 +391,9 @@ function pollStatus(){
|
||||
var claimedR='';
|
||||
var verifyIdx=[0,0];
|
||||
|
||||
|
||||
var confirmRequired=false;
|
||||
|
||||
async function claimCode(){
|
||||
var btn=document.getElementById('reveal-btn'); btn.disabled=true;
|
||||
var errEl=document.getElementById('reveal-error'); errEl.style.display='none';
|
||||
@@ -403,9 +407,13 @@ async function claimCode(){
|
||||
|
||||
var words=claimedR.split('-');
|
||||
var n=words.length;
|
||||
var a=1+Math.floor(Math.random()*n), b=1+Math.floor(Math.random()*n);
|
||||
while(b===a){ b=1+Math.floor(Math.random()*n); }
|
||||
verifyIdx=[Math.min(a,b),Math.max(a,b)];
|
||||
confirmRequired=!!j.data.confirm_required;
|
||||
if(confirmRequired){ verifyIdx=[j.data.verify_positions[0], j.data.verify_positions[1]]; }
|
||||
else {
|
||||
var a=1+Math.floor(Math.random()*n), b=1+Math.floor(Math.random()*n);
|
||||
while(b===a){ b=1+Math.floor(Math.random()*n); }
|
||||
verifyIdx=[Math.min(a,b),Math.max(a,b)];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -438,13 +446,31 @@ function setCodeBlur(on){
|
||||
}
|
||||
function toggleCodeBlur(){ setCodeBlur(!codeBlurred); }
|
||||
|
||||
function verifyWords(){
|
||||
async function verifyWords(){
|
||||
var words=claimedR.split('-');
|
||||
var w1=(document.getElementById('verify-w1').value||'').trim().toLowerCase();
|
||||
var w2=(document.getElementById('verify-w2').value||'').trim().toLowerCase();
|
||||
var ok = w1===words[verifyIdx[0]-1] && w2===words[verifyIdx[1]-1];
|
||||
document.getElementById('verify-error').style.display=ok?'none':'block';
|
||||
if(ok){ document.getElementById('finish-block').style.display='block'; }
|
||||
var errEl=document.getElementById('verify-error');
|
||||
errEl.textContent='A megadott szavak nem egyeznek — ellenőrizd a felírt kódot.';
|
||||
errEl.style.display=ok?'none':'block';
|
||||
if(!ok){ return; }
|
||||
if(confirmRequired){
|
||||
var btn=document.getElementById('verify-btn'); btn.disabled=true;
|
||||
try{
|
||||
var r=await fetch('/api/escrow/confirm',{method:'POST',
|
||||
headers:Object.assign({'Content-Type':'application/json'},csrfHeaders()),body:JSON.stringify({words:[w1,w2]})});
|
||||
var j=await r.json();
|
||||
if(!j.ok){
|
||||
errEl.textContent=j.error||'A megadott szavak nem egyeznek — ellenőrizd a felírt kódot.'; errEl.style.display='block';
|
||||
if(j.data && j.data.restart){
|
||||
claimedR=''; document.getElementById('code-block').textContent='';
|
||||
btn.style.display='none'; document.getElementById('verify-restart').style.display='inline-block'; return; }
|
||||
btn.disabled=false; return;
|
||||
}
|
||||
}catch(e){ errEl.textContent='Hiba: '+e.message; errEl.style.display='block'; btn.disabled=false; return; }
|
||||
}
|
||||
document.getElementById('finish-block').style.display='block';
|
||||
}
|
||||
|
||||
function finishWizard(){
|
||||
|
||||
Reference in New Issue
Block a user