Team Sense: В календарь-расписание уроков добавлено разделение по преподавателям, которым присвоены свои цвета.
- На Dashboard возле каждого преподавателя можно видеть квадратик соответствующего цвета в календаре-расписании. При нажатии на него, либо ссылку "Расписание" попадёте на расписание этого сотрудника. Используется ЧПУ, то есть ссылки на расписание каждого сотрудника не динамические, а постоянные.
- Переход через главное меню "Календарь" откроет ВАШ календарь, а не все, как было раньше. Это сделано для удобства, потому что даже расписание 3-х человек наслаивается так сильно, что сложно разобраться.
- Над календарём - блок радиокнопок с выбором преподавателя, чьё расписание желаете посмотреть. Здесь происходит ajax выборка уроков определённого преподавателя.
- Протестировано и работает в Chrome, Firefox, Opera, Safari.
Многопользовательский календарь Fullcalendar в CodeIgniter с разными цветами и выбором пользователей уже внедрён в Team Sense
P.S. Мы говорим в терминах преподаватели или учителя, но Team Sense можно успешно применять в более общих случаях сотрудники, сослуживцы в любом бизнесе.
Если вам интересен процесс разработки и поиска решений, то посмотрите поиски внедрения этой функциональности на stackoverflow.com. Приведу суть (потому что заметил, что через какое-то время вопросы там удаляются):
Как показывать события для нескольких источников eventSources в зависимости от выбраннных checkboxes в Fullcalendar.
eventSources: [ ... { url: '/admin_schedule/get_schedule_db_recurring_events_on_daysweek/',//"<?echo $data_path?>", type: 'GET', data: {sch_teacher_id: sch_teacher_id}, backgroundColor: 'red', } ],
<div class="box"> <?php $js = 'onClick="rerender_schedule()"'; echo form_checkbox('teacher', 'vika', FALSE, $js)." Vika"; ?> </div>
$data = array( 'name' => 'teacher', 'class' => 'teacher', 'id' => 'teacher', 'value' => '128', 'checked' => FALSE, 'style' => 'margin:10px', ); echo form_checkbox($data); echo "Вика"; $data = array( 'name' => 'teacher', 'class' => 'teacher', 'id' => 'teacher2', 'value' => '111', 'checked' => FALSE, 'style' => 'margin:10px', ); echo form_checkbox($data); echo "Вася"; $data = array( 'name' => 'teacher', 'class' => 'teacher', 'id' => 'teacher3', 'value' => '1', 'checked' => FALSE, 'style' => 'margin:10px', ); echo form_checkbox($data); echo "Саша";
$('.teacher').change(function (event) { events1.data.sch_teacher_id = $(this).val(); events2.data.sch_teacher_id = $(this).val(); events3.data.sch_teacher_id = $(this).val(); $calendar.fullCalendar('refetchEvents'); });
var events1 = { url: 'url1', type: 'GET', data: {sch_teacher_id: $('#teacher').val() }, success: function (response) { return response; } }; var events2 = { url: 'url2', type: 'GET', data: {sch_teacher_id: $('#teacher').val() }, backgroundColor: 'green', success: function (response) { return response; } }; var events3 = { url: 'url3', type: 'GET', data: { sch_teacher_id: $('#teacher').val() }, backgroundColor: 'red', success: function (response) { return response; } };
eventSources: [ events1, events2, events3 ],
Ответ tocallaghan:
$('.CheckBoxClass').change(function () { events.data.sch_teacher_id = $(this).val(); $('#calendar').fullCalendar('refetchEvents'); });
var events = { url: 'url', type: 'GET', data: { Id: $('#divId').val() }, success: function (response) { return response; } }; $('#calendar').fullCalendar({ events: events });
|
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 0 Yii: Bootstrap tabs, делаем активной вкладку на которую выполняется переход по ссылке (20.03.2014)
- 0 CodeIgniter: Всплывающая форма обратной связи на Ajax в Bootstrap Modal и проверкой Captcha (18.02.2014)
- 0 Opencart: Модуль Filter Product OpenCart_v1.5.x: Как скрывать недоступные опции в фильтре (23.10.2013)
- 0 WordPress: Добавить ссылку "Сохранить фото" для галереи на NextGen с эффектом Lightbox (12.04.2013)
- Выдвигающаяся из значка форма поиска на сайте (27.11.2017)
- Как убрать placeholder при клике по input (04.11.2017)
- Свой дизайн кнопок социальных сетей для сайта. Кнопки "Поделиться" (19.06.2017)
- Загрузка файлов (картинок) по ajax через форму для Opencart (04.09.2016)
- Замена текста при наведении на него мышью. События onmouseover и onmouseout (25.03.2016)
- Прилипание блока к верху сайта при его прокручивании (17.02.2016)
- Разделитель тысяч в эффекте наматываемого счётчика jquery countTo (05.04.2015)
- Сделать слайдер на Owl Carousel c текстом справа (03.02.2015)
- Скролл-эффекты CSS3 и JQuery при прокрутке страницы (13.01.2015)
- Модальное окно Bootstrap 3 с формой, отправляющей email по Ajax (JQuery/PHP/HTML5/JqBootstrapValidation) (20.08.2015)
- Несколько функций в body onload (08.03.2013)
- Как в iframe показывать только определённую область страницы (04.03.2013)
- Как правильно обновить ExpressionEngine до последней версии 2.5.5 (05.02.2013)
- Team Sense: Доступна отправка сообщения/письма на email сотрудника. (18.01.2013)
- TeamSense: username (логин) в регистрации пользователя. Внедрили библиотеку DHTMLX в TeamSense. (11.01.2013)
- Team Sense: В календарь добавлена возможность указывать место проведения уроков (в офисе, на выезде) (12.12.2012)
- jQuery Tooltips от Jörn Zaefferer. Всплывающие подсказки с помощью jQuery (08.12.2012)
- Team Sense: Многопользовательский календарь, заменяем радиокнопки на чекбоксы в выборе преподавателей. Массивы в Javascript. (06.12.2012)
- Team Sense: В календарь-расписание уроков добавлено разделение по преподавателям, которым присвоены свои цвета. (04.12.2012) ← вы тут
- CodeIgniter не передаёт $this->uri->segment(3) в функцию контроллера (передача переменной PHP->JavaScript->PHP) (28.11.2012)
- Случаи возникновения ошибки в IE: "Предполагается наличие идентификатора, строки или числа" (Expected identifier, string...) (23.11.2012)