taldir

Directory service to resolve wallet mailboxes by messenger addresses
Log | Files | Refs | Submodules | README | LICENSE

lookup_result.html (6147B)


      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     <!-- <meta name="taler-uri" content="{{.talerAddContactURI}}"> -->
      8     <link href="/css/bootstrap.min.css" rel="stylesheet">
      9     <link href="/css/style.css" rel="stylesheet">
     10     <link href="/fontawesome/css/fontawesome.css" rel="stylesheet" />
     11     <link href="/fontawesome/css/solid.css" rel="stylesheet" />
     12     <title>{{ call .tr "title" }}</title>
     13   </head>
     14   <body>
     15     {{ template "nav.html" . }}
     16     <div class="container">
     17       <div  id="ebanner" class="container" hidden>
     18         <div class="alert alert-danger" role="alert">
     19           <h4 class="alert-heading">{{ call .tr "error" }}</h4>
     20           <hr>
     21           <p class="mb-0" id="ebanner-text">{{.error}}.</p>
     22         </div>
     23       </div>
     24       <div id="sbanner" class="container" hidden>
     25         <div class="alert alert-success" role="alert">
     26           <h4 class="alert-heading">{{ call .tr "validationInitiated" }}</h4>
     27           <hr>
     28           {{ call .tr "pleaseCompleteValidation" }}
     29         </div>
     30       </div>
     31       <div class="container pt-5">
     32        <div class="row">
     33         <div class="col-2">
     34           <ul class="timeline">
     35             <li class="done">{{ call .tr "lookup" }}</li>
     36             <li class="inprogress">{{ call .tr "registerOrModify" }}</li>
     37             <li>{{ call .tr "confirm" }}</li>
     38           </ul>
     39         </div>
     40         <div class="col-8">
     41           <div class="card">
     42             {{if .available}}
     43             <div class="card-body">
     44               <h4 class="card-title">{{ call .tr "available" }}</h4>
     45               <hr>
     46               <p class="card-text">{{ call .tr "notYetLinked" .alias}}</p>
     47             </div>
     48             <form id="regform">
     49               <input id="atypeInput" type="hidden" name="alias_type" value="{{.alias_type}}">
     50               <input id="addrInput" type="hidden" name="alias" value="{{.alias}}">
     51               <div class="row">
     52                 <div class="col-lg-8 offset-lg-2 text-center">
     53                   <div id="address-input-group" class="input-group mb-3">
     54                     <input id="uriInput" name="target_uri" type="text" class="form-control" placeholder="{{ call .tr "talerMailboxAddressExample" }}" aria-label="Default" aria-describedby="inputGroup-sizing-default">
     55                     <input class="input-group-text btn btn-outline-primary" type="submit" value="{{ call .tr "linkIt" }}">
     56                   </div>
     57                   <a class="btn btn-outline-primary mb-3" id="login-button" hidden>Start OpenID validation</a>
     58                 </div>
     59               </div>
     60             </form>
     61             {{else}}
     62             <div class="card-body" role="alert">
     63               <h4 class="card-title">{{ call .tr "lookupResultFound" }}</h4>
     64               <hr>
     65               <p class="card-text">
     66                 {{ call .tr "isLinked" .alias }}<br/>
     67                 {{ call .tr "importContactLink" }}
     68                 <a class="link-dark" href="{{.talerAddContactURI}}" class="btn btn-success mb-3">
     69                   {{ call .tr "importContactLinkText" }}
     70                 </a>
     71                 <br/>
     72                 {{ call .tr "importContactQr" }}
     73                 <div class="qr">
     74                   <img class="qr" src="{{.qrCode}}"/>
     75                 </div>
     76               </p>
     77             </div>
     78             <form id="regform">
     79               <input id="atypeInput" type="hidden" name="alias_type" value="{{.alias_type}}">
     80               <input id="addrInput" type="hidden" name="alias" value="{{.alias}}">
     81               <input id="uriInput" type="hidden" name="target_uri" value="">
     82               <div class="row">
     83                 <div class="col-lg-8 offset-lg-2 text-center">
     84                   <div id="address-input-group" class="input-group mb-3">
     85                     <input disabled="disabled" type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" value="{{.result}}">
     86                     <input class="input-group-text btn btn-outline-danger" type="submit" value="{{ call .tr "deleteIt" }}">
     87                   </div>
     88                   <a class="btn btn-outline-primary mb-3" id="login-button" hidden>Start OpenID validation</a>
     89                 </div>
     90               </div>
     91             </form>
     92             {{end}}
     93           </div>
     94         </div>
     95        </div>
     96       </div>
     97       {{ template "footer.html" . }}
     98   </body>
     99   <script>
    100     var form = document.getElementById('regform');
    101     form.onsubmit = function(event){
    102       var xhr = new XMLHttpRequest();
    103       var data = new FormData(form);
    104       var atype = data.get("alias_type");
    105       var alias = data.get("alias");
    106       data.delete("alias_type");
    107       xhr.open('POST','/register/' + atype)
    108       xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    109       var json = JSON.stringify(Object.fromEntries(data));
    110       json["duration"] = 1000000000
    111       xhr.send(json);
    112 
    113       xhr.onreadystatechange = function() {
    114         if (xhr.readyState == XMLHttpRequest.DONE) {
    115           form.reset(); //reset form after AJAX success.
    116           var ebanner = document.getElementById('ebanner');
    117           var sbanner = document.getElementById('sbanner');
    118           if (xhr.status == 202) {
    119             sbanner.hidden = false;
    120             ebanner.hidden = true;
    121             var redirLoc = xhr.getResponseHeader("Location");
    122             if (null != redirLoc) {
    123               document.getElementById('address-input-group').hidden = true;
    124               document.getElementById('login-button').hidden = false;
    125               document.getElementById('login-button').href = redirLoc;
    126             }
    127           } else {
    128             var jsonResponse = JSON.parse(xhr.responseText);
    129             document.getElementById('ebanner-text').innerHTML = jsonResponse.hint;
    130             sbanner.hidden = true;
    131             ebanner.hidden = false;
    132             // window.location.href = "/?error=Registration failed";
    133           }
    134         }
    135       }
    136 
    137       //Dont submit the form.
    138       return false;
    139     }
    140   </script>
    141 </html>