55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
// External Events Calendar ****************************
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
var Calendar = FullCalendar.Calendar;
|
|
var Draggable = FullCalendarInteraction.Draggable
|
|
|
|
/* initialize the external events
|
|
-----------------------------------------------------------------*/
|
|
|
|
var containerEl = document.getElementById('externalDraggableEvents');
|
|
new Draggable(containerEl, {
|
|
itemSelector: '.fc-event',
|
|
eventData: function(eventEl) {
|
|
return {
|
|
title: eventEl.innerText.trim()
|
|
}
|
|
}
|
|
});
|
|
|
|
//// the individual way to do it
|
|
// var containerEl = document.getElementById('externalDraggableEvents');
|
|
// var eventEls = Array.prototype.slice.call(
|
|
// containerEl.querySelectorAll('.fc-event')
|
|
// );
|
|
// eventEls.forEach(function(eventEl) {
|
|
// new Draggable(eventEl, {
|
|
// eventData: {
|
|
// title: eventEl.innerText.trim(),
|
|
// }
|
|
// });
|
|
// });
|
|
|
|
/* initialize the calendar
|
|
-----------------------------------------------------------------*/
|
|
|
|
var calendarEl = document.getElementById('externalDraggableEventsCalendar');
|
|
var calendar = new Calendar(calendarEl, {
|
|
plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list' ],
|
|
header: {
|
|
left: 'prev,next today',
|
|
center: 'title',
|
|
right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
|
|
},
|
|
editable: true,
|
|
droppable: true, // this allows things to be dropped onto the calendar
|
|
drop: function(arg) {
|
|
// is the "remove after drop" checkbox checked?
|
|
if (document.getElementById('drop-remove').checked) {
|
|
// if so, remove the element from the "Draggable Events" list
|
|
arg.draggedEl.parentNode.removeChild(arg.draggedEl);
|
|
}
|
|
}
|
|
});
|
|
calendar.render();
|
|
|
|
}); |