paginator.tx 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. :if ( $pages ) {
  2. <div id="paginator">
  3. : } else {
  4. <div id="paginator" class="disabled">
  5. : }
  6. : if ( $older ) {
  7. <div style="float:left; margin-top:.5rem;"> <: $limit :> most recent posts older than <span id="paginatorTime"><: $older :></span></div>
  8. : }
  9. <div style="float:right;">
  10. <a href="?older=<: $older :>&limit=<: $limit :><: if( $like ) { "&like=" ~ $like } :>">Prev</a>
  11. Size:
  12. <form style="display:inline;">
  13. : if ( $older ) {
  14. <input type="hidden" name="older" value="<: $older :>" />
  15. : }
  16. : if ( $like ) {
  17. <input type="hidden" name="like" value="<: $like :>" />
  18. : }
  19. <select name="limit" class="coolbutton">
  20. : for $sizes -> $size {
  21. <option value="<: $size :>"><: $size :></option>
  22. : }
  23. </select>
  24. </form>
  25. Jump to:
  26. <form style="display:inline;" id="paginator-jump">
  27. <select name="year" class="coolbutton">
  28. : for $years -> $year {
  29. <option value="<: $year :>"><: $year :></option>
  30. : }
  31. </select>
  32. <select name="month" class="coolbutton">
  33. : for $months -> $month {
  34. <option value="<: $month :>"><: $month :></option>
  35. : }
  36. </select>
  37. <input type="hidden" name="older" value="" />
  38. <input type="submit" class="coolbutton" value="Go" />
  39. </form>
  40. </div>
  41. </div>
  42. <script type="text/javascript">
  43. function updateOlder () {
  44. var year = document.querySelector("#paginator-jump select[name='year']");
  45. var month = document.querySelector("#paginator-jump select[name='month']");
  46. var older = document.querySelector("#paginator-jump input[name='older']");
  47. if (older) {
  48. var d = new Date(0);
  49. d.setYear(year.value);
  50. d.setMonth(month.value);
  51. d.setDate(0);
  52. older.value = d.getTime() / 1000;
  53. }
  54. }
  55. document.addEventListener("DOMContentLoaded", function(event) {
  56. updateOlder();
  57. var months = document.querySelectorAll("#paginator-jump select[name='month'] option");
  58. var d = new Date();
  59. for (var month of months) {
  60. d.setMonth(month.value);
  61. month.innerHTML = d.toLocaleString('default', { month: 'long' });
  62. }
  63. //Ensure the 'older' value updates
  64. var m = document.querySelector("#paginator-jump select[name='month']");
  65. if (m) {
  66. m.onchange = function (evt) {
  67. updateOlder();
  68. };
  69. }
  70. var y = document.querySelector("#paginator-jump select[name='year']");
  71. if (y) {
  72. y.onchange = function (evt) {
  73. updateOlder();
  74. };
  75. }
  76. });
  77. </script>