FullCalendar-Scheduler Google Calendars ResourceIDs Query

Ссылка: 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, расположенном в каталоге демонстраций, гласит:

  /*
  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 - укажите идентификатор ресурса в настройках источника событий

Однако проверка файла gcal.js показывает, что исправление не было добавлено в этот файл.

Можно ли вручную назначить resourceId каждому каналу Календаря Google, чтобы реплицировать представление ресурсов и временной шкалы, обозначенное тегом Временная шкала FullCalendar Просмотреть документацию?

Приветствуются любые рекомендации.


person ridgedale    schedule 18.06.2018    source источник
comment
При изменении кода на: var myCalSrc = { id: 1, googleCalendarId: '<myCalSrcURL>', color: '<myCalSrcColor>', resourceID: 'a' className: '<myCalSrc-events>' }; и добавлении: $('#calendar').fullCalendar({ ... resources: [ { id: '1', title: '<myResourceTitle>' }, ... ], ... не отображаются какие-либо события.   -  person ridgedale    schedule 21.06.2018


Ответы (1)


В соответствии с проблемой во второй ссылке GitHub (с которой была объединена ваша первая), https://github.com/fullcalendar/fullcalendar-scheduler/issues/124, упомянутое вами исправление все еще ожидает тестирования (по состоянию на 11 марта 2018 г.). Так что, если вы проявите терпение, он, вероятно, будет добавлен в будущий выпуск при условии, что он пройдет тесты. А пока вот возможный обходной путь:

В fullCalendar можно определить отдельный eventDataTransform для каждого источника события.

Поэтому я думаю, вы сможете использовать это, чтобы установить идентификатор ресурса для каждого события в зависимости от календаря Google, из которого оно пришло:

eventSources: [
  { 
    googleCalendarId: '[email protected]', 
    color: 'blue',
    eventDataTransform: function(event) {
      event.resourceId = 1;
      return event;
    } 
  }, 
  { 
    googleCalendarId: '[email protected]', 
    color: 'green', 
    eventDataTransform: function(event) {
      event.resourceId = 2;
      return event;
    } 
  }, 
  { 
    googleCalendarId: '[email protected]', 
    color: 'red' ,
    eventDataTransform: function(event) {
      event.resourceId = 3;
      return event;
    } 
  }
]

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

person ADyson    schedule 05.07.2018
comment
Привет, ADyson, Спасибо за работу. Теперь это позволяет правильно отображать события. Одна вещь, которую я заметил, заключается в том, что класс fc-icon добавляется перед заголовками ресурсов (фактически отображается как ненужный предшествующий пробел) при переключении из режима дня повестки дня в режим timelineMonth. Если я устанавливаю представление по умолчанию на timelineMonth, класс fc-icon изначально не добавляется, и поэтому заголовки отображаются без ненужного начального пробела перед заголовками. - person ridgedale; 05.07.2018
comment
Это звучит как отдельный вопрос пользовательского интерфейса, связанный с представлением временной шкалы. Если приведенный выше ответ помог вам с вопросом о календаре Google, не забудьте отметить его как принятый - спасибо. Предлагаю вам задать новый вопрос по поводу значков. - person ADyson; 06.07.2018
comment
Спасибо, ADyson. Сделаю. - person ridgedale; 07.07.2018