Управление Родителем

Это выпадающий список, предназначенный для изменения родителя задачи. Он загружает все задачи, видимые на диаграмме Ганта, но вы можете применить правила фильтрации и настроить, как отображаются значения. Остальной функционал такой же, как описано в Контрол Выбора.

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 (полный список можно найти здесь):

  • name - (string) имя секции
  • height - (number) высота секции
  • map_to - (string) имя свойства данных, связанного с секцией
  • type - (string) тип элемента управления секции
  • focus - (boolean) если установлено значение true, эта секция получает фокус при открытии лайтбокса
  • allow_root - (boolean) при установке "true" добавляется дополнительная опция, позволяющая назначать задачи на корневой уровень. Работает вместе с root_label
  • root_label - (string) предоставляет метку для родителя на корневом уровне. Используется с allow_root
  • filter - (function) применяет функцию фильтрации к опциям выбора. Эта функция использует id задачи и объект задачи в качестве параметров
  • sort - (function) применяет функцию сортировки к опциям выбора
  • template - (function) определяет кастомный шаблон для опций выбора

Фильтрация опций

Чтобы сузить круг опций, показанных в элементе управления 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 использует функцию, которая принимает два параметра:

  • id - (string, number) идентификатор задачи
  • task - (object) объект задачи

Функция должна возвращать:

  • true для задач, которые должны быть показаны
  • false для задач, которые должны быть исключены из списка опций

Сортировка опций

Чтобы организовать опции в элементе управления 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 задает функцию, которая вызывается для каждой пары соседних значений. Она должна возвращать:

  • 1 - первое значение идет перед вторым
  • -1 - второе значение идет перед первым
  • 0 - порядок не изменяется

Шаблон для опций

Чтобы настроить, как опции отображаются в элементе управления 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 определяет функцию, которая принимает три параметра:

  • start - (Date) дата начала события
  • end - (Date) дата окончания события
  • ev - (object) объект события

Функция возвращает кастомный шаблон для опций, отображаемых в элементе управления.

Если свойство 'template' не определено, формат опций будет следовать шаблону task_text.

К началу