При использовании календаря в своем приложении мы решили добавить для каждого события дополнительные аттрибуты (ползовательские данные, которые храняться в БД в отдельной таблице и связаны по идент. события с основным событием). Для того, чтобы не переопределять ваш диалог по созданию событий и не связываться с логикой повторяющихся событий доступ к этим аттрибутам был организован через дополнительный диалог, ссылка на который появляется в ячейке созданного события. Все работает нормально, но есть след. вопрос: в вашем диалоге при попытке редактировать свойства повторяющегося события появляется запрос на изменение всей последовательности событий или только одного выбранного и в случае одного выбранного это событие извлекается из последовательности повтроряющегося события и живет далее самостоятельно; как мне добиться такой же функциональности для своего дополнительного диалога, хотелось бы также спрашивать пользователя о его намерениях и в случае желания изменить только одно событие, извлекать его из общей последовательности и работать с ним отдельно, используя его новый идент.?
Эм… вообще то этот диалог можно перенастроить по своему, добавив туда необходимые секции. Добавление новых секций никак не поломает логику повторяющихся событий.
docs.dhtmlx.com/doku.php?id=dhtm … tails_form
Довольно проблематично сделать это когда диалог редактирования уже открыт.
У каждого отрисованного события есть айди атрибут, для повторяющихся событий этот айди составной
{pid}_{uid}
pid - id реального события которое хранит в себе данные всей серии
uid - идентификатор данного инстанса, это не реальный айди а временная метка
если вызвать showLightbox(pid) будет произведено редактирование всей серии, если вызвать showLightbox(pid_uid) будет произведено редактирование отдельного инстанса, с последующим созданием нового события.
В общем случае можно вручную создать новое событие , если у него правильно выставлены параметры rec_type, event_lenght, event_pid - оно будет использовано как исключение для уже существующего повторяющегося события.
Меня устраивает второй подход связанный с созданием в БД события. Теперь вопрос в том как обновить календарь после записи в БД нового события, чтобы клиентская часть понимала, что это событие выделено из общей последовательности и у него изменился идент.
достаточно вызывать addEvent с нужными данными
scheduler.addEvent({
id:some,
rec_type:"",
event_pid:parent_id,
event_length:time
})
time - timestamp/1000 of original start date for the instance(not series) which was changed