validation_landing.html (3661B)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <!-- Required meta tags --> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 7 <link href="/css/bootstrap.min.css" rel="stylesheet"> 8 <link href="/css/style.css" rel="stylesheet"> 9 <link href="/fontawesome/css/fontawesome.css" rel="stylesheet" /> 10 <link href="/fontawesome/css/solid.css" rel="stylesheet" /> 11 <title>{{ call .tr "title" }}</title> 12 </head> 13 <body> 14 {{ template "nav.html" . }} 15 {{if .error}} 16 <div class="container pt-5"> 17 <div id="ebanner" class="alert alert-danger" role="alert"> 18 <h4 class="alert-heading">An error occurred!</h4> 19 <hr> 20 <p class="mb-0">{{.error}}.</p> 21 </div> 22 </div> 23 {{end}} 24 <div class="container"> 25 <div id="sbanner" class="alert alert-success" role="alert" hidden> 26 <h4 class="alert-heading">Registration successful!</h4> 27 <hr> 28 You may now <a href="/">go back to the front page</a>. 29 </div> 30 </div> 31 {{if .WalletLink}} 32 <div class="qr"> 33 <h1>Scan this QR code with your Taler Wallet to complete your registration.</h1> 34 <a href="{{.WalletLink}}"> 35 <img class="taldir-qr" src="{{.QRCode}}"/> 36 </a> 37 </div> 38 {{else}} 39 <div class="container pt-5"> 40 <div class="row"> 41 <div class="col-2"> 42 <ul class="timeline"> 43 <li class="done">{{ call .tr "lookup" }}</li> 44 <li class="done">{{ call .tr "registerOrModify" }}</li> 45 <li id="confirmitem" class="inprogress">{{ call .tr "confirm" }}</li> 46 </ul> 47 </div> 48 <div class="col-8"> 49 <div id="regcontainer" class="card"> 50 <div class="card-body"> 51 <h4 class="card-title">{{ call .tr "confirmation" }}</h4> 52 <p class="card-text">{{ .confirmDeletionOrRegistration }}</p> 53 <div class="row mt-2"> 54 <div class="col-lg-6 offset-lg-3 text-center"> 55 <form id="regform"> 56 <input id="haddrInput" name="haddr" type="hidden" value="{{.haddress}}"> 57 <input id="solutionInput" name="solution" type="hidden" value="{{.solution}}"> 58 <input id="confirmbutton" class="btn btn-outline-primary" type="submit" value="{{ call .tr "confirm" }}"> 59 </form> 60 </div> 61 </div> 62 </div> 63 </div> 64 </div> 65 </div> 66 {{end}} 67 {{ template "footer.html" . }} 68 </body> 69 <script> 70 var form = document.getElementById('regform'); 71 form.onsubmit = function(event){ 72 var xhr = new XMLHttpRequest(); 73 var data = new FormData(form); 74 var haddr = data.get("haddr"); 75 data.delete("haddr"); 76 xhr.open('POST','/' + haddr) 77 xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 78 var json = JSON.stringify(Object.fromEntries(data)); 79 xhr.send(json); 80 81 xhr.onreadystatechange = function() { 82 if (xhr.readyState == XMLHttpRequest.DONE) { 83 if (xhr.status == 204) { 84 var sbanner = document.getElementById('sbanner'); 85 var confirmitem = document.getElementById('confirmitem'); 86 var confirmbutton = document.getElementById('confirmbutton'); 87 sbanner.hidden = false; 88 confirmitem.classList.add("done"); 89 confirmbutton.disabled = true; 90 } else { 91 window.location.href = "?error=Registration failed"; 92 } 93 } 94 } 95 96 //Dont submit the form. 97 return false; 98 } 99 </script> 100 </html>