The frontend/UI server, written in JS using the MarkoJS library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.6 KiB

  1. <logs-content-menu on-hightlights("highlightsChanged") user=input.user log=state.log on-select("open") />
  2. <main>
  3. <div class="logs-content">
  4. <div class="header">
  5. <h1 class="color-primary">${component.title}</h1>
  6. <if-permitted user=input.user permission="log.edit">
  7. <a on-click("open", "log.edit") class="color-menu">Edit</a>
  8. </if-permitted>
  9. <if-permitted user=input.user permission="log.remove">
  10. <a on-click("open", "log.remove") class="color-menu">Remove</a>
  11. </if-permitted>
  12. </div>
  13. <annotation if(state.removed) level="error">
  14. <p>
  15. This log has been removed. Your browser has not refreshed the page yet,
  16. so you can still read it (or back it up) before leaving the page.
  17. </p>
  18. </annotation>
  19. <post for(post in state.log.posts | status-var=loop)
  20. key=post.id
  21. on-move("movePost", post)
  22. on-remove("removePost", post)
  23. on-edited("postEdited")
  24. user=input.user
  25. prev=(state.log.posts[loop.getIndex() - 1] || {})
  26. post=post
  27. characters=state.log.characters
  28. highlights=state.highlights
  29. last=(post.position === state.log.posts.length)
  30. />
  31. </div>
  32. <add-post-modal enabled=(state.modal === "post.add") logId=state.log.id on-close("close") on-added("postAdded") />
  33. <edit-log-modal enabled=(state.modal === "log.edit") log=state.log on-close("close") on-edited("logEdited") />
  34. <remove-log-modal enabled=(state.modal === "log.remove") logId=state.log.id on-close("close") on-removed("logRemoved") />
  35. </main>