Когда стандартные виды не совсем соответствуют вашим требованиям, вы можете создать пользовательский вид.
Создание пользовательского вида начинается с добавления новой вкладки в планировщик, которая будет представлять ваш новый вид. Обычно это выглядит так:
<div class="dhx_cal_tab" data-tab="workweek"></div>
Обратите внимание:
Чтобы задать название для вида, используйте:
scheduler.locale.labels.{viewName}_tab = "someName"
Есть три основных метода, которые определяют поведение вида — они задают интервал отображения (например, неделя для Week, месяц для Month и т.д.) и активную дату при нажатии пользователем кнопок 'Next' или 'Prev' в заголовке.
Наконец, потребуется настроить шаблоны для даты в заголовке и шкалы X-оси:
Например:
scheduler.templates.workweek_date = scheduler.templates.week_date;
scheduler.templates.workweek_scale_date = scheduler.templates.week_scale_date;
Вот как создать пользовательский вид с именем 'workweek', похожий на Week, но отображающий только рабочие дни недели.
Шаги:
<div id="scheduler_here" class="dhx_cal_container" ...>
<div class="dhx_cal_navline">
...
<div class="dhx_cal_tab" name="workweek_tab" style="right:280px;"></div>
</div>
</div>
scheduler.locale.labels.workweek_tab = "Work week"
scheduler.date.workweek_start = function(date) {
return scheduler.date.week_start(date);//
}
Здесь мы повторно используем метод week_start() из Week, так как оба вида имеют одинаковую начальную дату.
scheduler.date.get_workweek_end=function(start_date){
return scheduler.date.add(start_date,5,"day");
}
Метод add() изменяет дату, прибавляя или вычитая указанный временной интервал. Подробнее здесь.
scheduler.date.add_workweek=function(date,inc){
return scheduler.date.add(date,inc*7,"day");
}
Метод add() отвечает за прибавление или вычитание временного интервала. Подробнее смотрите здесь.
scheduler.templates.workweek_date = scheduler.templates.week_date;
Этот шаблон совпадает с шаблоном Week, поэтому мы просто используем стандартный шаблон Week — week_date
scheduler.templates.workweek_scale_date = scheduler.templates.week_scale_date;
Этот шаблон также взят из Week для сохранения единообразия — week_scale_date
Начальный вид, отображаемый в планировщике, задаётся при инициализации, как описано в init. Однако, поскольку шаблоны для пользовательского вида могут быть ещё не полностью обработаны на тот момент, инициализация может завершиться с ошибкой.
Чтобы этого избежать, убедитесь, что шаблоны для вашего пользовательского вида готовы до инициализации планировщика — создавайте пользовательские виды внутри обработчика события onTemplatesReady. Это событие срабатывает после полной обработки всех шаблонов:
scheduler.attachEvent("onTemplatesReady",function(){
// Здесь размещайте код создания пользовательского вида
});
scheduler.init(container, date, "custom view name");
Наверх