Я хочу отфильтровать календарь от внешней функции с помощью полной версии календаря 4. Но я не могу получить доступ к экземпляру календаря. Кто-нибудь знает, как я могу это сделать?
Я думаю, что нужно использовать: var mycalendar = calendar.view;
В данный момент я могу фильтровать, но мне нужно снова создать календарь. Я хотел бы использовать исходный загруженный календарь и просто обновить результаты.
function CalendarModalFilter() {
var post = $('#calendar_filter_form').serialize();
let searchParams = new URLSearchParams(post);
var calendarEl = document.getElementById('kt_calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['interaction', 'dayGrid', 'timeGrid', 'list'],
});
NotifyPage('Filtered Calendar!', 'success');
var FilterSource = {
url: './demo2/contents/calendar/get.php',
method: 'POST',
extraParams: {
source: searchParams.get("calType")
}
};
var eventSources = calendar.getEventSources();
var len = eventSources.length;
for (var i = 0; i < len; i++) {
eventSources[i].remove();
}
calendar.addEventSource(FilterSource);
calendar.refetchEvents();
calendar.render();
};
Это часть инициализации календаря:
var initCalendar = function() {
var todayDate = moment().startOf('day');
var YM = todayDate.format('YYYY-MM');
var YESTERDAY = todayDate.clone().subtract(1, 'day').format('YYYY-MM-DD');
var TODAY = todayDate.format('YYYY-MM-DD');
var TOMORROW = todayDate.clone().add(1, 'day').format('YYYY-MM-DD');
var calendarEl = document.getElementById('kt_calendar');
var containerEl = document.getElementById('kt_calendar_external_events');
var Draggable = FullCalendarInteraction.Draggable;
new Draggable(containerEl, {
itemSelector: '.fc-draggable-handle',
eventData: function(eventEl) {
return $(eventEl).data('event');
}
});
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list' ],
eventSources: [fcSources.planificacion],
//...