Fullcalendar 4, как увидеть, если событие повторяется из Rrule

Я использую полную версию календаря 4 для вставки / обновления повторяющихся событий. Я успешно создал повторяющиеся события, вставив rrule в мою базу данных, а затем используя плагин rrule для fullcalendar для его отображения.

Когда события загружаются, они выглядят как пример JSON:

 [{
 allDay: false
 color: "#2A2A2A"
 date_created: "2019-05-17 12:09:46"
 duration: "00:45:00"
 end: ""
 id: "23639"
 resourceId: "1"
 rrule: "DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1"
 start: ""
 textColor: "#FFFFFF"
 title: "BLOCK"
 }, 
 {
 allDay: false
 color: "#2A2A2A"
 date_created: "2019-05-17 12:09:46"
 duration: null
 end: "2019-05-15 11:45:00"
 id: "23639"
 resourceId: "1"
 rrule: null
 start: "2019-05-15 11:00:00"
 textColor: "#FFFFFF"
 title: "BLOCK2"
 }, 
 ]

Повторяющиеся события отображаются правильно, если присутствует правило.

Сейчас я работаю над способом обновления / просмотра повторяющихся событий. Мне нужно отлавливать, например, события, которые повторяются при их перемещении / изменении размера для запуска.

Объекты события НЕ имеют свойства rrule для проверки. Я пытался это:

 eventClick: function(info) {
     if (info.event.rrule) {
      alert('this is a recurring event!');
      }
  }

... однако образец предупреждения не отображается при нажатии на повторяющееся событие. Свойства события НЕ имеют правила (и они не находятся в info.event.extendedProps).

Как я могу поймать повторяющиеся события, чтобы я мог управлять ими?

Мой следующий шаг - поймать RRULE и преобразовать его в текст, чтобы пользователь мог прочитать, как устанавливается повторяющееся событие. Так что я немного озадачен тем, как его найти.

Из console.log информации, когда она нажата, я вижу свойства повторяющегося события. RRULE не существует. Это также не в объекте extendedProps.

allDay: (...)
allow: (...)
backgroundColor: (...)
borderColor: (...)
classNames: (...)
constraint: (...)
durationEditable: (...)
end: (...)
extendedProps: (...)
groupId: (...)
id: (...)
overlap: (...)
rendering: (...)
source: (...)
start: (...)
startEditable: (...)
textColor: (...)
title: (...)
url: (...)

0 ответов

Вы можете добраться до объекта Rrule: info.event._def.recurringDefЭтот объект имеет свойства duration, typeData а также typeIdtypeData свойство содержит фактический объект RRule

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