Fullcalendar 4, как увидеть, если событие повторяется из Rrule - PullRequest
1 голос
/ 17 мая 2019

Я использую полную версию календаря 4 для вставки / обновления повторяющихся событий.Я успешно создал повторяющиеся события, вставив правило в мою базу данных, а затем используя плагин rule для 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!');
      }
  }

... однако образец предупреждения не отображается при нажатии повторяющегося события.Свойства события НЕ имеют правила rrule (и их нет в 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: (...)

1 Ответ

0 голосов
/ 19 июня 2019

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

...