posts.tx 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. : if ( $can_edit ) {
  2. <div id="emoji_picker_modal" class="modal" style="display:none;">
  3. <: component('EmojiPicker') :>
  4. </div>
  5. : if (!$direct) {
  6. : if ($failure != -1) {
  7. : include "jsalert.tx";
  8. : }
  9. <script type="text/javascript">
  10. addEventListener("load", function () {
  11. var buttons = document.querySelectorAll('.emojiPicker');
  12. for (button of buttons) {
  13. // Make the emoji picker appear.
  14. button.addEventListener('click', function (e) {
  15. switchMenu('emoji_picker_modal');
  16. });
  17. }
  18. var mojis = document.querySelectorAll('.emoji');
  19. for (emoji of mojis) {
  20. emoji.addEventListener('click', function (e) {
  21. switchMenu('emoji_picker_modal');
  22. });
  23. }
  24. });
  25. addEventListener("emojiComponentReady", function () {
  26. emojiPicker.addBinds(document.querySelectorAll('textarea.cooltext'));
  27. });
  28. </script>
  29. : }
  30. <div class="postedit">
  31. : if ( $post.form ) {
  32. : include "forms/" ~ $post.form;
  33. : }
  34. </div>
  35. : }
  36. <script>
  37. document.addEventListener("DOMContentLoaded", function(){
  38. hljs.highlightAll();
  39. });
  40. </script>
  41. : if (!$nochrome) {
  42. <span class="title">
  43. : if ( $rss ) {
  44. <a title="RSS" class="rss" href="?format=rss"></a>
  45. <: $category :>:
  46. : }
  47. </span>
  48. : if ( $in_series && $rss ) {
  49. <div class="subhead">
  50. <: $subhead | mark_raw :>
  51. </div>
  52. : }
  53. : if ( !$style && $primary_post.header ) {
  54. <: component('PostHeader', { name => $primary_post.header, post => $primary_post, route => $route }) :>
  55. : }
  56. : if (!$style) {
  57. <hr class="divider" />
  58. : }
  59. : }
  60. : for $posts -> $post {
  61. : if ( !$post.form ) {
  62. : next;
  63. : }
  64. : include "forms/" ~ $post.form { post => $post };
  65. : if ($posts.size() > 1 && !$tiled ) {
  66. <hr class="divider" />
  67. : }
  68. <script type="text/javascript">
  69. document.addEventListener("DOMContentLoaded", function(event) {
  70. // Fix post dates to be localized
  71. var timey = document.querySelectorAll('.unixtimestamp');
  72. for (var e of timey) {
  73. if (parseInt(e.innerText) != e.innerText) {
  74. // Don't do anything.
  75. continue;
  76. }
  77. var d = new Date(0);
  78. d.setUTCSeconds(e.innerText);
  79. e.innerHTML = "&nbsp;" + d.toDateString();
  80. }
  81. //Make the version switcher do things
  82. var swit = document.getElementById("<: $post.id :>-<: $post.version :>-version");
  83. if (swit) {
  84. swit.onchange = function (evt) {
  85. this.form.submit();
  86. };
  87. }
  88. });
  89. </script>
  90. : }
  91. : if ( !$direct && ( $rss || $older ) ) {
  92. : include "paginator.tx";
  93. : }
  94. : if ( !$style && $primary_post.footer ) {
  95. <: component('PostFooter', { name => $primary_post.footer, post => $primary_post, route => $route }) :>
  96. : }
  97. <script>
  98. document.addEventListener("DOMContentLoaded", function(event) {
  99. var pagin = document.getElementById("paginatorTime");
  100. if (pagin) {
  101. var dracula = new Date(0);
  102. dracula.setUTCSeconds(pagin.innerText);
  103. pagin.innerHTML = "&nbsp;" + dracula.toDateString();
  104. }
  105. });
  106. </script>