Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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