diff options
| author | polo <ordipolo@gmx.fr> | 2025-06-23 03:33:38 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-06-23 03:33:38 +0200 |
| commit | cebc19ef236aac2968d2ffccfcff9b975b63fa8d (patch) | |
| tree | 5b8e08045a45063475f533bfae4b4524720fe7bd /public/js/fullcalendar/examples | |
| parent | 8cf5ac1abf9e2a6134cb82d4582aecaa99b1331a (diff) | |
| download | cms-cebc19ef236aac2968d2ffccfcff9b975b63fa8d.tar.gz cms-cebc19ef236aac2968d2ffccfcff9b975b63fa8d.tar.bz2 cms-cebc19ef236aac2968d2ffccfcff9b975b63fa8d.zip | |
fullcalendar
Diffstat (limited to 'public/js/fullcalendar/examples')
| -rw-r--r-- | public/js/fullcalendar/examples/background-events.html | 101 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/daygrid-views.html | 104 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/external-dragging-2cals.html | 69 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/external-dragging-builtin.html | 149 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/full-height.html | 125 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/list-sticky-header.html | 76 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/list-views.html | 114 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/month-view.html | 100 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/multimonth-view.html | 110 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/multiweek-view.html | 107 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/natural-height.html | 108 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/selectable.html | 123 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/timegrid-views-modal.html | 180 | ||||
| -rw-r--r-- | public/js/fullcalendar/examples/timegrid-views.html | 108 |
14 files changed, 1574 insertions, 0 deletions
diff --git a/public/js/fullcalendar/examples/background-events.html b/public/js/fullcalendar/examples/background-events.html new file mode 100644 index 0000000..911e0b3 --- /dev/null +++ b/public/js/fullcalendar/examples/background-events.html | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | headerToolbar: { | ||
| 13 | left: 'prev,next today', | ||
| 14 | center: 'title', | ||
| 15 | right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth' | ||
| 16 | }, | ||
| 17 | initialDate: '2023-01-12', | ||
| 18 | navLinks: true, // can click day/week names to navigate views | ||
| 19 | businessHours: true, // display business hours | ||
| 20 | editable: true, | ||
| 21 | selectable: true, | ||
| 22 | events: [ | ||
| 23 | { | ||
| 24 | title: 'Business Lunch', | ||
| 25 | start: '2023-01-03T13:00:00', | ||
| 26 | constraint: 'businessHours' | ||
| 27 | }, | ||
| 28 | { | ||
| 29 | title: 'Meeting', | ||
| 30 | start: '2023-01-13T11:00:00', | ||
| 31 | constraint: 'availableForMeeting', // defined below | ||
| 32 | color: '#257e4a' | ||
| 33 | }, | ||
| 34 | { | ||
| 35 | title: 'Conference', | ||
| 36 | start: '2023-01-18', | ||
| 37 | end: '2023-01-20' | ||
| 38 | }, | ||
| 39 | { | ||
| 40 | title: 'Party', | ||
| 41 | start: '2023-01-29T20:00:00' | ||
| 42 | }, | ||
| 43 | |||
| 44 | // areas where "Meeting" must be dropped | ||
| 45 | { | ||
| 46 | groupId: 'availableForMeeting', | ||
| 47 | start: '2023-01-11T10:00:00', | ||
| 48 | end: '2023-01-11T16:00:00', | ||
| 49 | display: 'background' | ||
| 50 | }, | ||
| 51 | { | ||
| 52 | groupId: 'availableForMeeting', | ||
| 53 | start: '2023-01-13T10:00:00', | ||
| 54 | end: '2023-01-13T16:00:00', | ||
| 55 | display: 'background' | ||
| 56 | }, | ||
| 57 | |||
| 58 | // red areas where no events can be dropped | ||
| 59 | { | ||
| 60 | start: '2023-01-24', | ||
| 61 | end: '2023-01-28', | ||
| 62 | overlap: false, | ||
| 63 | display: 'background', | ||
| 64 | color: '#ff9f89' | ||
| 65 | }, | ||
| 66 | { | ||
| 67 | start: '2023-01-06', | ||
| 68 | end: '2023-01-08', | ||
| 69 | overlap: false, | ||
| 70 | display: 'background', | ||
| 71 | color: '#ff9f89' | ||
| 72 | } | ||
| 73 | ] | ||
| 74 | }); | ||
| 75 | |||
| 76 | calendar.render(); | ||
| 77 | }); | ||
| 78 | |||
| 79 | </script> | ||
| 80 | <style> | ||
| 81 | |||
| 82 | body { | ||
| 83 | margin: 40px 10px; | ||
| 84 | padding: 0; | ||
| 85 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 86 | font-size: 14px; | ||
| 87 | } | ||
| 88 | |||
| 89 | #calendar { | ||
| 90 | max-width: 1100px; | ||
| 91 | margin: 0 auto; | ||
| 92 | } | ||
| 93 | |||
| 94 | </style> | ||
| 95 | </head> | ||
| 96 | <body> | ||
| 97 | |||
| 98 | <div id='calendar'></div> | ||
| 99 | |||
| 100 | </body> | ||
| 101 | </html> | ||
diff --git a/public/js/fullcalendar/examples/daygrid-views.html b/public/js/fullcalendar/examples/daygrid-views.html new file mode 100644 index 0000000..9dafe43 --- /dev/null +++ b/public/js/fullcalendar/examples/daygrid-views.html | |||
| @@ -0,0 +1,104 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | headerToolbar: { | ||
| 13 | left: 'prevYear,prev,next,nextYear today', | ||
| 14 | center: 'title', | ||
| 15 | right: 'dayGridMonth,dayGridWeek,dayGridDay' | ||
| 16 | }, | ||
| 17 | initialDate: '2023-01-12', | ||
| 18 | navLinks: true, // can click day/week names to navigate views | ||
| 19 | editable: true, | ||
| 20 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 21 | events: [ | ||
| 22 | { | ||
| 23 | title: 'All Day Event', | ||
| 24 | start: '2023-01-01' | ||
| 25 | }, | ||
| 26 | { | ||
| 27 | title: 'Long Event', | ||
| 28 | start: '2023-01-07', | ||
| 29 | end: '2023-01-10' | ||
| 30 | }, | ||
| 31 | { | ||
| 32 | groupId: 999, | ||
| 33 | title: 'Repeating Event', | ||
| 34 | start: '2023-01-09T16:00:00' | ||
| 35 | }, | ||
| 36 | { | ||
| 37 | groupId: 999, | ||
| 38 | title: 'Repeating Event', | ||
| 39 | start: '2023-01-16T16:00:00' | ||
| 40 | }, | ||
| 41 | { | ||
| 42 | title: 'Conference', | ||
| 43 | start: '2023-01-11', | ||
| 44 | end: '2023-01-13' | ||
| 45 | }, | ||
| 46 | { | ||
| 47 | title: 'Meeting', | ||
| 48 | start: '2023-01-12T10:30:00', | ||
| 49 | end: '2023-01-12T12:30:00' | ||
| 50 | }, | ||
| 51 | { | ||
| 52 | title: 'Lunch', | ||
| 53 | start: '2023-01-12T12:00:00' | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | title: 'Meeting', | ||
| 57 | start: '2023-01-12T14:30:00' | ||
| 58 | }, | ||
| 59 | { | ||
| 60 | title: 'Happy Hour', | ||
| 61 | start: '2023-01-12T17:30:00' | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | title: 'Dinner', | ||
| 65 | start: '2023-01-12T20:00:00' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | title: 'Birthday Party', | ||
| 69 | start: '2023-01-13T07:00:00' | ||
| 70 | }, | ||
| 71 | { | ||
| 72 | title: 'Click for Google', | ||
| 73 | url: 'http://google.com/', | ||
| 74 | start: '2023-01-28' | ||
| 75 | } | ||
| 76 | ] | ||
| 77 | }); | ||
| 78 | |||
| 79 | calendar.render(); | ||
| 80 | }); | ||
| 81 | |||
| 82 | </script> | ||
| 83 | <style> | ||
| 84 | |||
| 85 | body { | ||
| 86 | margin: 40px 10px; | ||
| 87 | padding: 0; | ||
| 88 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 89 | font-size: 14px; | ||
| 90 | } | ||
| 91 | |||
| 92 | #calendar { | ||
| 93 | max-width: 1100px; | ||
| 94 | margin: 0 auto; | ||
| 95 | } | ||
| 96 | |||
| 97 | </style> | ||
| 98 | </head> | ||
| 99 | <body> | ||
| 100 | |||
| 101 | <div id='calendar'></div> | ||
| 102 | |||
| 103 | </body> | ||
| 104 | </html> | ||
diff --git a/public/js/fullcalendar/examples/external-dragging-2cals.html b/public/js/fullcalendar/examples/external-dragging-2cals.html new file mode 100644 index 0000000..066685d --- /dev/null +++ b/public/js/fullcalendar/examples/external-dragging-2cals.html | |||
| @@ -0,0 +1,69 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var srcCalendarEl = document.getElementById('source-calendar'); | ||
| 10 | var destCalendarEl = document.getElementById('destination-calendar'); | ||
| 11 | |||
| 12 | var srcCalendar = new FullCalendar.Calendar(srcCalendarEl, { | ||
| 13 | editable: true, | ||
| 14 | initialDate: '2023-01-12', | ||
| 15 | events: [ | ||
| 16 | { | ||
| 17 | title: 'event1', | ||
| 18 | start: '2023-01-11T10:00:00', | ||
| 19 | end: '2023-01-11T16:00:00' | ||
| 20 | }, | ||
| 21 | { | ||
| 22 | title: 'event2', | ||
| 23 | start: '2023-01-13T10:00:00', | ||
| 24 | end: '2023-01-13T16:00:00' | ||
| 25 | } | ||
| 26 | ], | ||
| 27 | eventLeave: function(info) { | ||
| 28 | console.log('event left!', info.event); | ||
| 29 | } | ||
| 30 | }); | ||
| 31 | |||
| 32 | var destCalendar = new FullCalendar.Calendar(destCalendarEl, { | ||
| 33 | initialDate: '2023-01-12', | ||
| 34 | editable: true, | ||
| 35 | droppable: true, // will let it receive events! | ||
| 36 | eventReceive: function(info) { | ||
| 37 | console.log('event received!', info.event); | ||
| 38 | } | ||
| 39 | }); | ||
| 40 | |||
| 41 | srcCalendar.render(); | ||
| 42 | destCalendar.render(); | ||
| 43 | }); | ||
| 44 | |||
| 45 | </script> | ||
| 46 | <style> | ||
| 47 | |||
| 48 | body { | ||
| 49 | margin: 20px 0 0 20px; | ||
| 50 | font-size: 14px; | ||
| 51 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 52 | } | ||
| 53 | |||
| 54 | #source-calendar, | ||
| 55 | #destination-calendar { | ||
| 56 | float: left; | ||
| 57 | width: 600px; | ||
| 58 | margin: 0 20px 20px 0; | ||
| 59 | } | ||
| 60 | |||
| 61 | </style> | ||
| 62 | </head> | ||
| 63 | <body> | ||
| 64 | |||
| 65 | <div id='source-calendar'></div> | ||
| 66 | <div id='destination-calendar'></div> | ||
| 67 | |||
| 68 | </body> | ||
| 69 | </html> | ||
diff --git a/public/js/fullcalendar/examples/external-dragging-builtin.html b/public/js/fullcalendar/examples/external-dragging-builtin.html new file mode 100644 index 0000000..78fcd89 --- /dev/null +++ b/public/js/fullcalendar/examples/external-dragging-builtin.html | |||
| @@ -0,0 +1,149 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | |||
| 10 | /* initialize the external events | ||
| 11 | -----------------------------------------------------------------*/ | ||
| 12 | |||
| 13 | var containerEl = document.getElementById('external-events-list'); | ||
| 14 | new FullCalendar.Draggable(containerEl, { | ||
| 15 | itemSelector: '.fc-event', | ||
| 16 | eventData: function(eventEl) { | ||
| 17 | return { | ||
| 18 | title: eventEl.innerText.trim() | ||
| 19 | } | ||
| 20 | } | ||
| 21 | }); | ||
| 22 | |||
| 23 | //// the individual way to do it | ||
| 24 | // var containerEl = document.getElementById('external-events-list'); | ||
| 25 | // var eventEls = Array.prototype.slice.call( | ||
| 26 | // containerEl.querySelectorAll('.fc-event') | ||
| 27 | // ); | ||
| 28 | // eventEls.forEach(function(eventEl) { | ||
| 29 | // new FullCalendar.Draggable(eventEl, { | ||
| 30 | // eventData: { | ||
| 31 | // title: eventEl.innerText.trim(), | ||
| 32 | // } | ||
| 33 | // }); | ||
| 34 | // }); | ||
| 35 | |||
| 36 | /* initialize the calendar | ||
| 37 | -----------------------------------------------------------------*/ | ||
| 38 | |||
| 39 | var calendarEl = document.getElementById('calendar'); | ||
| 40 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 41 | headerToolbar: { | ||
| 42 | left: 'prev,next today', | ||
| 43 | center: 'title', | ||
| 44 | right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek' | ||
| 45 | }, | ||
| 46 | editable: true, | ||
| 47 | droppable: true, // this allows things to be dropped onto the calendar | ||
| 48 | drop: function(arg) { | ||
| 49 | // is the "remove after drop" checkbox checked? | ||
| 50 | if (document.getElementById('drop-remove').checked) { | ||
| 51 | // if so, remove the element from the "Draggable Events" list | ||
| 52 | arg.draggedEl.parentNode.removeChild(arg.draggedEl); | ||
| 53 | } | ||
| 54 | } | ||
| 55 | }); | ||
| 56 | calendar.render(); | ||
| 57 | |||
| 58 | }); | ||
| 59 | |||
| 60 | </script> | ||
| 61 | <style> | ||
| 62 | |||
| 63 | body { | ||
| 64 | margin-top: 40px; | ||
| 65 | font-size: 14px; | ||
| 66 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 67 | } | ||
| 68 | |||
| 69 | #external-events { | ||
| 70 | position: fixed; | ||
| 71 | left: 20px; | ||
| 72 | top: 20px; | ||
| 73 | width: 150px; | ||
| 74 | padding: 0 10px; | ||
| 75 | border: 1px solid #ccc; | ||
| 76 | background: #eee; | ||
| 77 | text-align: left; | ||
| 78 | } | ||
| 79 | |||
| 80 | #external-events h4 { | ||
| 81 | font-size: 16px; | ||
| 82 | margin-top: 0; | ||
| 83 | padding-top: 1em; | ||
| 84 | } | ||
| 85 | |||
| 86 | #external-events .fc-event { | ||
| 87 | margin: 3px 0; | ||
| 88 | cursor: move; | ||
| 89 | } | ||
| 90 | |||
| 91 | #external-events p { | ||
| 92 | margin: 1.5em 0; | ||
| 93 | font-size: 11px; | ||
| 94 | color: #666; | ||
| 95 | } | ||
| 96 | |||
| 97 | #external-events p input { | ||
| 98 | margin: 0; | ||
| 99 | vertical-align: middle; | ||
| 100 | } | ||
| 101 | |||
| 102 | #calendar-wrap { | ||
| 103 | margin-left: 200px; | ||
| 104 | } | ||
| 105 | |||
| 106 | #calendar { | ||
| 107 | max-width: 1100px; | ||
| 108 | margin: 0 auto; | ||
| 109 | } | ||
| 110 | |||
| 111 | </style> | ||
| 112 | </head> | ||
| 113 | <body> | ||
| 114 | <div id='wrap'> | ||
| 115 | |||
| 116 | <div id='external-events'> | ||
| 117 | <h4>Draggable Events</h4> | ||
| 118 | |||
| 119 | <div id='external-events-list'> | ||
| 120 | <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'> | ||
| 121 | <div class='fc-event-main'>My Event 1</div> | ||
| 122 | </div> | ||
| 123 | <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'> | ||
| 124 | <div class='fc-event-main'>My Event 2</div> | ||
| 125 | </div> | ||
| 126 | <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'> | ||
| 127 | <div class='fc-event-main'>My Event 3</div> | ||
| 128 | </div> | ||
| 129 | <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'> | ||
| 130 | <div class='fc-event-main'>My Event 4</div> | ||
| 131 | </div> | ||
| 132 | <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'> | ||
| 133 | <div class='fc-event-main'>My Event 5</div> | ||
| 134 | </div> | ||
| 135 | </div> | ||
| 136 | |||
| 137 | <p> | ||
| 138 | <input type='checkbox' id='drop-remove' /> | ||
| 139 | <label for='drop-remove'>remove after drop</label> | ||
| 140 | </p> | ||
| 141 | </div> | ||
| 142 | |||
| 143 | <div id='calendar-wrap'> | ||
| 144 | <div id='calendar'></div> | ||
| 145 | </div> | ||
| 146 | |||
| 147 | </div> | ||
| 148 | </body> | ||
| 149 | </html> | ||
diff --git a/public/js/fullcalendar/examples/full-height.html b/public/js/fullcalendar/examples/full-height.html new file mode 100644 index 0000000..18b55f8 --- /dev/null +++ b/public/js/fullcalendar/examples/full-height.html | |||
| @@ -0,0 +1,125 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | height: '100%', | ||
| 13 | expandRows: true, | ||
| 14 | slotMinTime: '08:00', | ||
| 15 | slotMaxTime: '20:00', | ||
| 16 | headerToolbar: { | ||
| 17 | left: 'prev,next today', | ||
| 18 | center: 'title', | ||
| 19 | right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek' | ||
| 20 | }, | ||
| 21 | initialView: 'dayGridMonth', | ||
| 22 | initialDate: '2023-01-12', | ||
| 23 | navLinks: true, // can click day/week names to navigate views | ||
| 24 | editable: true, | ||
| 25 | selectable: true, | ||
| 26 | nowIndicator: true, | ||
| 27 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 28 | events: [ | ||
| 29 | { | ||
| 30 | title: 'All Day Event', | ||
| 31 | start: '2023-01-01', | ||
| 32 | }, | ||
| 33 | { | ||
| 34 | title: 'Long Event', | ||
| 35 | start: '2023-01-07', | ||
| 36 | end: '2023-01-10' | ||
| 37 | }, | ||
| 38 | { | ||
| 39 | groupId: 999, | ||
| 40 | title: 'Repeating Event', | ||
| 41 | start: '2023-01-09T16:00:00' | ||
| 42 | }, | ||
| 43 | { | ||
| 44 | groupId: 999, | ||
| 45 | title: 'Repeating Event', | ||
| 46 | start: '2023-01-16T16:00:00' | ||
| 47 | }, | ||
| 48 | { | ||
| 49 | title: 'Conference', | ||
| 50 | start: '2023-01-11', | ||
| 51 | end: '2023-01-13' | ||
| 52 | }, | ||
| 53 | { | ||
| 54 | title: 'Meeting', | ||
| 55 | start: '2023-01-12T10:30:00', | ||
| 56 | end: '2023-01-12T12:30:00' | ||
| 57 | }, | ||
| 58 | { | ||
| 59 | title: 'Lunch', | ||
| 60 | start: '2023-01-12T12:00:00' | ||
| 61 | }, | ||
| 62 | { | ||
| 63 | title: 'Meeting', | ||
| 64 | start: '2023-01-12T14:30:00' | ||
| 65 | }, | ||
| 66 | { | ||
| 67 | title: 'Happy Hour', | ||
| 68 | start: '2023-01-12T17:30:00' | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | title: 'Dinner', | ||
| 72 | start: '2023-01-12T20:00:00' | ||
| 73 | }, | ||
| 74 | { | ||
| 75 | title: 'Birthday Party', | ||
| 76 | start: '2023-01-13T07:00:00' | ||
| 77 | }, | ||
| 78 | { | ||
| 79 | title: 'Click for Google', | ||
| 80 | url: 'http://google.com/', | ||
| 81 | start: '2023-01-28' | ||
| 82 | } | ||
| 83 | ] | ||
| 84 | }); | ||
| 85 | |||
| 86 | calendar.render(); | ||
| 87 | }); | ||
| 88 | |||
| 89 | </script> | ||
| 90 | <style> | ||
| 91 | |||
| 92 | html, body { | ||
| 93 | overflow: hidden; /* don't do scrollbars */ | ||
| 94 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 95 | font-size: 14px; | ||
| 96 | } | ||
| 97 | |||
| 98 | #calendar-container { | ||
| 99 | position: fixed; | ||
| 100 | top: 0; | ||
| 101 | left: 0; | ||
| 102 | right: 0; | ||
| 103 | bottom: 0; | ||
| 104 | } | ||
| 105 | |||
| 106 | .fc-header-toolbar { | ||
| 107 | /* | ||
| 108 | the calendar will be butting up against the edges, | ||
| 109 | but let's scoot in the header's buttons | ||
| 110 | */ | ||
| 111 | padding-top: 1em; | ||
| 112 | padding-left: 1em; | ||
| 113 | padding-right: 1em; | ||
| 114 | } | ||
| 115 | |||
| 116 | </style> | ||
| 117 | </head> | ||
| 118 | <body> | ||
| 119 | |||
| 120 | <div id='calendar-container'> | ||
| 121 | <div id='calendar'></div> | ||
| 122 | </div> | ||
| 123 | |||
| 124 | </body> | ||
| 125 | </html> | ||
diff --git a/public/js/fullcalendar/examples/list-sticky-header.html b/public/js/fullcalendar/examples/list-sticky-header.html new file mode 100644 index 0000000..487af31 --- /dev/null +++ b/public/js/fullcalendar/examples/list-sticky-header.html | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | height: 'auto', | ||
| 13 | // stickyHeaderDates: false, // for disabling | ||
| 14 | |||
| 15 | headerToolbar: { | ||
| 16 | left: 'prev,next today', | ||
| 17 | center: 'title', | ||
| 18 | right: 'listMonth,listYear' | ||
| 19 | }, | ||
| 20 | |||
| 21 | // customize the button names, | ||
| 22 | // otherwise they'd all just say "list" | ||
| 23 | views: { | ||
| 24 | listMonth: { buttonText: 'list month' }, | ||
| 25 | listYear: { buttonText: 'list year' } | ||
| 26 | }, | ||
| 27 | |||
| 28 | initialView: 'listYear', | ||
| 29 | initialDate: '2023-01-12', | ||
| 30 | navLinks: true, // can click day/week names to navigate views | ||
| 31 | editable: true, | ||
| 32 | events: [ | ||
| 33 | { | ||
| 34 | title: 'repeating event 1', | ||
| 35 | daysOfWeek: [ 1, 2, 3 ], | ||
| 36 | duration: '00:30' | ||
| 37 | }, | ||
| 38 | { | ||
| 39 | title: 'repeating event 2', | ||
| 40 | daysOfWeek: [ 1, 2, 3 ], | ||
| 41 | duration: '00:30' | ||
| 42 | }, | ||
| 43 | { | ||
| 44 | title: 'repeating event 3', | ||
| 45 | daysOfWeek: [ 1, 2, 3 ], | ||
| 46 | duration: '00:30' | ||
| 47 | } | ||
| 48 | ] | ||
| 49 | }); | ||
| 50 | |||
| 51 | calendar.render(); | ||
| 52 | }); | ||
| 53 | |||
| 54 | </script> | ||
| 55 | <style> | ||
| 56 | |||
| 57 | body { | ||
| 58 | margin: 40px 10px; | ||
| 59 | padding: 0; | ||
| 60 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 61 | font-size: 14px; | ||
| 62 | } | ||
| 63 | |||
| 64 | #calendar { | ||
| 65 | max-width: 1100px; | ||
| 66 | margin: 0 auto; | ||
| 67 | } | ||
| 68 | |||
| 69 | </style> | ||
| 70 | </head> | ||
| 71 | <body> | ||
| 72 | |||
| 73 | <div id='calendar'></div> | ||
| 74 | |||
| 75 | </body> | ||
| 76 | </html> | ||
diff --git a/public/js/fullcalendar/examples/list-views.html b/public/js/fullcalendar/examples/list-views.html new file mode 100644 index 0000000..cb219d0 --- /dev/null +++ b/public/js/fullcalendar/examples/list-views.html | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | |||
| 13 | headerToolbar: { | ||
| 14 | left: 'prev,next today', | ||
| 15 | center: 'title', | ||
| 16 | right: 'listDay,listWeek' | ||
| 17 | }, | ||
| 18 | |||
| 19 | // customize the button names, | ||
| 20 | // otherwise they'd all just say "list" | ||
| 21 | views: { | ||
| 22 | listDay: { buttonText: 'list day' }, | ||
| 23 | listWeek: { buttonText: 'list week' } | ||
| 24 | }, | ||
| 25 | |||
| 26 | initialView: 'listWeek', | ||
| 27 | initialDate: '2023-01-12', | ||
| 28 | navLinks: true, // can click day/week names to navigate views | ||
| 29 | editable: true, | ||
| 30 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 31 | events: [ | ||
| 32 | { | ||
| 33 | title: 'All Day Event', | ||
| 34 | start: '2023-01-01' | ||
| 35 | }, | ||
| 36 | { | ||
| 37 | title: 'Long Event', | ||
| 38 | start: '2023-01-07', | ||
| 39 | end: '2023-01-10' | ||
| 40 | }, | ||
| 41 | { | ||
| 42 | groupId: 999, | ||
| 43 | title: 'Repeating Event', | ||
| 44 | start: '2023-01-09T16:00:00' | ||
| 45 | }, | ||
| 46 | { | ||
| 47 | groupId: 999, | ||
| 48 | title: 'Repeating Event', | ||
| 49 | start: '2023-01-16T16:00:00' | ||
| 50 | }, | ||
| 51 | { | ||
| 52 | title: 'Conference', | ||
| 53 | start: '2023-01-11', | ||
| 54 | end: '2023-01-13' | ||
| 55 | }, | ||
| 56 | { | ||
| 57 | title: 'Meeting', | ||
| 58 | start: '2023-01-12T10:30:00', | ||
| 59 | end: '2023-01-12T12:30:00' | ||
| 60 | }, | ||
| 61 | { | ||
| 62 | title: 'Lunch', | ||
| 63 | start: '2023-01-12T12:00:00' | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | title: 'Meeting', | ||
| 67 | start: '2023-01-12T14:30:00' | ||
| 68 | }, | ||
| 69 | { | ||
| 70 | title: 'Happy Hour', | ||
| 71 | start: '2023-01-12T17:30:00' | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | title: 'Dinner', | ||
| 75 | start: '2023-01-12T20:00:00' | ||
| 76 | }, | ||
| 77 | { | ||
| 78 | title: 'Birthday Party', | ||
| 79 | start: '2023-01-13T07:00:00' | ||
| 80 | }, | ||
| 81 | { | ||
| 82 | title: 'Click for Google', | ||
| 83 | url: 'http://google.com/', | ||
| 84 | start: '2023-01-28' | ||
| 85 | } | ||
| 86 | ] | ||
| 87 | }); | ||
| 88 | |||
| 89 | calendar.render(); | ||
| 90 | }); | ||
| 91 | |||
| 92 | </script> | ||
| 93 | <style> | ||
| 94 | |||
| 95 | body { | ||
| 96 | margin: 40px 10px; | ||
| 97 | padding: 0; | ||
| 98 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 99 | font-size: 14px; | ||
| 100 | } | ||
| 101 | |||
| 102 | #calendar { | ||
| 103 | max-width: 1100px; | ||
| 104 | margin: 0 auto; | ||
| 105 | } | ||
| 106 | |||
| 107 | </style> | ||
| 108 | </head> | ||
| 109 | <body> | ||
| 110 | |||
| 111 | <div id='calendar'></div> | ||
| 112 | |||
| 113 | </body> | ||
| 114 | </html> | ||
diff --git a/public/js/fullcalendar/examples/month-view.html b/public/js/fullcalendar/examples/month-view.html new file mode 100644 index 0000000..dbd8861 --- /dev/null +++ b/public/js/fullcalendar/examples/month-view.html | |||
| @@ -0,0 +1,100 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | initialDate: '2023-01-12', | ||
| 13 | editable: true, | ||
| 14 | selectable: true, | ||
| 15 | businessHours: true, | ||
| 16 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 17 | events: [ | ||
| 18 | { | ||
| 19 | title: 'All Day Event', | ||
| 20 | start: '2023-01-01' | ||
| 21 | }, | ||
| 22 | { | ||
| 23 | title: 'Long Event', | ||
| 24 | start: '2023-01-07', | ||
| 25 | end: '2023-01-10' | ||
| 26 | }, | ||
| 27 | { | ||
| 28 | groupId: 999, | ||
| 29 | title: 'Repeating Event', | ||
| 30 | start: '2023-01-09T16:00:00' | ||
| 31 | }, | ||
| 32 | { | ||
| 33 | groupId: 999, | ||
| 34 | title: 'Repeating Event', | ||
| 35 | start: '2023-01-16T16:00:00' | ||
| 36 | }, | ||
| 37 | { | ||
| 38 | title: 'Conference', | ||
| 39 | start: '2023-01-11', | ||
| 40 | end: '2023-01-13' | ||
| 41 | }, | ||
| 42 | { | ||
| 43 | title: 'Meeting', | ||
| 44 | start: '2023-01-12T10:30:00', | ||
| 45 | end: '2023-01-12T12:30:00' | ||
| 46 | }, | ||
| 47 | { | ||
| 48 | title: 'Lunch', | ||
| 49 | start: '2023-01-12T12:00:00' | ||
| 50 | }, | ||
| 51 | { | ||
| 52 | title: 'Meeting', | ||
| 53 | start: '2023-01-12T14:30:00' | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | title: 'Happy Hour', | ||
| 57 | start: '2023-01-12T17:30:00' | ||
| 58 | }, | ||
| 59 | { | ||
| 60 | title: 'Dinner', | ||
| 61 | start: '2023-01-12T20:00:00' | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | title: 'Birthday Party', | ||
| 65 | start: '2023-01-13T07:00:00' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | title: 'Click for Google', | ||
| 69 | url: 'http://google.com/', | ||
| 70 | start: '2023-01-28' | ||
| 71 | } | ||
| 72 | ] | ||
| 73 | }); | ||
| 74 | |||
| 75 | calendar.render(); | ||
| 76 | }); | ||
| 77 | |||
| 78 | </script> | ||
| 79 | <style> | ||
| 80 | |||
| 81 | body { | ||
| 82 | margin: 40px 10px; | ||
| 83 | padding: 0; | ||
| 84 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 85 | font-size: 14px; | ||
| 86 | } | ||
| 87 | |||
| 88 | #calendar { | ||
| 89 | max-width: 1100px; | ||
| 90 | margin: 0 auto; | ||
| 91 | } | ||
| 92 | |||
| 93 | </style> | ||
| 94 | </head> | ||
| 95 | <body> | ||
| 96 | |||
| 97 | <div id='calendar'></div> | ||
| 98 | |||
| 99 | </body> | ||
| 100 | </html> | ||
diff --git a/public/js/fullcalendar/examples/multimonth-view.html b/public/js/fullcalendar/examples/multimonth-view.html new file mode 100644 index 0000000..feb9d23 --- /dev/null +++ b/public/js/fullcalendar/examples/multimonth-view.html | |||
| @@ -0,0 +1,110 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | headerToolbar: { | ||
| 13 | left: 'prev,next today', | ||
| 14 | center: 'title', | ||
| 15 | right: 'multiMonthYear,dayGridMonth,timeGridWeek' | ||
| 16 | }, | ||
| 17 | initialView: 'multiMonthYear', | ||
| 18 | initialDate: '2023-01-12', | ||
| 19 | editable: true, | ||
| 20 | selectable: true, | ||
| 21 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 22 | // multiMonthMaxColumns: 1, // guarantee single column | ||
| 23 | // showNonCurrentDates: true, | ||
| 24 | // fixedWeekCount: false, | ||
| 25 | // businessHours: true, | ||
| 26 | // weekends: false, | ||
| 27 | events: [ | ||
| 28 | { | ||
| 29 | title: 'All Day Event', | ||
| 30 | start: '2023-01-01' | ||
| 31 | }, | ||
| 32 | { | ||
| 33 | title: 'Long Event', | ||
| 34 | start: '2023-01-07', | ||
| 35 | end: '2023-01-10' | ||
| 36 | }, | ||
| 37 | { | ||
| 38 | groupId: 999, | ||
| 39 | title: 'Repeating Event', | ||
| 40 | start: '2023-01-09T16:00:00' | ||
| 41 | }, | ||
| 42 | { | ||
| 43 | groupId: 999, | ||
| 44 | title: 'Repeating Event', | ||
| 45 | start: '2023-01-16T16:00:00' | ||
| 46 | }, | ||
| 47 | { | ||
| 48 | title: 'Conference', | ||
| 49 | start: '2023-01-11', | ||
| 50 | end: '2023-01-13' | ||
| 51 | }, | ||
| 52 | { | ||
| 53 | title: 'Meeting', | ||
| 54 | start: '2023-01-12T10:30:00', | ||
| 55 | end: '2023-01-12T12:30:00' | ||
| 56 | }, | ||
| 57 | { | ||
| 58 | title: 'Lunch', | ||
| 59 | start: '2023-01-12T12:00:00' | ||
| 60 | }, | ||
| 61 | { | ||
| 62 | title: 'Meeting', | ||
| 63 | start: '2023-01-12T14:30:00' | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | title: 'Happy Hour', | ||
| 67 | start: '2023-01-12T17:30:00' | ||
| 68 | }, | ||
| 69 | { | ||
| 70 | title: 'Dinner', | ||
| 71 | start: '2023-01-12T20:00:00' | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | title: 'Birthday Party', | ||
| 75 | start: '2023-01-13T07:00:00' | ||
| 76 | }, | ||
| 77 | { | ||
| 78 | title: 'Click for Google', | ||
| 79 | url: 'http://google.com/', | ||
| 80 | start: '2023-01-28' | ||
| 81 | } | ||
| 82 | ] | ||
| 83 | }); | ||
| 84 | |||
| 85 | calendar.render(); | ||
| 86 | }); | ||
| 87 | |||
| 88 | </script> | ||
| 89 | <style> | ||
| 90 | |||
| 91 | body { | ||
| 92 | margin: 40px 10px; | ||
| 93 | padding: 0; | ||
| 94 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 95 | font-size: 14px; | ||
| 96 | } | ||
| 97 | |||
| 98 | #calendar { | ||
| 99 | max-width: 1200px; | ||
| 100 | margin: 0 auto; | ||
| 101 | } | ||
| 102 | |||
| 103 | </style> | ||
| 104 | </head> | ||
| 105 | <body> | ||
| 106 | |||
| 107 | <div id='calendar'></div> | ||
| 108 | |||
| 109 | </body> | ||
| 110 | </html> | ||
diff --git a/public/js/fullcalendar/examples/multiweek-view.html b/public/js/fullcalendar/examples/multiweek-view.html new file mode 100644 index 0000000..5a175fb --- /dev/null +++ b/public/js/fullcalendar/examples/multiweek-view.html | |||
| @@ -0,0 +1,107 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | headerToolbar: { | ||
| 13 | left: 'prev,next today', | ||
| 14 | center: 'title', | ||
| 15 | right: 'dayGridYear,dayGridMonth,timeGridWeek' | ||
| 16 | }, | ||
| 17 | initialView: 'dayGridYear', | ||
| 18 | initialDate: '2023-01-12', | ||
| 19 | editable: true, | ||
| 20 | selectable: true, | ||
| 21 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 22 | // businessHours: true, | ||
| 23 | // weekends: false, | ||
| 24 | events: [ | ||
| 25 | { | ||
| 26 | title: 'All Day Event', | ||
| 27 | start: '2023-01-01' | ||
| 28 | }, | ||
| 29 | { | ||
| 30 | title: 'Long Event', | ||
| 31 | start: '2023-01-07', | ||
| 32 | end: '2023-01-10' | ||
| 33 | }, | ||
| 34 | { | ||
| 35 | groupId: 999, | ||
| 36 | title: 'Repeating Event', | ||
| 37 | start: '2023-01-09T16:00:00' | ||
| 38 | }, | ||
| 39 | { | ||
| 40 | groupId: 999, | ||
| 41 | title: 'Repeating Event', | ||
| 42 | start: '2023-01-16T16:00:00' | ||
| 43 | }, | ||
| 44 | { | ||
| 45 | title: 'Conference', | ||
| 46 | start: '2023-01-11', | ||
| 47 | end: '2023-01-13' | ||
| 48 | }, | ||
| 49 | { | ||
| 50 | title: 'Meeting', | ||
| 51 | start: '2023-01-12T10:30:00', | ||
| 52 | end: '2023-01-12T12:30:00' | ||
| 53 | }, | ||
| 54 | { | ||
| 55 | title: 'Lunch', | ||
| 56 | start: '2023-01-12T12:00:00' | ||
| 57 | }, | ||
| 58 | { | ||
| 59 | title: 'Meeting', | ||
| 60 | start: '2023-01-12T14:30:00' | ||
| 61 | }, | ||
| 62 | { | ||
| 63 | title: 'Happy Hour', | ||
| 64 | start: '2023-01-12T17:30:00' | ||
| 65 | }, | ||
| 66 | { | ||
| 67 | title: 'Dinner', | ||
| 68 | start: '2023-01-12T20:00:00' | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | title: 'Birthday Party', | ||
| 72 | start: '2023-01-13T07:00:00' | ||
| 73 | }, | ||
| 74 | { | ||
| 75 | title: 'Click for Google', | ||
| 76 | url: 'http://google.com/', | ||
| 77 | start: '2023-01-28' | ||
| 78 | } | ||
| 79 | ] | ||
| 80 | }); | ||
| 81 | |||
| 82 | calendar.render(); | ||
| 83 | }); | ||
| 84 | |||
| 85 | </script> | ||
| 86 | <style> | ||
| 87 | |||
| 88 | body { | ||
| 89 | margin: 40px 10px; | ||
| 90 | padding: 0; | ||
| 91 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 92 | font-size: 14px; | ||
| 93 | } | ||
| 94 | |||
| 95 | #calendar { | ||
| 96 | max-width: 1200px; | ||
| 97 | margin: 0 auto; | ||
| 98 | } | ||
| 99 | |||
| 100 | </style> | ||
| 101 | </head> | ||
| 102 | <body> | ||
| 103 | |||
| 104 | <div id='calendar'></div> | ||
| 105 | |||
| 106 | </body> | ||
| 107 | </html> | ||
diff --git a/public/js/fullcalendar/examples/natural-height.html b/public/js/fullcalendar/examples/natural-height.html new file mode 100644 index 0000000..b62c41d --- /dev/null +++ b/public/js/fullcalendar/examples/natural-height.html | |||
| @@ -0,0 +1,108 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | initialDate: '2023-01-12', | ||
| 13 | initialView: 'timeGridWeek', | ||
| 14 | headerToolbar: { | ||
| 15 | left: 'prev,next today', | ||
| 16 | center: 'title', | ||
| 17 | right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek' | ||
| 18 | }, | ||
| 19 | height: 'auto', | ||
| 20 | navLinks: true, // can click day/week names to navigate views | ||
| 21 | editable: true, | ||
| 22 | selectable: true, | ||
| 23 | selectMirror: true, | ||
| 24 | nowIndicator: true, | ||
| 25 | events: [ | ||
| 26 | { | ||
| 27 | title: 'All Day Event', | ||
| 28 | start: '2023-01-01', | ||
| 29 | }, | ||
| 30 | { | ||
| 31 | title: 'Long Event', | ||
| 32 | start: '2023-01-07', | ||
| 33 | end: '2023-01-10' | ||
| 34 | }, | ||
| 35 | { | ||
| 36 | groupId: 999, | ||
| 37 | title: 'Repeating Event', | ||
| 38 | start: '2023-01-09T16:00:00' | ||
| 39 | }, | ||
| 40 | { | ||
| 41 | groupId: 999, | ||
| 42 | title: 'Repeating Event', | ||
| 43 | start: '2023-01-16T16:00:00' | ||
| 44 | }, | ||
| 45 | { | ||
| 46 | title: 'Conference', | ||
| 47 | start: '2023-01-11', | ||
| 48 | end: '2023-01-13' | ||
| 49 | }, | ||
| 50 | { | ||
| 51 | title: 'Meeting', | ||
| 52 | start: '2023-01-12T10:30:00', | ||
| 53 | end: '2023-01-12T12:30:00' | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | title: 'Lunch', | ||
| 57 | start: '2023-01-12T12:00:00' | ||
| 58 | }, | ||
| 59 | { | ||
| 60 | title: 'Meeting', | ||
| 61 | start: '2023-01-12T14:30:00' | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | title: 'Happy Hour', | ||
| 65 | start: '2023-01-12T17:30:00' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | title: 'Dinner', | ||
| 69 | start: '2023-01-12T20:00:00' | ||
| 70 | }, | ||
| 71 | { | ||
| 72 | title: 'Birthday Party', | ||
| 73 | start: '2023-01-13T07:00:00' | ||
| 74 | }, | ||
| 75 | { | ||
| 76 | title: 'Click for Google', | ||
| 77 | url: 'http://google.com/', | ||
| 78 | start: '2023-01-28' | ||
| 79 | } | ||
| 80 | ] | ||
| 81 | }); | ||
| 82 | |||
| 83 | calendar.render(); | ||
| 84 | }); | ||
| 85 | |||
| 86 | </script> | ||
| 87 | <style> | ||
| 88 | |||
| 89 | body { | ||
| 90 | margin: 40px 10px; | ||
| 91 | padding: 0; | ||
| 92 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 93 | font-size: 14px; | ||
| 94 | } | ||
| 95 | |||
| 96 | #calendar { | ||
| 97 | max-width: 1100px; | ||
| 98 | margin: 0 auto; | ||
| 99 | } | ||
| 100 | |||
| 101 | </style> | ||
| 102 | </head> | ||
| 103 | <body> | ||
| 104 | |||
| 105 | <div id='calendar'></div> | ||
| 106 | |||
| 107 | </body> | ||
| 108 | </html> | ||
diff --git a/public/js/fullcalendar/examples/selectable.html b/public/js/fullcalendar/examples/selectable.html new file mode 100644 index 0000000..785e90e --- /dev/null +++ b/public/js/fullcalendar/examples/selectable.html | |||
| @@ -0,0 +1,123 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | headerToolbar: { | ||
| 13 | left: 'prev,next today', | ||
| 14 | center: 'title', | ||
| 15 | right: 'dayGridMonth,timeGridWeek,timeGridDay' | ||
| 16 | }, | ||
| 17 | initialDate: '2023-01-12', | ||
| 18 | navLinks: true, // can click day/week names to navigate views | ||
| 19 | selectable: true, | ||
| 20 | selectMirror: true, | ||
| 21 | select: function(arg) { | ||
| 22 | var title = prompt('Event Title:'); | ||
| 23 | if (title) { | ||
| 24 | calendar.addEvent({ | ||
| 25 | title: title, | ||
| 26 | start: arg.start, | ||
| 27 | end: arg.end, | ||
| 28 | allDay: arg.allDay | ||
| 29 | }) | ||
| 30 | } | ||
| 31 | calendar.unselect() | ||
| 32 | }, | ||
| 33 | eventClick: function(arg) { | ||
| 34 | if (confirm('Are you sure you want to delete this event?')) { | ||
| 35 | arg.event.remove() | ||
| 36 | } | ||
| 37 | }, | ||
| 38 | editable: true, | ||
| 39 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 40 | events: [ | ||
| 41 | { | ||
| 42 | title: 'All Day Event', | ||
| 43 | start: '2023-01-01' | ||
| 44 | }, | ||
| 45 | { | ||
| 46 | title: 'Long Event', | ||
| 47 | start: '2023-01-07', | ||
| 48 | end: '2023-01-10' | ||
| 49 | }, | ||
| 50 | { | ||
| 51 | groupId: 999, | ||
| 52 | title: 'Repeating Event', | ||
| 53 | start: '2023-01-09T16:00:00' | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | groupId: 999, | ||
| 57 | title: 'Repeating Event', | ||
| 58 | start: '2023-01-16T16:00:00' | ||
| 59 | }, | ||
| 60 | { | ||
| 61 | title: 'Conference', | ||
| 62 | start: '2023-01-11', | ||
| 63 | end: '2023-01-13' | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | title: 'Meeting', | ||
| 67 | start: '2023-01-12T10:30:00', | ||
| 68 | end: '2023-01-12T12:30:00' | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | title: 'Lunch', | ||
| 72 | start: '2023-01-12T12:00:00' | ||
| 73 | }, | ||
| 74 | { | ||
| 75 | title: 'Meeting', | ||
| 76 | start: '2023-01-12T14:30:00' | ||
| 77 | }, | ||
| 78 | { | ||
| 79 | title: 'Happy Hour', | ||
| 80 | start: '2023-01-12T17:30:00' | ||
| 81 | }, | ||
| 82 | { | ||
| 83 | title: 'Dinner', | ||
| 84 | start: '2023-01-12T20:00:00' | ||
| 85 | }, | ||
| 86 | { | ||
| 87 | title: 'Birthday Party', | ||
| 88 | start: '2023-01-13T07:00:00' | ||
| 89 | }, | ||
| 90 | { | ||
| 91 | title: 'Click for Google', | ||
| 92 | url: 'http://google.com/', | ||
| 93 | start: '2023-01-28' | ||
| 94 | } | ||
| 95 | ] | ||
| 96 | }); | ||
| 97 | |||
| 98 | calendar.render(); | ||
| 99 | }); | ||
| 100 | |||
| 101 | </script> | ||
| 102 | <style> | ||
| 103 | |||
| 104 | body { | ||
| 105 | margin: 40px 10px; | ||
| 106 | padding: 0; | ||
| 107 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 108 | font-size: 14px; | ||
| 109 | } | ||
| 110 | |||
| 111 | #calendar { | ||
| 112 | max-width: 1100px; | ||
| 113 | margin: 0 auto; | ||
| 114 | } | ||
| 115 | |||
| 116 | </style> | ||
| 117 | </head> | ||
| 118 | <body> | ||
| 119 | |||
| 120 | <div id='calendar'></div> | ||
| 121 | |||
| 122 | </body> | ||
| 123 | </html> | ||
diff --git a/public/js/fullcalendar/examples/timegrid-views-modal.html b/public/js/fullcalendar/examples/timegrid-views-modal.html new file mode 100644 index 0000000..3b4a0fc --- /dev/null +++ b/public/js/fullcalendar/examples/timegrid-views-modal.html | |||
| @@ -0,0 +1,180 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | /* | ||
| 9 | From https://github.com/fullcalendar/fullcalendar/issues/5026 | ||
| 10 | */ | ||
| 11 | |||
| 12 | document.addEventListener('DOMContentLoaded', function() { | ||
| 13 | var calendarOptions = { | ||
| 14 | initialDate: '2023-01-12', | ||
| 15 | initialView: 'timeGridWeek', | ||
| 16 | nowIndicator: true, | ||
| 17 | headerToolbar: { | ||
| 18 | left: 'prev,next today', | ||
| 19 | center: 'title', | ||
| 20 | right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek' | ||
| 21 | }, | ||
| 22 | navLinks: true, // can click day/week names to navigate views | ||
| 23 | editable: true, | ||
| 24 | selectable: true, | ||
| 25 | selectMirror: true, | ||
| 26 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 27 | events: [ | ||
| 28 | { | ||
| 29 | title: 'All Day Event', | ||
| 30 | start: '2023-01-01', | ||
| 31 | }, | ||
| 32 | { | ||
| 33 | title: 'Long Event', | ||
| 34 | start: '2023-01-07', | ||
| 35 | end: '2023-01-10' | ||
| 36 | }, | ||
| 37 | { | ||
| 38 | groupId: 999, | ||
| 39 | title: 'Repeating Event', | ||
| 40 | start: '2023-01-09T16:00:00' | ||
| 41 | }, | ||
| 42 | { | ||
| 43 | groupId: 999, | ||
| 44 | title: 'Repeating Event', | ||
| 45 | start: '2023-01-16T16:00:00' | ||
| 46 | }, | ||
| 47 | { | ||
| 48 | title: 'Conference', | ||
| 49 | start: '2023-01-11', | ||
| 50 | end: '2023-01-13' | ||
| 51 | }, | ||
| 52 | { | ||
| 53 | title: 'Meeting', | ||
| 54 | start: '2023-01-12T10:30:00', | ||
| 55 | end: '2023-01-12T12:30:00' | ||
| 56 | }, | ||
| 57 | { | ||
| 58 | title: 'Lunch', | ||
| 59 | start: '2023-01-12T12:00:00' | ||
| 60 | }, | ||
| 61 | { | ||
| 62 | title: 'Meeting', | ||
| 63 | start: '2023-01-12T14:30:00' | ||
| 64 | }, | ||
| 65 | { | ||
| 66 | title: 'Happy Hour', | ||
| 67 | start: '2023-01-12T17:30:00' | ||
| 68 | }, | ||
| 69 | { | ||
| 70 | title: 'Dinner', | ||
| 71 | start: '2023-01-12T20:00:00' | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | title: 'Birthday Party', | ||
| 75 | start: '2023-01-13T07:00:00' | ||
| 76 | }, | ||
| 77 | { | ||
| 78 | title: 'Click for Google', | ||
| 79 | url: 'http://google.com/', | ||
| 80 | start: '2023-01-28' | ||
| 81 | } | ||
| 82 | ] | ||
| 83 | }; | ||
| 84 | |||
| 85 | var calendar = new FullCalendar.Calendar(document.getElementById('calendar'), calendarOptions); | ||
| 86 | calendar.render(); | ||
| 87 | |||
| 88 | var calendar2 = new FullCalendar.Calendar(document.getElementById('calendar2'), calendarOptions); | ||
| 89 | calendar2.render(); | ||
| 90 | |||
| 91 | /* | ||
| 92 | Modal | ||
| 93 | */ | ||
| 94 | |||
| 95 | var modal = document.querySelector('.modal'); | ||
| 96 | var modalTrigger = document.querySelector('.modal-trigger'); | ||
| 97 | var modalOverlay = document.querySelector('.modal-overlay'); | ||
| 98 | |||
| 99 | modalTrigger.addEventListener('click', function() { | ||
| 100 | modal.classList.add('is-visible'); | ||
| 101 | calendar2.updateSize(); | ||
| 102 | }); | ||
| 103 | modalOverlay.addEventListener('click', function() { | ||
| 104 | modal.classList.remove('is-visible'); | ||
| 105 | }); | ||
| 106 | }); | ||
| 107 | |||
| 108 | </script> | ||
| 109 | <style> | ||
| 110 | |||
| 111 | body { | ||
| 112 | margin: 10px; | ||
| 113 | padding: 0; | ||
| 114 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 115 | font-size: 14px; | ||
| 116 | } | ||
| 117 | |||
| 118 | #calendar { | ||
| 119 | max-width: 1100px; | ||
| 120 | margin: 0 auto; | ||
| 121 | } | ||
| 122 | |||
| 123 | .modal { | ||
| 124 | display: none; | ||
| 125 | position: absolute; | ||
| 126 | z-index: 10000; | ||
| 127 | top: 0; | ||
| 128 | left: 0; | ||
| 129 | width: 100%; | ||
| 130 | height: 100%; | ||
| 131 | } | ||
| 132 | |||
| 133 | .modal.is-visible { | ||
| 134 | display: block; | ||
| 135 | } | ||
| 136 | |||
| 137 | .modal-overlay { | ||
| 138 | position: fixed; | ||
| 139 | z-index: 10; | ||
| 140 | top: 0; | ||
| 141 | left: 0; | ||
| 142 | width: 100%; | ||
| 143 | height: 100%; | ||
| 144 | background: hsla(0, 0%, 0%, 0.5); | ||
| 145 | } | ||
| 146 | |||
| 147 | .modal-wrapper { | ||
| 148 | position: absolute; | ||
| 149 | z-index: 9999; | ||
| 150 | top: 6em; | ||
| 151 | left: 50%; | ||
| 152 | width: 600px; | ||
| 153 | margin-left: -16em; | ||
| 154 | background-color: #fff; | ||
| 155 | box-shadow: 0 0 1.5em hsla(0, 0%, 0%, 0.35); | ||
| 156 | } | ||
| 157 | |||
| 158 | .modal-content { | ||
| 159 | padding: 1em; | ||
| 160 | } | ||
| 161 | |||
| 162 | </style> | ||
| 163 | </head> | ||
| 164 | <body> | ||
| 165 | |||
| 166 | <button class='modal-trigger'>Show modal</button> | ||
| 167 | |||
| 168 | <div id='calendar'></div> | ||
| 169 | |||
| 170 | <div class='modal'> | ||
| 171 | <div class='modal-overlay'></div> | ||
| 172 | <div class='modal-wrapper'> | ||
| 173 | <div class='modal-content'> | ||
| 174 | <div id='calendar2'></div> | ||
| 175 | </div> | ||
| 176 | </div> | ||
| 177 | </div> | ||
| 178 | |||
| 179 | </body> | ||
| 180 | </html> | ||
diff --git a/public/js/fullcalendar/examples/timegrid-views.html b/public/js/fullcalendar/examples/timegrid-views.html new file mode 100644 index 0000000..9cd2527 --- /dev/null +++ b/public/js/fullcalendar/examples/timegrid-views.html | |||
| @@ -0,0 +1,108 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <script src='../dist/index.global.js'></script> | ||
| 6 | <script> | ||
| 7 | |||
| 8 | document.addEventListener('DOMContentLoaded', function() { | ||
| 9 | var calendarEl = document.getElementById('calendar'); | ||
| 10 | |||
| 11 | var calendar = new FullCalendar.Calendar(calendarEl, { | ||
| 12 | initialDate: '2023-01-12', | ||
| 13 | initialView: 'timeGridWeek', | ||
| 14 | nowIndicator: true, | ||
| 15 | headerToolbar: { | ||
| 16 | left: 'prev,next today', | ||
| 17 | center: 'title', | ||
| 18 | right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek' | ||
| 19 | }, | ||
| 20 | navLinks: true, // can click day/week names to navigate views | ||
| 21 | editable: true, | ||
| 22 | selectable: true, | ||
| 23 | selectMirror: true, | ||
| 24 | dayMaxEvents: true, // allow "more" link when too many events | ||
| 25 | events: [ | ||
| 26 | { | ||
| 27 | title: 'All Day Event', | ||
| 28 | start: '2023-01-01', | ||
| 29 | }, | ||
| 30 | { | ||
| 31 | title: 'Long Event', | ||
| 32 | start: '2023-01-07', | ||
| 33 | end: '2023-01-10' | ||
| 34 | }, | ||
| 35 | { | ||
| 36 | groupId: 999, | ||
| 37 | title: 'Repeating Event', | ||
| 38 | start: '2023-01-09T16:00:00' | ||
| 39 | }, | ||
| 40 | { | ||
| 41 | groupId: 999, | ||
| 42 | title: 'Repeating Event', | ||
| 43 | start: '2023-01-16T16:00:00' | ||
| 44 | }, | ||
| 45 | { | ||
| 46 | title: 'Conference', | ||
| 47 | start: '2023-01-11', | ||
| 48 | end: '2023-01-13' | ||
| 49 | }, | ||
| 50 | { | ||
| 51 | title: 'Meeting', | ||
| 52 | start: '2023-01-12T10:30:00', | ||
| 53 | end: '2023-01-12T12:30:00' | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | title: 'Lunch', | ||
| 57 | start: '2023-01-12T12:00:00' | ||
| 58 | }, | ||
| 59 | { | ||
| 60 | title: 'Meeting', | ||
| 61 | start: '2023-01-12T14:30:00' | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | title: 'Happy Hour', | ||
| 65 | start: '2023-01-12T17:30:00' | ||
| 66 | }, | ||
| 67 | { | ||
| 68 | title: 'Dinner', | ||
| 69 | start: '2023-01-12T20:00:00' | ||
| 70 | }, | ||
| 71 | { | ||
| 72 | title: 'Birthday Party', | ||
| 73 | start: '2023-01-13T07:00:00' | ||
| 74 | }, | ||
| 75 | { | ||
| 76 | title: 'Click for Google', | ||
| 77 | url: 'http://google.com/', | ||
| 78 | start: '2023-01-28' | ||
| 79 | } | ||
| 80 | ] | ||
| 81 | }); | ||
| 82 | |||
| 83 | calendar.render(); | ||
| 84 | }); | ||
| 85 | |||
| 86 | </script> | ||
| 87 | <style> | ||
| 88 | |||
| 89 | body { | ||
| 90 | margin: 40px 10px; | ||
| 91 | padding: 0; | ||
| 92 | font-family: Arial, Helvetica Neue, Helvetica, sans-serif; | ||
| 93 | font-size: 14px; | ||
| 94 | } | ||
| 95 | |||
| 96 | #calendar { | ||
| 97 | max-width: 1100px; | ||
| 98 | margin: 0 auto; | ||
| 99 | } | ||
| 100 | |||
| 101 | </style> | ||
| 102 | </head> | ||
| 103 | <body> | ||
| 104 | |||
| 105 | <div id='calendar'></div> | ||
| 106 | |||
| 107 | </body> | ||
| 108 | </html> | ||
