Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

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