Ограничения и ресурсы для событий полного календаря

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

$('#calendar').fullCalendar({
    schedulerLicenseKey: "CC-Attribution-NonCommercial-NoDerivatives",
    // put your options and callbacks here
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,basicWeek,agendaDay'
    },
    defaultView: 'agendaDay',
    defaultDate: '2017-05-09',
    navLinks: true, // can click day/week names to navigate views
    editable: true,
    nowIndicator: true,
    allDaySlot: false,
    fixedWeekCount: false,
    eventLimit: true, // allow "more" link when too many events
    slotLabelFormat: "HH:mm",
    slotLabelInterval: "00:60:00",
    events: [
        {
            title: 'Long Event',
            start: '2017-05-09T16:00:00',
            end: '2017-05-09T17:00:00',
            resourceId: 'b',
            constraint: {
                resourceIds: ['c', 'd']
            }
        },
        {
            id: 999,
            title: 'Test Event',
            start: '2017-05-09T16:00:00',
            end: '2017-05-09T18:00:00',
            resourceId: 'a',
            constraint: {
                resourceIds: ['b', 'c', 'd']
            }
        }
    ],
    resources: [
        {id: 'a', title: 'Auditorium A'},
        {id: 'b', title: 'Auditorium B'},
        {id: 'c', title: 'Auditorium C'},
        {id: 'd', title: 'Auditorium D'}
    ]
})

Теперь, если вы будете следовать инструкциям здесь, вы заметите, что внутри идентификаторов ресурсов вы указываете идентификаторы, которые вы хотите, чтобы событие НЕ произошло. Но в jsbin видно, что происходит обратное.

Кроме того, если вы включите просмотр месяца или недели, вы не сможете перетаскивать их с одного дня на другой. Ограничивает вас из-за eventConstraint.

Я что-то делаю не так или это что-то не так?


На данный момент удалось обойти проблему с этим решением, но я думаю, что вышеизложенное является ошибкой. Вы можете попробовать моё решение здесь.

Что я сделал, так это передал ограничения в настраиваемое поле события и проверил правильность падения.


person Panagiotis Vrs    schedule 22.06.2017    source источник


Ответы (1)


Теперь, если вы будете следовать приведенным здесь инструкциям, вы заметите, что внутри идентификаторов ресурсов вы указываете идентификаторы, которые вы хотите, чтобы событие НЕ происходило.

Нет, в статье говорится как раз об обратном:

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

(Я выделил жирным шрифтом.)

Это означает, что вы предоставляете список ресурсов, на которые можно перетащить событие. Поэтому его нельзя перетащить на какие-либо ресурсы, не указанные в свойстве ограничения.

В соответствии с примером, приведенным в ссылке, которую вы разместили:

constraint: {
  resourceIds: [ 'a', 'b', 'c' ] // constrain dragging to these
}

Событие с этим свойством можно будет перетаскивать только на ресурсы «a», «b» и «c».

Я думаю, вы неправильно поняли документацию.

person ADyson    schedule 22.06.2017
comment
но опять же, это не объясняет, почему вы не можете перетащить событие на неделю или месяц, я прав? - person Panagiotis Vrs; 22.06.2017
comment
это потому, что представления недели и месяца не являются представлениями планировщика (они являются частью базового полного календаря) и, следовательно, не имеют концепции ресурсов. Если вы перетащите туда событие, как программа узнает, с каким ресурсом его связать, не говоря уже о том, является ли он разрешенным ресурсом? Если вы хотите использовать перетаскивание событий с учетом ресурсов, вы должны использовать одно из представлений планировщика, либо временную шкалу (fullcalendar.io/docs/timeline) или повестка дня/базовое представление, дополненное списком ресурсов в соответствии с fullcalendar.io/docs/vertical_resource_view/getting_started. - person ADyson; 22.06.2017
comment
о, я вижу, теперь это имеет смысл. Спасибо за ответ. На данный момент я оставлю свое решение, которое соответствует моим потребностям, но рад узнать, где была ошибка. - person Panagiotis Vrs; 22.06.2017