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.

109 lines
4.6 KiB

  1. import moment from "moment"
  2. <div class=["comment", "mode-" + input.mode.toLowerCase()]>
  3. <if (input.mode === "Message")>
  4. <div class="metadata">
  5. <div class="options color-menu">
  6. <if-permitted user=input.user author=input.comment.author permission="story.edit">
  7. <a on-click("open", "editComment", input.comment) >Edit</a>
  8. </if-permitted>
  9. <if-permitted user=input.user author=input.comment.author permission="story.edit">
  10. <a on-click("open", "removeComment", input.comment) >Remove</a>
  11. </if-permitted>
  12. </div>
  13. <chapter-meta weak kind="date" value=input.comment.createdDate />
  14. <chapter-meta weak kind="author" value=input.comment.author />
  15. </div>
  16. <div class="content color-blockquote">
  17. <table class="header">
  18. <tbody>
  19. <tr if(input.comment.subject != "")>
  20. <th>Subject:</th>
  21. <td>${input.comment.subject}</td>
  22. </tr>
  23. <tr>
  24. <th>From:</th>
  25. <td>
  26. <div if(input.comment.character != null) class="tooltip" style="display: inline-block">
  27. <span>${input.comment.characterName}</span>
  28. <div class="tooltip-content color-highlight-dark">
  29. <h1>${input.comment.character.name}</h1>
  30. <h2>${input.comment.character.author}</h2>
  31. <markdown source=input.comment.character.description />
  32. </div>
  33. </div>
  34. <div else>
  35. <span>${input.comment.characterName}</span>
  36. </div>
  37. </td>
  38. </tr>
  39. <tr if(input.comment.fictionalDate != null)>
  40. <th>Date:</th>
  41. <td>${moment(input.comment.fictionalDate).format("MMM D, YYYY")}</td>
  42. </tr>
  43. </tbody>
  44. </table>
  45. <markdown class="body" source=input.comment.source />
  46. </div>
  47. </if>
  48. <if(input.mode === "Chat")>
  49. <div class="content">
  50. <div class="options color-menu">
  51. <if-permitted user=input.user author=input.comment.author permission="story.edit">
  52. <a on-click("open", "editComment", input.comment) >Edit</a>
  53. </if-permitted>
  54. <if-permitted user=input.user author=input.comment.author permission="story.edit">
  55. <a on-click("open", "removeComment", input.comment) >Remove</a>
  56. </if-permitted>
  57. </div>
  58. <for (paragraph in state.paragraphs)>
  59. <div class="message-text color-text">
  60. <markdown class="body" source=paragraph>
  61. <span class="decoration color-menu">[</span>
  62. <date class="color-menu" value=input.comment.fictionalDate></date>
  63. <span class="decoration color-menu">]&nbsp;</span>
  64. <span class="decoration color-menu">&lt;</span>
  65. <span if(input.comment.character != null) class="tooltip color-primary">
  66. <span>${input.comment.characterName}</span>
  67. <div class="tooltip-content color-highlight-dark color-primary">
  68. <h1>${input.comment.character.name}</h1>
  69. <h2>${input.comment.character.author}</h2>
  70. <markdown source=input.comment.character.description />
  71. </div>
  72. </span>
  73. <span class="tooltip color-primary" else>
  74. <span>${input.comment.characterName}</span>
  75. <div class="tooltip-content color-highlight-dark color-primary">
  76. <h1>(Unknown Character)</h1>
  77. <h2>${input.comment.author}</h2>
  78. </div>
  79. </span>
  80. <span class="decoration color-menu">&gt;&nbsp;</span>
  81. </markdown>
  82. </div>
  83. </for>
  84. </div>
  85. </if>
  86. <if(input.mode === "Article")>
  87. <div class="metadata">
  88. <div class="options color-menu">
  89. <if-permitted user=input.user author=input.comment.author permission="story.edit">
  90. <a on-click("open", "editComment", input.comment) >Edit</a>
  91. </if-permitted>
  92. <if-permitted user=input.user author=input.comment.author permission="story.edit">
  93. <a on-click("open", "removeComment", input.comment) >Remove</a>
  94. </if-permitted>
  95. </div>
  96. <chapter-meta kind="title" value=input.comment.subject />
  97. <chapter-meta kind="name" value=input.comment.characterName character=input.comment.character />
  98. <chapter-meta kind="date" value=input.comment.fictionalDate />
  99. <chapter-meta weak kind="date" value=input.comment.createdDate />
  100. <chapter-meta weak kind="author" value=input.comment.author />
  101. </div>
  102. <div class="content color-text">
  103. <markdown class="body" source=input.comment.source />
  104. </div>
  105. </if>
  106. </div>