index.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. {% extends "layout.html" %}
  2. {% set title ='BIBFRAME ScriptShifter' %}
  3. {% block body %}
  4. <style>
  5. body{
  6. font-family: Avenir,Helvetica,Arial,sans-serif;
  7. }
  8. textarea{
  9. width: 99%;
  10. height: 15vh;
  11. padding: 0.5em;
  12. }
  13. #results{
  14. font-size: 1.25em;
  15. background-color: whitesmoke;
  16. margin-top: 1em;
  17. padding: 1em;
  18. }
  19. </style>
  20. <form id="transliterate" action="/transliterate" method="POST">
  21. <fieldset>
  22. <label for="text">Input text</label>
  23. <textarea id="text" name="text"></textarea>
  24. <label for="lang">Language</label>
  25. <select id="lang" name="lang">
  26. {% for k, v in languages.items() %}
  27. <option value="{{ k }}">{{ v["name"] }}</option>
  28. {% endfor %}
  29. </select>
  30. <div>
  31. <label class="label-inline" for="r2s">Roman to Script</label>
  32. <input type="checkbox" id="r2s" name="r2s">
  33. </div>
  34. </fieldset>
  35. <fieldset>
  36. <legend>Capitalize</legend>
  37. <div>
  38. <label class="label-inline" for="no-change">No change</label>
  39. <input
  40. type="radio" id="no-change" name="capitalize"
  41. value="no_change" checked>
  42. </div>
  43. <div>
  44. <label class="label-inline" for="first">First word</label>
  45. <input type="radio" id="first" name="capitalize" value="first">
  46. </div>
  47. <div>
  48. <label class="label-inline" for="all">All words</label>
  49. <input type="radio" id="all" name="capitalize" value="all">
  50. </div>
  51. </fieldset>
  52. <fieldset>
  53. <input class="button-primary" type="submit" value="Transliterate!">
  54. </fieldset>
  55. </form>
  56. <div id="results">
  57. Results will appear here.
  58. </div>
  59. <script type="text/javascript">
  60. document.getElementById('transliterate').addEventListener('submit',(event)=>{
  61. const data = new URLSearchParams();
  62. let capitalize = Array.from(document.getElementsByName("capitalize")).find(r => r.checked).value;
  63. data.append('text',document.getElementById('text').value)
  64. data.append('lang',document.getElementById('lang').value)
  65. if (document.getElementById('r2s').checked){
  66. data.append('r2s','on')
  67. }
  68. data.append('capitalize',capitalize)
  69. fetch('/transliterate', {
  70. method: 'post',
  71. body: data,
  72. })
  73. .then(response=>response.text())
  74. .then((text)=>{
  75. document.getElementById('results').innerText = text
  76. }).catch((error) => {
  77. alert("Error:\n" + error)
  78. });
  79. event.preventDefault()
  80. return false
  81. })
  82. </script>
  83. <!--
  84. <form action="/transliterate" method="POST">
  85. <fieldset>
  86. <label for="text">Input text</label>
  87. <textarea id="text" name="text"></textarea>
  88. <label for="lang">Language</label>
  89. <select id="lang" name="lang">
  90. {% for k, v in languages.items() %}
  91. <option value="{{ k }}">{{ v["name"] }}</option>
  92. {% endfor %}
  93. </select>
  94. <div>
  95. <label class="label-inline" for="r2s">Roman to Script</label>
  96. <input type="checkbox" id="r2s" name="r2s">
  97. </div>
  98. </fieldset>
  99. <fieldset>
  100. <legend>Capitalize</legend>
  101. <div>
  102. <label class="label-inline" for="no-change">No change</label>
  103. <input
  104. type="radio" id="no-change" name="capitalize"
  105. value="no_change" checked>
  106. </div>
  107. <div>
  108. <label class="label-inline" for="first">First word</label>
  109. <input type="radio" id="first" name="capitalize" value="first">
  110. </div>
  111. <div>
  112. <label class="label-inline" for="all">All words</label>
  113. <input type="radio" id="all" name="capitalize" value="all">
  114. </div>
  115. </fieldset>
  116. <fieldset>
  117. <input class="button-primary" type="submit" value="Transliterate!">
  118. </fieldset>
  119. </form> -->
  120. </div>
  121. {% endblock %}