(Привет всем. Это мое первое сообщение с использованием режима управляемой публикации, поэтому, пожалуйста, потерпите меня)
Я уже некоторое время использую Fullcalendar для отображения событий из каналов JSON для нескольких календарей (Один календарь на канал JSON). Эти каналы JSON являются преобразованиями каналов .ics с помощью ical.js для работы в полном календаре. Однако теперь мне нужно разбить эти календари на списки и отфильтровать их на основе определенного текста в именах событий следующим образом:
Полный список событий.
January 1
lunch
gathering
outing
dinner
January 2
lunch
gathering
outing
dinner
January 3
lunch
closing
отфильтрованный список событий для веб-страницы (отфильтрованный для обеда).
January 1
lunch
January 2
lunch
January 3
lunch
Можно ли выполнять фильтрацию по заголовку события с помощью Fullcalendar, если календарь основан на канале, а не на ручном списке событий?
Я использую fullcalendar 3.9.0 (я могу перейти на 3.10). Это самая последняя версия, которую я могу запустить из-за того, что для работы с версией 4 необходимо настроить другое программное обеспечение.
Я также использую скрипт mozilla ical.js для преобразования каналов ical в каналы JSON.
Я ожидаю, что на самом деле у меня могут быть две области, в которых я мог бы фильтровать:
внутри ical.js или ical_events.js
в моей конфигурации для полного календаря (возможно, в разделе defaultView)
Вот часть кода, которую я использую для вызова календаря:
ics_sources = [
{
url:'https://www.example.com/calendaring/15/',
event_properties: {
color:'#7a9b49'
}
},
]
function data_req (url, callback) {
req = new XMLHttpRequest()
req.addEventListener('load', callback)
req.open('GET', url)
req.send()
}
function add_recur_events() {
if (sources_to_load_cnt < 1) {
$('#calendar').fullCalendar('addEventSource', expand_recur_events)
} else {
setTimeout(add_recur_events, 30)
}
}
function load_ics(ics){
data_req(ics.url, function(){
$('#calendar').fullCalendar('addEventSource', fc_events(this.response, ics.event_properties))
sources_to_load_cnt -= 1
})
}
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: '',
center: '',
right: ''
},
viewDisplay: function(view) {
parent.setIframeHeight(iframeId) ;
},
eventClick: function(event) {
window.open(event.url,);
return false;
},
defaultView: $(window).width() < 765 ? 'listYear':'listYear',
nowIndicator: false,
eventLimit: 4,
fixedWeekCount: false,
listDayFormat: 'MMMM Do',
listDayAltFormat: false,
noEventsMessage: "No Currently Scheduled Events"
})
sources_to_load_cnt = ics_sources.length
for (ics of ics_sources) {
load_ics(ics)
}
add_recur_events()
})
Ожидается(желательные) результаты будут представлять собой список, предварительно отфильтрованный в вызове календаря на основе требуемого заголовка события для конечного пользователя.
Фактические результаты: в настоящее время у меня нет предварительной фильтрации.