FullCalendar-Scheduler Google Календари ResourceIDs Запрос
Ссылка: FullCalendar 3.9.0, FullCalendar-Scheduler 1.9.4
Кто-нибудь может подтвердить, можно ли группировать события календаря Google по ресурсам? Добавляем параметр resourceId в источник календаря следующим образом:
var myCalSrc = {
id: 1,
googleCalendarId: '<myCalSrcURL>',
color: '<myCalSrcColor>',
className: '<myCalSrc-events>'
};
приводит к пустому отображению. Следующее примечание в файле FullCalendar-Scheduler gcal.html, расположенном в каталоге demos:
/* NOTE: unfortunately, Scheduler doesn't know how to associated events from Google Calendar with resources, so if you specify a resource list, nothing will show up :( Working on some solutions. */
Тем не менее, следующие темы предлагают исправить это:
GitHub - добавление параметра ResourceId в gcal.js (исправление предоставлено)
GitHub - укажите resourceId в настройках источника событий
Однако проверка файла gcal.js показывает, что исправление не было добавлено в этот файл.
Можно ли вручную назначить resourceId для каждого из каналов Календаря Google, чтобы реплицировать представление ресурсов и временной шкалы, указанное в документации https://fullcalendar.io/docs/timeline-view?
Любое руководство будет с благодарностью.
1 ответ
Что касается проблемы в вашей второй ссылке на GitHub (с которой ваша первая была объединена), https://github.com/fullcalendar/fullcalendar-scheduler/issues/124, то исправление, которое вы упомянули, все еще ожидает тестирования (по состоянию на 11 марта 2018). Так что, если вы терпеливы, он, вероятно, будет добавлен к будущему выпуску, если он пройдет тесты. А пока вот потенциальный обходной путь:
В fullCalendar можно определить отдельное eventDataTransform для каждого источника события.
Поэтому я думаю, что вы должны использовать это для установки идентификатора ресурса для каждого события в зависимости от Календаря Google, из которого оно получено:
eventSources: [
{
googleCalendarId: 'abc@group.calendar.google.com',
color: 'blue',
eventDataTransform: function(event) {
event.resourceId = 1;
return event;
}
},
{
googleCalendarId: 'def@group.calendar.google.com',
color: 'green',
eventDataTransform: function(event) {
event.resourceId = 2;
return event;
}
},
{
googleCalendarId: 'ghi@group.calendar.google.com',
color: 'red' ,
eventDataTransform: function(event) {
event.resourceId = 3;
return event;
}
}
]
Я не могу проверить это прямо сейчас, но похоже, что это должно работать. Надеюсь, это произойдет до того, как оно будет отображено в календаре и должно принадлежать ресурсу.