Это выпадающий список, предназначенный для изменения родителя задачи. Он загружает все задачи, видимые на диаграмме Ганта, но вы можете применить правила фильтрации и настроить, как отображаются значения. Остальной функционал такой же, как описано в Контрол Выбора.
gantt.config.lightbox.sections = [
{name:"description", height:38, map_to:"text", type:"textarea", focus:true},
{name:"parent", type:"parent", allow_root:"true", root_label:"No parent"}, {name:"time", height:72, type:"time", map_to:"auto"}
];
Related sample: Parent selector
Чтобы включить элемент управления parent в лайтбокс, выполните следующие действия:
1) Добавьте секцию в конфигурацию лайтбокса:
gantt.config.lightbox.sections = [
{name:"description", height:38, map_to:"text", type:"textarea",focus:true},
{name:"parent", type:"parent", allow_root:"true", root_label:"No parent"}, {name:"time", height:72, type:"duration", map_to:"auto"}
];
2) Определите метку для секции:
gantt.locale.labels["section_parent"] = "Parent task";
Related sample: Parent selector
Вот некоторые ключевые свойства для элемента управления parent (полный список можно найти здесь):
Чтобы сузить круг опций, показанных в элементе управления parent, используйте свойство filter:
Фильтрация. Отображение только задач 1-го уровня
gantt.config.lightbox.sections = [
{name:"description", height:38, map_to:"text", type:"textarea", focus:true},
{name:"parent", type:"parent", filter:function(id, task){ if(task.$level > 1){ return false; }else{ return true; } }},
{name:"time", height:72, type:"time", map_to:"auto"}
];
Related sample: Parent selector
Свойство filter использует функцию, которая принимает два параметра:
Функция должна возвращать:
Чтобы организовать опции в элементе управления parent, используйте свойство sort:
Сортировка задач по длине заголовка
function sortByLength(a,b){
a = a.text.length();
b = b.text.length();
return a>b?1:(a<b?-1:0);
};
gantt.config.lightbox.sections = [
{name:"description", height:38, map_to:"text", type:"textarea", focus:true},
{name:"parent", type:"parent", sort:sortByLength}, {name:"time", height:72, type:"time", map_to:"auto"}
];
Свойство sort задает функцию, которая вызывается для каждой пары соседних значений. Она должна возвращать:
Чтобы настроить, как опции отображаются в элементе управления parent, используйте свойство template:
gantt.config.lightbox.sections = [
{name:"description", height:38, map_to:"text", type:"textarea", focus:true},
{name:"parent", type:"parent", template(start,end,ev){ var title = ev.id+"."+ev.text; return title; }}, {name:"time", height:72, type:"time", map_to:"auto"}
];
Свойство template определяет функцию, которая принимает три параметра:
Функция возвращает кастомный шаблон для опций, отображаемых в элементе управления.
Если свойство 'template' не определено, формат опций будет следовать шаблону task_text.