locator.tpl 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <title>{$title}</title>
  7. <link rel="shortcut icon" href="{$favicon}">
  8. <link href="vendor/twitter/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
  9. <script>
  10. function nominatim(str) {
  11. if (str.length == 0) {
  12. document.getElementById("coordinates").innerHTML = "";
  13. return;
  14. } else {
  15. var xmlhttp = new XMLHttpRequest();
  16. xmlhttp.onreadystatechange = function() {
  17. if (this.readyState == 4 && this.status == 200) {
  18. document.getElementById("coordinates").innerHTML = this.responseText;
  19. }
  20. };
  21. xmlhttp.open("GET", "?address=" + btoa(str), true);
  22. xmlhttp.send();
  23. }
  24. }
  25. function blank() {
  26. document.getElementById("address").value = "Craven Road 7, London";
  27. document.getElementById("coordinates").innerHTML = "";
  28. }
  29. </script>
  30. </head>
  31. <body class="text-center">
  32. <main style="max-width: 350pt; margin: auto;">
  33. <form onsubmit="return false" class="m-5">
  34. <h1 class="h1">{$title}</h1>
  35. <span>Powered by <a href="https://www.openstreetmaps.org">OpenStreetMaps</a>.</span>
  36. <div class="form-floating mt-4">
  37. <input class="form-control" id="address" name="address" type="text" placeholder="Craven Road 7, London" required autofocus>
  38. <label for="address">Address</label>
  39. </div>
  40. <div class="form-floating mt-2">
  41. <div id="coordinates" type="text" ></div>
  42. </div>
  43. <div class="form-floating mt-2">
  44. <button class="btn btn-lg btn-primary m-2" onclick="nominatim(document.getElementById('address').value)" type="submit">
  45. Get coordinates
  46. </button>
  47. <button class="btn btn-lg btn-secondary m-2" onclick="blank()" type="submit">
  48. Clear
  49. </button>
  50. </div>
  51. </form>
  52. </main>
  53. </body>
  54. </html>