Настройка Scheduler
Так как Scheduler - это приложение на базе Webix Jet, оно состоит из отдельных Webix компонентов.
Эти компоненты можно переопределить или же работать с отдельными настройками чата.
Базовая конфигурация
Чтобы настроить общую конфигурацию виджета, используйте следующие свойства:
- date (object) - изначальная дата для виджета (текущая дата по умолчанию)
- mode (string) - текущий режим работы. Возможные значения:
- "day"
- "week"
- "month" (по умолчанию)
- "year"
- "agenda"
- "timeline" (доступно, если свойство timeline включено)
- "units" (доступно, если свойство units включено)
- readonly (boolean) - если true, блокирует редактирование календарей и событий. По умолчанию false
- calendars (boolean) - если false, блокирует возможность добавлять события в календари (группы событий). По умолчанию true
- units (boolean) - позволяет отображать события дня, сгруппированные по категориям
- timeline (boolean) - позволяет работать с таймлайном
- timelineMode (string) - определяет режим просмотра для таймлайна ("day", "week" by default, "month")
- recurring (boolean) - если false, не поддерживает повторяющиеся события. По умолчанию true
- serverUTC (boolean) - если true, позволяет парсить входящие UTC даты в местное время и сохранять обратно в UTC формат
- dynamic (string) - включает режим динамической загрузки событий при навигации ("day", "week", "month", "year"). Не зависит от текущего режима работы mode (см. выше)
- compact (boolean) - компактный режим. По умолчанию не выставлен (undefined);
- compactWidth (number) - ширина виджета, при которой он переключается в компактный режим. (compact должен быть true). По умолчанию 780
- url (string) - URL для загрузки данных
- locale (string, object) - название текущего языка или объект с языковыми настройками
- override - Map с изменёнными внутренними классами и сервисами. Используется при кастомизации.
Реактивные свойства
Кроме базовых свойств, у Scheduler есть реактивные, которые хранят состояние приложения и позволяют разработчикам отслеживать его изменения:
- active (array) - массив с ID активных календарей;
- date (object) - объект даты JavaScript;
- mode (string) - текущий режим работы;
- readonly (boolean) - текущее состояние "readonly" (true или false);
- selected (object) - выбранное событие. Включает в себя следующие поля:
- id (string, number) - ID события;
- date (string) - (для повторяющихся событий) ID конкретного повторения;
- node (object) - HTML узел выбранного события (повторения) при выборе этого события.
Получить текущее состояние компонента можно с помощью метода getState():
webix.ui({
view: "scheduler",
date: new Date(2018, 4, 21, 0, 0, 0),
url: "https://docs.webix.com/calendar-backend/",
});
$$("scheduler").getState();
/*
{
active: [...], date: new Date(),
mode: "month", readonly: false,
selected: {id: "30", date: "1526974200000_30", node:HTMLElement }
}
*/
Отслеживание изменений реактивных свойств
Следить за изменениями реактивных свойств можно с помощью обработчика $observe:
webix.ui({
view: "scheduler",
id: "myscheduler",
date: new Date(2018, 4, 21, 0, 0, 0),
url: "https://docs.webix.com/calendar-backend/",
on: {
onInit: app => {
const state = app.getState();
// выводит режим работы и выбранное событие
state.$observe("mode", v => webix.message(`You are in the "${v}" display mode!`));
state.$observe("selected", v => {
if(v !== null) webix.message(`The ID of the selected event is ${v.id}`)
});
}
}
});
Related sample: Scheduler: Listening to State Changes
В примере выше, текущий state доступен через экземпляр JetApp, который, в свою очередь, доступен в обработчике onInit.
Наверх