Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

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 %}