dhtmlxScheduler позволяет настраивать собственный набор кнопок как для панели выбора (select bar), так и для панели редактирования (edit bar).
По умолчанию грид выбора содержит 3 кнопки ('Details', 'Edit', 'Delete'), которые задаются через опцию конфигурации icons_select.
scheduler.config.icons_select = [
"icon_details",
"icon_edit",
"icon_delete"
];
Вот пример грида выбора, показанный на изображении ниже:
К существующим кнопкам добавлена новая кнопка Location.
Шаги для реализации такого результата:
scheduler.config.icons_select = [
"icon_location",
"icon_details",
"icon_edit",
"icon_delete"
];
Обратите внимание, каждая кнопка должна начинаться с "icon_"
scheduler.locale.labels.icon_location = "Location";
.dhx_menu_icon.icon_location{
background-image: url('location_icon.png');
}
scheduler._click.buttons.location = function(id){
some_function(id);
};
Здесь scheduler._click.buttons содержит обработчики onClick для кнопок панели. Ключ 'location' соответствует названию кнопки из icons_select без префикса 'icon_'.
Обычно грид редактирования содержит 2 кнопки ('Save' и 'Cancel'), которые настраиваются с помощью опции icons_edit.
scheduler.config.icons_edit = [
"icon_save",
"icon_cancel"
];
Рассмотрим грид редактирования, показанный на изображении ниже:
Помимо кнопок Save и Cancel, добавлена новая кнопка Info. Порядок действий:
scheduler.config.icons_edit = [
"icon_custom",
"icon_save",
"icon_cancel"
];
scheduler.locale.labels.icon_custom = "Info";
.dhx_menu_icon.icon_custom{
background-image: url('info_icon.png');
}
scheduler._click.buttons.custom = function(id){
some_function;
};
Снова, scheduler._click.buttons содержит обработчики кликов для кнопок, а 'custom' соответствует названию кнопки из icons_edit без префикса 'icon_'.
Можно динамически изменять кнопки на панелях редактирования и выбора в зависимости от определённых условий.
Например, если у ваших событий есть булево свойство important, указывающее, что событие критично и не должно быть удалено, вы можете показывать или скрывать кнопку 'delete' на панели выбора соответствующим образом. Вот как это реализовать:
scheduler.attachEvent("onClick", function(id){
var event = scheduler.getEvent(id);
if (event.important)
scheduler.config.icons_select = ["icon_details"];
else
scheduler.config.icons_select = ["icon_details", "icon_delete"];
return true;
});
Наверх