Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

89 Zeilen
2.8KB

  1. {% extends "layouts/default.html" %}
  2. {% block title %}{_ "File Uploader" _}{% endblock %}
  3. {% block content %}
  4. <form name="file-form" id="file-form"
  5. enctype="multipart/form-data" method="post">
  6. {{ token | safe }}
  7. <input type="hidden" name="MAX_FILE_SIZE" value="100000">
  8. </form>
  9. <div class="content">
  10. {% if files %}
  11. <h2>Files</h2>
  12. <div class="columns is-multiline">
  13. {% for image in files %}
  14. <div class="column" id="image-{{ image.id }}">
  15. <div class="card">
  16. <div class="card-content">
  17. <div class="media">
  18. <div class="media-left">
  19. <p class="image" style="width:64px">
  20. <a href="{{ image.url }}" target="_blank" data-lightbox="{{ image.url }}">
  21. <img class="has-ratio" src="{{ image.icon }}">
  22. </a>
  23. </p>
  24. </div>
  25. <div class="media-content">
  26. <div class="content">
  27. <p><b>File Key:</b> {{ image.attachment.file-key }}</p>
  28. <p><b>File Size:</b> {{ image.attachment.file-size }}</p>
  29. </div>
  30. </div>
  31. <div class="media-right">
  32. <button class="delete"
  33. hx-confirm="Delete {{ image.id }} - Are you sure?"
  34. hx-delete="/upload/{{ image.id }}"
  35. hx-include="[name='file-form']"
  36. hx-swap="outerHTML swap:1s"
  37. hx-target="#image-{{ image.id }}"></button>
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. {% endfor %}
  44. </div>
  45. <hr>
  46. {% endif %}
  47. <div style="flex: 1;">
  48. <div class="columns is-flex is-centered is-vcentered">
  49. <div class="column is-half">
  50. <div class="field">
  51. <div id="file-js" class="file has-name is-boxed is-fullwidth">
  52. <label class="file-label">
  53. <input class="file-input" type="file" name="files[]" id="files" multiple="multiple" form="file-form">
  54. <span class="file-cta">
  55. <span class="file-icon">
  56. <i class="fas fa-upload"></i>
  57. </span>
  58. <span class="file-label">
  59. Choose a file&hellip;
  60. </span>
  61. </span>
  62. <span class="file-name">
  63. No file uploaded
  64. </span>
  65. </label>
  66. </div>
  67. {% include "file-js.html" :target "#file-js" %}
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. <div class="columns is-centered">
  73. <div class="column is-1">
  74. <div class="field">
  75. <div class="control">
  76. <button class="button is-primary"
  77. form="file-form"
  78. type="submit">Process</button>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. {% endblock %}