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.

51 lines
1.7 KiB

  1. {% extends 'standard_layout.html.twig' %}
  2. {% block stylesheets %}
  3. {{ parent() }}
  4. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.1.0/main.min.css">
  5. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@4.1.0/main.min.css">
  6. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@4.1.0/main.min.css">
  7. {% endblock %}
  8. {% block javascripts %}
  9. {{ parent() }}
  10. <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.1.0/main.min.js"></script>
  11. <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/interaction@4.1.0/main.min.js"></script>
  12. <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid@4.1.0/main.min.js"></script>
  13. <script src="https://cdn.jsdelivr.net/npm/@fullcalendar/timegrid@4.1.0/main.min.js"></script>
  14. <script>
  15. document.addEventListener('DOMContentLoaded', () => {
  16. var calendarEl = document.getElementById('calendar-holder');
  17. var calendar = new FullCalendar.Calendar(calendarEl, {
  18. defaultView: 'dayGridMonth',
  19. editable: true,
  20. eventSources: [
  21. {
  22. url: "/fc-load-events",
  23. method: "POST",
  24. extraParams: {
  25. filters: JSON.stringify({})
  26. },
  27. failure: () => {
  28. // alert("There was an error while fetching FullCalendar!");
  29. },
  30. },
  31. ],
  32. header: {
  33. left: 'prev,next today',
  34. center: 'title',
  35. right: 'dayGridMonth,timeGridWeek,timeGridDay',
  36. },
  37. plugins: [ 'interaction', 'dayGrid', 'timeGrid' ], // https://fullcalendar.io/docs/plugin-index
  38. timeZone: 'UTC',
  39. });
  40. calendar.render();
  41. });
  42. </script>
  43. {% endblock %}
  44. {% block sonata_page_content %}
  45. <div id="calendar-holder"></div>
  46. {% endblock %}