Grundlegende Operationen mit Aufgaben

Dieser Abschnitt behandelt grundlegende Operationen, die Sie mit Aufgaben durchführen können, einschließlich der Erstellung oder Löschung von Aufgaben und der dynamischen Aktualisierung ihrer Eigenschaften.

Hinzufügen einer neuen Aufgabe

Um eine Aufgabe zum Gantt-Diagramm hinzuzufügen, verwenden Sie die Methode gantt.addTask:

var taskId = gantt.addTask({
    id:10,
    text:"Projekt #1",
    start_date:"02-09-2020",
    duration:28
});

Einschränkung des Hinzufügens von Aufgaben auf bestimmten Ebenen

Eine effektive Methode, um zu verhindern, dass Benutzer Unteraufgaben zu Aufgaben auf bestimmten Ebenen hinzufügen (oder basierend auf anderen Bedingungen), besteht darin, den 'Hinzufügen'-Button mithilfe von CSS auszublenden.

Sie können jeder Aufgabenzeile eine CSS-Klasse zuweisen, indem Sie das Template gantt.templates.grid_row_class verwenden:

gantt.templates.grid_row_class = function(start, end, task){
    if (task.$level > 1){
        return "nested_task"
    }
    return "";
};

Anschließend wenden Sie eine CSS-Regel an, um den 'Hinzufügen'-Button für Zeilen mit der angegebenen Klasse auszublenden:

.nested_task .gantt_add{
    display: none !important;
}

Related sample:  Predefined Project Structure

Aktualisieren einer Aufgabeigenschaft

Um eine Aufgabeigenschaft dynamisch zu aktualisieren, verwenden Sie die Methode 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);

Wenn der Datenprozessor aktiviert ist, löst die Methode updateTask() aus, dass Änderungen an den Server gesendet werden.

Sobald die Aufgabe aktualisiert ist, wird das Ereignis onAfterTaskUpdate ausgelöst. Dies könnte zu zusätzlichen Änderungen führen, wie z.B. der automatischen Planung der Aufgabe und ihrer Nachfolger, wenn die automatische Planung aktiv ist.

Wenn Sie nur die Änderungen neu rendern müssen, ohne Aktualisierungen auf dem Server auszulösen, verwenden Sie refreshTask() anstelle von updateTask():

var task = gantt.getTask(10);//->{id:10,text:"Task #10",start_date:"02-09-2020",...}
 
task.text = "Task #10_1"; 
gantt.refreshTask(10);

Neuzeichnen von Aufgaben

Um alle Aufgaben im Gantt-Diagramm zu aktualisieren, verwenden Sie die Methode 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();

Löschen von Aufgaben

Um eine Aufgabe zu entfernen, verwenden Sie die Methode gantt.deleteTask:

gantt.deleteTask(taskId);

Kaskadenlöschung von verschachtelten Aufgaben

Die Einstellung gantt.config.cascade_delete steuert, wie verschachtelte Aufgaben gelöscht werden. Standardmäßig ist sie auf true gesetzt, was bedeutet, dass beim Löschen einer Aufgabe eine separate Anfrage an den Server für jede verschachtelte Aufgabe und jeden Link, der mit der gelöschten Aufgabe verbunden ist, gesendet wird.

Wenn Sie das Senden mehrerer Anfragen vermeiden möchten, können Sie diese Einstellung deaktivieren:

gantt.config.cascade_delete = false;

Wenn sie deaktiviert ist, sendet Gantt nur eine Anfrage, um die übergeordnete Aufgabe zu löschen, und überlässt es dem Server, die Entfernung der verschachtelten Aufgaben und Links zu handhaben.

Diese Einstellung beeinflusst die Backend-Implementierung. Weitere Details finden Sie im Artikel Server-seitige Integration.

Entfernen aller Aufgaben aus dem Gantt-Diagramm

Um alle Aufgaben aus dem Gantt-Diagramm zu entfernen, verwenden Sie die Methode gantt.clearAll:

gantt.clearAll();
Zurück nach oben