Fullcalendar: загруженный день и массив незанятых временных диапазонов

спасибо за отличное дополнение!

скажите, можно ли вывести какой-то признак того, что день наполнен событиями?

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


person M Sazanof    schedule 25.04.2017    source источник
comment
может дать некоторые указания на ваши конечные цели? то есть зачем вам это нужно? возможно, есть разные способы достижения вашего конечного результата.   -  person ADyson    schedule 25.04.2017
comment
Мне нужно сделать например ячейку красного цвета, интервал времени в котором полный. Это необходимо для того, чтобы пользователи могли интуитивно зарезервировать время для фотосъемки.   -  person M Sazanof    schedule 25.04.2017
comment
Событие dayClick хочет сделать выходные временные интервалы занятыми и свободными. Fullcalendar можно ли как-то не давать выбирать уже занятый интервал времени?   -  person M Sazanof    schedule 25.04.2017
comment
Мне нужно сделать например ячейку красного цвета, интервал времени в котором полный. Если там есть событие в этот период времени, то оно заполнено, да? Или вы разрешаете несколько событий в одном временном интервале? В любом случае, если отображается событие, оно занимает место в этом временном интервале, поэтому вы не можете наложить на него какой-либо другой цвет — оно не будет видно.   -  person ADyson    schedule 25.04.2017
comment
fullcalendar.io/docs/selection/selectOverlap — этот параметр позволяет запретить пользователю выбирать период времени, уже занятый событием.   -  person ADyson    schedule 25.04.2017
comment
fullcalendar.io/docs/event_ui/eventOverlap и этот, если вы делаете перетаскивание /удаление/изменение размера событий.   -  person ADyson    schedule 25.04.2017
comment
О, спасибо ... я попробую это и скажу вам :)   -  person M Sazanof    schedule 25.04.2017
comment
Ok. Если у вас есть проблема с вашим кодом, отредактируйте вопрос, чтобы включить его здесь, и, возможно, мы сможем это исправить.   -  person ADyson    schedule 25.04.2017
comment
Если там есть событие в этот период времени, то оно заполнено, да? Или вы разрешаете несколько событий в одном временном интервале? Есть несколько событий с разными диапазонами дат   -  person M Sazanof    schedule 25.04.2017
comment
В таком случае, каково правило, которое говорит, сколько разрешенных перекрывающихся событий? Всегда ли это фиксированное число или есть возможность варьирования? Должны ли они точно перекрываться (т. е. одинаковое время начала и окончания для каждого события) или может быть частичное перекрытие?   -  person ADyson    schedule 25.04.2017
comment
Видишь ли, мой плохой английский... так что мы меняем минимальное и максимальное время, например, 8:00 и 22:00. каждый слот может содержать разное количество событий. зависит от того, какой временной интервал забронирован. то есть может быть 2 события с 8 до 20 и с 20 до 22:00. а может быть от 8 до 9, от 9 до 10.. и так далее. а если осталось свободное время-нужно покрасить клеточку например в красный цвет..   -  person M Sazanof    schedule 25.04.2017
comment
в настройках календаря есть временной диапазон. и заполняется надо поймать эту полосу вовремя или нет, и покрасить ячейку. чтобы пользователь, глядя на календарь, сразу понял, что забронировать определенные дни, так как занят все время   -  person M Sazanof    schedule 25.04.2017
comment
извините, я не знаю, я точно понимаю или нет. Скажите, пожалуйста, верно ли следующее понимание: 1) minTime — 08:00, maxTime — 22:00. 2) Один слот равен часу. например первый слот с 08:00 до 09:00, второй слот с 09:00 до 10:00 и т. д. до последнего слота с 21:00 до 22:00. 3) Каждый слот может содержать максимум 2 события.   -  person ADyson    schedule 25.04.2017
comment
1) да........   -  person M Sazanof    schedule 25.04.2017
comment
2) 1 слот - это один час, например. с 8:00 до 22:00 = 14 слотов (временных интервалов). Но это не значит, что за час будет 14 событий. Время аренды может быть любым из: 1)8 до 22 (все 14 часов), 2)или с 8 до 15, с 15 до 18, с 18 до 22. Пользователь может, например, арендовать не только один час, и внутри космоса. Подобно календарю, прокатные фотостудии - фотографы бронируют свое необходимое количество часов (1,2,3,7), а другим фотографам эти часы больше не предоставляются в аренду.   -  person M Sazanof    schedule 25.04.2017
comment
А когда все временные интервалы закончились (8-22), ячейка становится красной, все часы заняты, бронирование на эту дату невозможно   -  person M Sazanof    schedule 25.04.2017
comment
в идеале я хотел бы реализовать что-то подобное (функционально) vanilla.studio/ Спасибо за помощь? мастер =)   -  person M Sazanof    schedule 25.04.2017
comment
Я понимаю. Таким образом, в представлении месяца вы хотите сделать фоновый цвет ячейки дня красным, если все возможные временные интервалы (как определено вами) красные. Несколько дней назад я ответил на очень похожий вопрос: stackoverflow.com/questions/43583993/ - в В этом примере данные для определения цвета ячеек были включены в ленту событий, поэтому расчет о том, заполнены ли слоты, происходил на сервере, а затем просто отправлял сигнал в календарь. Дайте мне знать, если этот пример поможет.   -  person ADyson    schedule 26.04.2017
comment
Нет, к сожалению, это не совсем так. Как отслеживать занятое время (которое не является свободным временем между 8:00 и 22:00), обратный вызов какой-то... Может быть, для них можно добавить класс .fc-busy-day, чтобы получить что-то вроде этого: yadi.sk/i/vIS5MThM3HN2cg   -  person M Sazanof    schedule 26.04.2017
comment
Хотя мне кажется очень похоже. Как события добавляются в календарь? Именно в тот момент, когда событие принято, мы должны подсчитать оставшееся свободное время. Это может быть либо на стороне клиента, либо на стороне сервера, но это зависит от того, как вы уже реализовали. Можете ли вы опубликовать код, показывающий, как события добавляются в календарь, пожалуйста?   -  person ADyson    schedule 26.04.2017
comment
добавить в php pastebin.com/MajtCvpF   -  person M Sazanof    schedule 26.04.2017
comment
получить события - pastebin.com/nA3ZxFmc   -  person M Sazanof    schedule 26.04.2017
comment
основной js — pastebin.com/PdSY4z0C   -  person M Sazanof    schedule 26.04.2017
comment
В будущем, пожалуйста, отредактируйте сам вопрос с соответствующим кодом - код в комментариях и внешних ссылках, как правило, не нравится сообществу SO. Поскольку это ваш первый вопрос, я вас прощаю :-).   -  person ADyson    schedule 26.04.2017
comment
Во всяком случае, ваш случай на самом деле очень похож на тот пример, который я привел. Что вы могли бы: изменить ответ, отправленный getJsonEvents PHP, чтобы он отправлял два объекта в ответе - один представляет собой массив событий за указанный период времени, а другой - объект, свойства которого - все дни в пределах указанного период времени, с флагом true/false напротив каждого дня, чтобы сказать, заполнен он или нет. Я предполагаю, что у вас уже есть некоторая логика PHP для определения этого, чтобы проверить, является ли запрос на добавление приемлемым или нет? Вы можете повторно использовать эту логику.   -  person ADyson    schedule 26.04.2017
comment
... затем на стороне клиента вы можете просто изменить обратный вызов событий fullCalendar для обработки обоих наборов данных, подобно той ссылке, которую я дал. Затем он будет использовать второй (новый) набор результатов, чтобы выделить красным цветом дни, когда все слоты заполнены.   -  person ADyson    schedule 26.04.2017
comment
Ой! спасибо! я плохо проверю это   -  person M Sazanof    schedule 26.04.2017