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;
    } 
  }
]

Я не могу проверить это прямо сейчас, но похоже, что это должно работать. Надеюсь, это произойдет до того, как оно будет отображено в календаре и должно принадлежать ресурсу.

Другие вопросы по тегам