The version of vichan running on lainchan.org
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

193 行
6.7KB

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <link rel="stylesheet" media="screen" href="/stylesheets/style.css">
  5. <meta charset="utf-8">
  6. {% if config.meta_keywords %}<meta name="keywords" content="{{ config.meta_keywords }}">{% endif %}
  7. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
  8. <link rel='stylesheet' href='/stylesheets/fullcalendar.min.css' />
  9. <script type='text/javascript'>
  10. var active_page = "news";
  11. </script>
  12. <title>{{ settings.title }}</title>
  13. {% include 'header.html' %}
  14. <script src='/js/moment.min.js'></script>
  15. <script src='/js/fullcalendar.min.js'></script>
  16. </head>
  17. <body class="8chan vichan {% if mod %}is-moderator{% else %}is-not-moderator{% endif %}" data-stylesheet="{% if config.default_stylesheet.1 != '' %}{{ config.default_stylesheet.1 }}{% else %}default{% endif %}">
  18. <div class="bar top">
  19. {{ boardlist.top }}
  20. </div>
  21. <header>
  22. <h1 class="glitch" data-text="{{ settings.title }}"> {{ settings.title }}</h1>
  23. <div class="subtitle">{{ settings.subtitle }}</div>
  24. </header>
  25. <div class="ban">
  26. <div id='calendar'></div>
  27. </div>
  28. <hr/>
  29. <footer>
  30. <p class="unimportant" style="margin-top:20px;text-align:center;">- <a href="http://tinyboard.org/">Tinyboard</a> +
  31. <a href='https://int.vichan.net/devel/'>vichan</a> +
  32. <a href='https://github.com/lainchan/lainchan'>lainchan</a> {{ config.version }} -
  33. <br><a href="http://tinyboard.org/">Tinyboard</a> Copyright &copy; 2010-2014 Tinyboard Development Group
  34. <br><a href="https://engine.vichan.net/">vichan</a> Copyright &copy; 2012-2016 vichan-devel
  35. <br><a href="https://github.com/lainchan/lainchan">lainchan</a> Copyright &copy; 2014-2017 lainchan Administration</p>
  36. </footer>
  37. <div class="pages"></div>
  38. <script type='text/javascript'>
  39. $(document).ready(function() {
  40. var calendar = $('#calendar').fullCalendar({
  41. editable: true,
  42. header: {
  43. left: 'prev,next today',
  44. center: 'title',
  45. right: 'month,agendaWeek,agendaDay'
  46. },
  47. events: "calendarpost.php",
  48. eventRender: function(event, element, view) {
  49. if (event.allDay === 'true') {
  50. event.allDay = true;
  51. } else {
  52. event.allDay = false;
  53. }
  54. element.find('.fc-title').append("<br/>" + event.description);
  55. element.css('background-color',event.color);
  56. },
  57. selectable: true,
  58. selectHelper: true,
  59. select: function(start, end, allDay) {
  60. var title = prompt('Event Title:');
  61. var description = prompt('Event Description:');
  62. var url = prompt("Event URL");
  63. var color = prompt("Event Color");
  64. var starttime = prompt("Event Start Time");
  65. var endtime = prompt("Event End Time");
  66. if (title) {
  67. var startmoment = moment(start);
  68. var endmoment = moment(end);
  69. var start = startmoment.format('YYYY-MM-DD HH:mm:ss');
  70. var end = endmoment.format('YYYY-MM-DD HH:mm:ss');
  71. if (starttime && endtime){
  72. var starttimemoment = moment(starttime,'HH:mm');
  73. var endtimemoment = moment(endtime,'HH:mm');
  74. startmoment.hour(starttimemoment.hour());
  75. startmoment.minute(starttimemoment.minute());
  76. endmoment.hour(endtimemoment.hour());
  77. endmoment.minute(endtimemoment.minute());
  78. endmoment.subtract(1, "days");
  79. allday = false;
  80. start = startmoment.format('YYYY-MM-DD HH:mm:ss');
  81. end = endmoment.format('YYYY-MM-DD HH:mm:ss');
  82. }
  83. $.ajax({
  84. url: 'calendarpost.php',
  85. data: 'type=add&title='+ title+'&description='+ description +'&start='+ start +'&end='+ end + '&url='+url+'&color='+color,
  86. type: "POST",
  87. success: function(json) {
  88. alert('Added Successfully');
  89. }
  90. });
  91. calendar.fullCalendar('renderEvent',
  92. {
  93. title: title,
  94. description: description,
  95. start: start,
  96. end: end,
  97. allDay: allDay,
  98. url: url,
  99. color:color,
  100. },
  101. true
  102. );
  103. }
  104. calendar.fullCalendar('unselect');
  105. },
  106. editable: true,
  107. eventDrop: function(event, delta) {
  108. var startmoment = moment(start);
  109. var endmoment = moment(end);
  110. var start = startmoment.format('YYYY-MM-DD HH:mm:ss');
  111. var end = endmoment.format('YYYY-MM-DD HH:mm:ss');
  112. var starttime = prompt("Event Start Time");
  113. var endtime = prompt("Event End Time");
  114. if (starttime && endtime){
  115. var starttimemoment = moment(starttime,'HH:mm');
  116. var endtimemoment = moment(endtime,'HH:mm');
  117. startmoment.hour(starttimemoment.hour());
  118. startmoment.minute(starttimemoment.minute());
  119. endmoment.hour(endtimemoment.hour());
  120. endmoment.minute(endtimemoment.minute());
  121. allday = false;
  122. endmoment.subtract(1, "days");
  123. start = startmoment.format('YYYY-MM-DD HH:mm:ss');
  124. end = endmoment.format('YYYY-MM-DD HH:mm:ss');
  125. }
  126. $.ajax({
  127. url: 'calendarpost.php',
  128. data: 'type=update&title='+ event.title+'&description='+ event.description + '&start='+ start +'&end='+ end +'&id='+ event.id +'&color=' + event.color +'&url=' + event.url ,
  129. type: "POST",
  130. success: function(json) {
  131. alert("Updated Successfully");
  132. }
  133. });
  134. },
  135. eventClick: function(event) {
  136. var decision = confirm("Do you really want to do that?");
  137. if (decision) {
  138. $.ajax({
  139. type: "POST",
  140. url: 'calendarpost.php',
  141. data: "type=delete&id=" + event.id,
  142. success: function(json) {
  143. $('#calendar').fullCalendar('removeEvents', event.id);
  144. alert("Updated Successfully");}
  145. });
  146. return false;
  147. }
  148. },
  149. eventResize: function(event) {
  150. var startmoment = moment(start);
  151. var endmoment = moment(end);
  152. var start = moment(start).format('YYYY-MM-DD HH:mm:ss');
  153. var end = moment(end).format('YYYY-MM-DD HH:mm:ss');
  154. var starttime = prompt("Event Start Time");
  155. var endtime = prompt("Event End Time");
  156. if (starttime && endtime){
  157. var starttimemoment = moment(starttime,'HH:mm');
  158. var endtimemoment = moment(endtime,'HH:mm');
  159. startmoment.hour(starttimemoment.hour());
  160. startmoment.minute(starttimemoment.minute());
  161. endmoment.hour(endtimemoment.hour());
  162. endmoment.minute(endtimemoment.minute());
  163. allday = false;
  164. endmoment.subtract(1, "days");
  165. start = startmoment.format('YYYY-MM-DD HH:mm:ss');
  166. end = endmoment.format('YYYY-MM-DD HH:mm:ss');
  167. }
  168. $.ajax({
  169. url: 'calendarpost.php',
  170. data: 'type=update&title='+ event.title+'&description='+ event.description + '&start='+ start +'&end='+ end +'&id='+ event.id +'&color=' + event.color +'&url=' + event.url ,
  171. type: "POST",
  172. success: function(json) {
  173. alert("Updated Successfully");
  174. }
  175. });
  176. }
  177. });
  178. });
  179. </script>
  180. <script type="text/javascript">{% raw %}
  181. ready();
  182. {% endraw %}</script>
  183. </body>
  184. </html>