taldir

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

lookup_result.html (5547B)


      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 class="input-group mb-3">
     54                     <input id="uriInput" name="target_uri" type="text" class="form-control" placeholder="{{ call .tr "paymentSystemAddressExample" }}" 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                 </div>
     58               </div>
     59             </form>
     60             {{else}}
     61             <div class="card-body" role="alert">
     62               <h4 class="card-title">{{ call .tr "lookupResultFound" }}</h4>
     63               <hr>
     64               <p class="card-text">
     65                 {{ call .tr "isLinked" .alias }}<br/>
     66                 {{ call .tr "importContactLink" }}
     67                 <a class="link-dark" href="{{.talerAddContactURI}}" class="btn btn-success mb-3">
     68                   {{ call .tr "importContactLinkText" }}
     69                 </a>
     70                 <br/>
     71                 {{ call .tr "importContactQr" }}
     72                 <div class="qr">
     73                   <img class="qr" src="{{.qrCode}}"/>
     74                 </div>
     75               </p>
     76             </div>
     77             <form id="regform">
     78               <input id="atypeInput" type="hidden" name="alias_type" value="{{.alias_type}}">
     79               <input id="addrInput" type="hidden" name="alias" value="{{.alias}}">
     80               <input id="uriInput" type="hidden" name="target_uri" value="">
     81               <div class="row">
     82                 <div class="col-lg-8 offset-lg-2 text-center">
     83                   <div class="input-group mb-3">
     84                     <input disabled="disabled" type="text" class="form-control" aria-label="Default" aria-describedby="inputGroup-sizing-default" value="{{.result}}">
     85                     <input class="input-group-text btn btn-outline-danger" type="submit" value="{{ call .tr "deleteIt" }}">
     86                   </div>
     87                 </div>
     88               </div>
     89             </form>
     90             {{end}}
     91           </div>
     92         </div>
     93        </div>
     94       </div>
     95       {{ template "footer.html" . }}
     96   </body>
     97   <script>
     98     var form = document.getElementById('regform');
     99     form.onsubmit = function(event){
    100       var xhr = new XMLHttpRequest();
    101       var data = new FormData(form);
    102       var atype = data.get("alias_type");
    103       var alias = data.get("alias");
    104       data.delete("alias_type");
    105       xhr.open('POST','/register/' + atype)
    106       xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    107       var json = JSON.stringify(Object.fromEntries(data));
    108       json["duration"] = 1000000000
    109       xhr.send(json);
    110 
    111       xhr.onreadystatechange = function() {
    112         if (xhr.readyState == XMLHttpRequest.DONE) {
    113           form.reset(); //reset form after AJAX success.
    114           var ebanner = document.getElementById('ebanner');
    115           var sbanner = document.getElementById('sbanner');
    116           if (xhr.status == 202) {
    117             sbanner.hidden = false;
    118             ebanner.hidden = true;
    119           } else {
    120             var jsonResponse = JSON.parse(xhr.responseText);
    121             document.getElementById('ebanner-text').innerHTML = jsonResponse.hint;
    122             sbanner.hidden = true;
    123             ebanner.hidden = false;
    124             // window.location.href = "/?error=Registration failed";
    125           }
    126         }
    127       }
    128 
    129       //Dont submit the form.
    130       return false;
    131     }
    132   </script>
    133 </html>