Вид "Timeline"
Данный вид доступен только в версии Scheduler PRO.
Вид Timeline отображает события по горизонтали, организуя отдельные временные линии (таймлайны) бок о бок слева направо.

Инициализация
Чтобы добавить вид Timeline в планировщик, выполните следующие шаги:
- Включите расширение Timeline на странице:
- Timeline - для режимов 'Bar' и 'Cell'
- Timeline, Treetimeline - для режима 'Tree'
- Timeline, Daytimeline - для режима 'Days'
scheduler.plugins({
timeline: true,
treetimeline: true,
daytimeline: true
});
- Добавьте вкладку вида в разметку планировщика:
<div id="scheduler_here" class="dhx_cal_container" ...>
<div class="dhx_cal_navline">
...
<div class="dhx_cal_tab" name="timeline_tab"></div>
</div>
...
</div>
- Установите метку для вкладки:
//'timeline_tab' соответствует имени нашего div
scheduler.locale.labels.timeline_tab ="Timeline";
- Вызовите метод createTimelineView:
scheduler.createTimelineView({
name:"timeline",
x_unit:"minute", // единица измерения по оси X
x_date:"%H:%i", // формат даты на оси X
x_step:30, // шаг на оси X в 'x_unit'
x_size:24, // общее количество шагов 'x_step' на оси X
x_start:16, // смещение по оси X в 'x_unit'
x_length:48, // количество шагов 'x_step' для прокрутки за раз
y_unit: // секции, отображаемые по оси Y
[{key:1, label:"Section A"},
{key:2, label:"Section B"},
{key:3, label:"Section C"},
{key:4, label:"Section D"}],
y_property:"section_id", // свойство для сопоставления данных с секциями
render:"bar" // режим отображения
});
При использовании режима 'Days' временная шкала должна охватывать ровно один день. Если в конфигурации указана более короткая или длинная длительность, таймлайн будет отображаться некорректно.
Пример конфигурации шкалы
Хотя метод createTimelineView включает множество параметров, его использование довольно просто.
Пример: временная шкала с 09:00 до 15:00 с шагом 30 минут и прокруткой по дням.
{
x_unit:"minute",// единицы шкалы — минуты
x_step:30, // шаг 30 минут, например, 09:00 - 09:30
x_size:12, // количество 30-минутных интервалов между 09:00 и 15:00
// 15 - 9 = 6 часов = 360 минут = 360/30 = 12
x_start:18, // шкала начинается с 09:00, это 9 часов от 00:00
// 9 часов = 540 минут = 540/30 = 18 шагов 'x_step'
x_length:48,// прокрутка на один день: 1 день = 24 часа = 1440 минут = 1440/30 = 48 шагов 'x_step'
...
}
Конфигурация вида Timeline
Все функции-шаблоны с именами, содержащими (timeline)_some, должны определяться после создания вида, так как они динамически назначаются конструктором таймлайна и будут перезаписаны вызовом createTimelineView.
Установка начальной даты для Timeline
Например, вот как установить начальную дату для вида Timeline.
Начальная дата любого вида управляется функцией scheduler.date[<viewName> +"_start"]. Чтобы изменить первый день шкалы таймлайна, переопределите функцию scheduler.date.timeline_start после вызова scheduler.createTimelineView():
// неделя начинается с понедельника
scheduler.config.start_on_monday = true;
// создаём таймлайн
scheduler.createTimelineView({
name: "timeline",
render: "tree",
days: 7,
folder_dy: 20,
x_unit: "day",
x_date: "%D %j %F",
x_step: 1,
x_size: 7,
x_start: 0,
x_length: 7,
y_unit:[],
y_property: "section_id"
});
// переопределяем функцию начальной даты после создания
scheduler.date.timeline_start = scheduler.date.week_start;
// инициализируем планировщик
scheduler.init("timeline_tree", new Date(), "timeline");
API объекта Timeline
Существует несколько методов для взаимодействия с видом Timeline.
Создание вида timeline
Для начала создайте экземпляр таймлайна в планировщике:
scheduler.createTimelineView({
name:'timeline',
...
});
var timeline = scheduler.matrix.timeline;
После создания можно использовать приведённые ниже методы.
Получение объекта timeline
Чтобы получить объект таймлайна, используйте метод getView. Он принимает имя вида в качестве параметра. Если параметр не передан, возвращается текущий вид.
var timeline = scheduler.getView();
timeline.x_size = 8;
scheduler.setCurrentView();