Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
5.2KB

  1. {% extends "layouts/default.html" %}
  2. {% block title %}{_ "QR Code Generator" _}{% endblock %}
  3. {% block content %}
  4. <form name="qr-form" id="qr-form">
  5. {{ token | safe }}
  6. </form>
  7. <div class="container">
  8. <h1 class="title">QR Generator</h1>
  9. <div class="columns">
  10. <div class="column is-half">
  11. <!-- textarea -->
  12. <div class="field">
  13. <label class="label" for="string">Text Data</label>
  14. <div class="control">
  15. <textarea class="textarea"
  16. id="string"
  17. name="string"
  18. form="qr-form"
  19. hx-post="/qr"
  20. hx-include="[name='qr-form']"
  21. hx-target="#results"
  22. hx-trigger="keyup changed delay:500ms">{{ string }}</textarea>
  23. </div>
  24. </div>
  25. <!-- form options -->
  26. <div class="columns">
  27. <!-- form option -->
  28. <div class="column is-narrow">
  29. <div class="field is-narrow">
  30. <label class="label" for="ec-level">EC Level</label>
  31. <div class="control">
  32. <div class="select">
  33. <select id="ec-level"
  34. name="ec-level"
  35. form="qr-form"
  36. hx-post="/qr"
  37. hx-include="[name='qr-form']"
  38. hx-target="#results"
  39. hx-trigger="change throttle:500ms">
  40. <option {% if ec-level == "L" %}selected="selected"{% endif %} value="L">L</option>
  41. <option {% if ec-level == "M" %}selected="selected"{% endif %} value="M">M</option>
  42. <option {% if ec-level == "Q" %}selected="selected"{% endif %} value="Q">Q</option>
  43. <option {% if ec-level == "H" %}selected="selected"{% endif %} value="H">H</option>
  44. </select>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <!-- form option -->
  50. <div class="column">
  51. <div class="field">
  52. <label class="label" for="encoding-mode">Encoding Mode</label>
  53. <div class="control">
  54. <div class="select">
  55. <select id="encoding-mode"
  56. name="encoding-mode"
  57. form="qr-form"
  58. hx-post="/qr"
  59. hx-include="[name='qr-form']"
  60. hx-target="#results"
  61. hx-trigger="change throttle:500ms">
  62. <option {% if encoding-mode == "ALPHANUMERIC" %}selected="selected"{% endif %} value="ALPHANUMERIC">ALPHANUMERIC</option>
  63. <option {% if encoding-mode == "8-BIT-BYTE" %}selected="selected"{% endif %} value="8-BIT-BYTE">8-BIT-BYTE</option>
  64. </select>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. <!-- form option -->
  70. <div class="column">
  71. <div class="field is-narrow">
  72. <label class="label" for="mask-number">Mask Number</label>
  73. <div class="control">
  74. <input class="input"
  75. id="mask-number"
  76. name="mask-number"
  77. form="qr-form"
  78. max="7"
  79. min="-1"
  80. type="number"
  81. value="{{ mask-number }}"
  82. hx-post="/qr"
  83. hx-include="[name='qr-form']"
  84. hx-target="#results"
  85. hx-trigger="change throttle:500ms">
  86. </div>
  87. </div>
  88. </div>
  89. <!-- form option -->
  90. <div class="column">
  91. <div class="field is-narrow">
  92. <label class="label" for="min-version">Min. Version</label>
  93. <div class="control">
  94. <input class="input"
  95. id="min-version"
  96. name="min-version"
  97. form="qr-form"
  98. type="number"
  99. min="1"
  100. max="40"
  101. value="{{ min-version }}"
  102. hx-include="[name='qr-form']"
  103. hx-post="/qr"
  104. hx-target="#results"
  105. hx-trigger="change throttle:500ms">
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <!-- Submit button -->
  111. <div class="field">
  112. <div class="control">
  113. <button class="button is-primary"
  114. hx-post="/qr"
  115. hx-include="[name='qr-form']"
  116. hx-target="#results"
  117. hx-trigger="click">Generate</button>
  118. </div>
  119. </div>
  120. <hr>
  121. <div class="message is-info">
  122. <div class="message-header">
  123. Helpful Links:
  124. </div>
  125. <div class="message-body">
  126. <ul>
  127. <li><a href="https://www.thonky.com/qr-code-tutorial/alphanumeric-table">Table of Alphanumeric Values</a></li>
  128. </ul>
  129. </div>
  130. </div>
  131. </div>
  132. <!-- Right hand side: QR Image -->
  133. <div class="column is-half">
  134. <div class="columns is-centered">
  135. <div class="column is-fullwidth">
  136. <div class="card image is-4x3" id="results">
  137. <img src="/public/qr.png" alt="QR Code">
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. {% endblock %}