Этот контрол предоставляет выпадающий список для изменения родителя задачи. Он загружает все задачи, отображаемые на диаграмме Gantt, с возможностью применения правил фильтрации и настройки отображения значений. Помимо этих функций, он работает так же, как и контрол Select Control.
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 в lightbox, необходимо:
1) Добавить секцию в конфигурацию lightbox:
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"] = "Родительская задача";
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.