FullCalendar - повторение одного события каждый день без уведомления - PullRequest
2 голосов
/ 06 марта 2020

Я играю с базовой c реализацией FullCalendar. Но с кодом ниже (скопируйте и вставьте в файл). Моя «встреча» повторяется в указанное время каждый день. У меня должен быть 1 турнир против Фреда, с 15:00 до 18:00 1 марта. Не повторяется.

Это происходит независимо от свойств startRecur / endRecur. Единственное, что имело эффект - это свойство daysOfWeek. Установка значения означала, что оно появляется только в те дни. Что я делаю не так?

Спасибо, Мик

function run() {

  var calendarEl = document.getElementById('calendar');

  var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: ['resourceTimeline'],

    defaultView: 'resourceTimelineWeek',
    resources: [{
        id: 1,
        title: 'Fred'
      },
      {
        id: 2,
        title: 'Jane'
      }
    ],
    events: [{
      id: '1',
      resourceId: '1',
      title: 'Meeting',
      allDay: false,
      start: '2020-03-1',
      end: '2020-03-1',
      startTime: '15:00',
      endTime: '18:00'
    }]
  });

  calendar.render();
}
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.4.0/main.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/resource-common@4.4.0/main.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/timeline@4.4.0/main.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/resource-timeline@4.4.0/main.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.4.0/locales-all.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.4.0/main.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fullcalendar/timeline@4.4.0/main.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fullcalendar/resource-timeline@4.4.0/main.min.css">





<body onload="run()">

  <div id='calendar'></div>


</body>

1 Ответ

1 голос
/ 06 марта 2020

Если вы укажете свойства startTime и endTime, упомянутые в документации для повторяющихся событий , то fullCalendar полностью игнорирует стандартные свойства start и end для определения размещения события, и полагается вместо этого на свойства, связанные с повторением (startTime, endTime, startRecur и endRecur).

Вы можете указать это единственное событие, используя синтаксис повторения, например:

startRecur: '2020-03-01',
endRecur: '2020-03-02',
startTime: '15:00',
endTime: '18:00'

Но это немного бессмысленно, если вы на самом деле не хотите повторения.

Если вы просто хотите обычное событие единичного вхождения, не используйте свойства "повторяющиеся события". Просто укажите дату и время в свойствах start и end обычным способом, который четко задокументирован и показан в бесчисленных примерах в документации и демонстрациях fullCalendar:

start: '2020-03-01 15:00',
end: '2020-03-01 18:00',

Я не понимаю, как вы решили использовать свойства, которые упоминаются только на странице документации о повторяемости, чтобы попытаться определить неповторяющееся событие.

В любом случае, вот рабочая демонстрация:

function run() {

  var calendarEl = document.getElementById('calendar');

  var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: ['resourceTimeline'],

    defaultView: 'resourceTimelineWeek',
    resources: [{
        id: 1,
        title: 'Fred'
      },
      {
        id: 2,
        title: 'Jane'
      }
    ],
    events: [{
      id: '1',
      resourceId: '1',
      title: 'Meeting',
      allDay: false,
      start: '2020-03-01 15:00',
      end: '2020-03-01 18:00',
    }]
  });

  calendar.render();
}
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.4.0/main.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/resource-common@4.4.0/main.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/timeline@4.4.0/main.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/resource-timeline@4.4.0/main.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.4.0/locales-all.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fullcalendar/core@4.4.0/main.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fullcalendar/timeline@4.4.0/main.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fullcalendar/resource-timeline@4.4.0/main.min.css">





<body onload="run()">

  <div id='calendar'></div>


</body>
...