В этой главе рассматривается, как выполнять основные операции с задачами: создание, удаление и динамическое обновление свойств задачи.
Чтобы добавить новую задачу в Gantt, используйте метод addTask:
var taskId = gantt.addTask({
id:10,
text:"Project #1",
start_date:"02-09-2020",
duration:28
});
Простой способ запретить пользователям добавлять подзадачи к задачам определённого уровня (или по другим критериям) — скрыть кнопку 'Add' с помощью CSS.
Вы можете назначить CSS-класс каждой строке грида с помощью шаблона grid_row_class:
gantt.templates.grid_row_class = function( start, end, task ){
if ( task.$level > 1 ){
return "nested_task"
}
return "";
};
Затем скройте кнопку 'Add' для этих строк:
.nested_task .gantt_add{
display: none !important;
}
Related sample: Predefined Project Structure
Чтобы оперативно обновить свойство объекта задачи, используйте метод updateTask:
var task = gantt.getTask(10);//->{id:10,text:"Task #10",start_date:"02-09-2020",...}
task.text = "Task #10_1"; gantt.updateTask(10);
Когда включён Data Processor, вызов updateTask() отправит изменения на сервер.
После обновления задачи срабатывает событие onAfterTaskUpdate. Это может привести к другим обновлениям, например, к автоматическому пересчёту задачи и её последователей, если эта функция включена.
Если требуется только визуальное обновление без отправки данных на сервер, используйте метод refreshTask() вместо updateTask():
var task = gantt.getTask(10);//->{id:10,text:"Task #10",start_date:"02-09-2020",...}
task.text = "Task #10_1";
gantt.refreshTask(10);
Чтобы перерисовать все задачи в Gantt, используйте метод refreshData:
var task = gantt.getTask(10);//->{id:10,text:"Task #10",start_date:"02-09-2020",...}
var task2 = gantt.getTask(11);//->{id:11,text:"Task #11",start_date:"05-09-2020",...}
task.text = "Task #10_1"; task2.text = "Task #11_1"; gantt.refreshData();
Чтобы удалить задачу, используйте метод deleteTask:
gantt.deleteTask(taskId);
Параметр cascade_delete управляет тем, как происходит удаление задач. По умолчанию он установлен в true, то есть при удалении задачи отправляются запросы на сервер для каждой вложенной задачи и связи, связанной с ней.
Если не требуется отправлять несколько запросов, отключите опцию cascade_delete:
gantt.config.cascade_delete = false;
С этим параметром Gantt отправляет только один запрос на удаление родительской задачи, а сервер обрабатывает удаление вложенных задач и связей.
Эта опция влияет на реализацию на сервере. Подробнее см. в соответствующем разделе статьи по серверной интеграции.
Чтобы очистить все задачи из Gantt, вызовите метод clearAll:
gantt.clearAll();
К началу