posts.tx 3.5 KB

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