blogpost_editor.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. {{ define "patch_blogpost_editor" }}
  2. <form hx-patch="/admin/posts" hx-ext="json-enc" hx-target="#response" hx-swap="innerHTML">
  3. {{ end }}
  4. {{ define "post_blogpost_editor" }}
  5. <form hx-post="/admin/posts" hx-ext="json-enc" hx-target="#response" hx-swap="innerHTML">
  6. {{ end }}
  7. {{ define "blogpost_editor" }}
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <div class="container-fluid p-2 position-relative"
  11. style="width: 80vw; max-width: 80%; background-color: rgb(22, 22, 22);">
  12. <div class="container">
  13. <div class="row">
  14. <div class="col-sm"></div>
  15. <div class="container position-relative">
  16. <a style="color: white; height: fit-content; font-size: xx-large; font-weight: bold; font-family: monospace;">Making a New Post</a>
  17. <div class="col m-5">
  18. {{ if $.Post }}
  19. {{ template "post_blogpost_editor" }}
  20. {{ else }}
  21. {{ template "patch_blogpost_editor" }}
  22. {{ end }}
  23. <div class="row"
  24. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: larger; font-family: monospace;">
  25. <a>Title:</a>
  26. <textarea name="title"
  27. style="background-color: rgb(73, 73, 73); color: white;">{{ .Title }}</textarea>
  28. </div>
  29. <div class="row"
  30. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: larger; font-family: monospace;">
  31. <a>Post ID:</a>
  32. <textarea name="id"
  33. style="background-color: rgb(73, 73, 73); color: white;">{{ .Ident }}</textarea>
  34. </div>
  35. <div class="row"
  36. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: larger; font-family: monospace;">
  37. <a>Category:</a>
  38. <select name="category" class="form-select"
  39. style="background-color: rgb(73, 73, 73); color: white; height: fit-content; font-size: larger; font-family: monospace;">
  40. <option selected>{{ .DefaultTopic }}</option>
  41. {{ range .Topics }}
  42. <option value="{{ . }}">{{ . }}</option>
  43. {{ end }}
  44. </select>
  45. </div>
  46. <div class="row"
  47. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: large; font-family: monospace;">
  48. <a>Time of creation:</a>
  49. <textarea name="created"
  50. style="background-color: rgb(73, 73, 73); color: white;">{{ .Created }}</textarea>
  51. </div>
  52. <div class="row"
  53. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: larger; font-family: monospace;">
  54. <a>Post Body:</a>
  55. <textarea name="body" rows="30" wrap="soft" id="myTextarea"
  56. style="background-color: rgb(73, 73, 73); color: white;">{{ .Body }}</textarea>
  57. </div>
  58. <div class="row"
  59. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: large; font-family: monospace;">
  60. <div class="image-select">
  61. <!-- visible dropdown button -->
  62. <div class="selected" onclick="toggleDropdown(this)">
  63. <span>Select an image</span>
  64. </div>
  65. <!-- dropdown list -->
  66. <div class="options">
  67. {{ range .ImageIds }}
  68. <div class="option" onclick="chooseImage(this, '{{ . }}')">
  69. <img src="/api/v1/images/{{ . }}">
  70. <span>{{ . }}</span>
  71. </div>
  72. {{ end }}
  73. </div>
  74. <!-- REAL select for form submission -->
  75. <select name="imageId" class="real-select" id="imageSelect">
  76. <option value="">Select an image</option>
  77. {{ range .ImageIds }}
  78. <option value="{{ . }}">{{ . }}</option>
  79. {{ end }}
  80. </select>
  81. </div>
  82. <button
  83. type="button"
  84. hx-on:click="insertSelectedImage()">
  85. Insert Image
  86. </button>
  87. </div>
  88. <div class="row"
  89. style="background-color: rgb(22, 22, 22); color: white; height: fit-content; font-size: larger; font-family: monospace;">
  90. <button type="submit">Send</button><div id="response"></div>
  91. </div>
  92. </form>
  93. </div>
  94. </div>
  95. <div class="col-sm"></div>
  96. </div>
  97. </div>
  98. </div>
  99. </html>
  100. {{ end }}