В этом разделе рассматриваются основные операции, которые можно выполнять с задачами, включая создание или удаление задач и динамическое обновление их свойств.
Чтобы добавить задачу в диаграмму Ганта, используйте метод gantt.addTask
:
var taskId = gantt.addTask({
id:10,
text:"Project #1",
start_date:"02-09-2020",
duration:28
});
Эффективный способ предотвратить добавление пользователями подзадач на определённых уровнях (или на основе других условий) — скрыть кнопку 'Add' с помощью CSS.
Вы можете назначить CSS-класс каждой строке задачи, используя шаблон gantt.templates.grid_row_class
:
gantt.templates.grid_row_class = function( start, end, task ){
if ( task.$level > 1 ){
return "nested_task"
}
return "";
};
Затем примените правило CSS, чтобы скрыть кнопку 'Add' для строк с указанным классом:
.nested_task .gantt_add{
display: none !important;
}
Related sample: Predefined Project Structure
Чтобы динамически обновить свойство задачи, используйте метод gantt.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();
Чтобы удалить задачу, используйте метод gantt.deleteTask
:
gantt.deleteTask(taskId);
Настройка gantt.config.cascade_delete
контролирует, как удаляются вложенные задачи. По умолчанию она установлена в true, что означает, что удаление задачи отправит отдельный запрос на сервер для каждой вложенной задачи и ссылки, связанной с удаляемой задачей.
Если вы хотите избежать отправки множества запросов, вы можете отключить эту настройку:
gantt.config.cascade_delete = false;
Когда отключено, Gantt отправит только один запрос на удаление родительской задачи, оставляя серверу обработку удаления вложенных задач и ссылок.
Эта настройка влияет на реализацию на серверной стороне. Для получения более подробной информации, обратитесь к статье Интеграция на стороне сервера.
Чтобы очистить все задачи из диаграммы Ганта, используйте метод gantt.clearAll
:
gantt.clearAll();
К началу