Mehrfachauswahl von Aufgaben

Ab Version 3.2 enthält die Bibliothek die multiselect-Erweiterung, die es ermöglicht, mehrere Aufgaben gleichzeitig auszuwählen.

Aktivierung der Mehrfachauswahl von Aufgaben

Um die Mehrfachauswahl für Aufgaben zu aktivieren, müssen Sie sie lediglich mit der gantt.plugins Methode einschalten:

<!DOCTYPE html>
<html>
<head>
   <script src="codebase/dhtmlxgantt.js"></script>   
   <link href="codebase/dhtmlxgantt.css" rel="stylesheet">   
</head>
<body>
    gantt.plugins({         multiselect: true     });     //Ihr Code wird hier sein
</body>
</html>

Related sample:  Multiselection and Indent/Outdent tasks

Sobald sie aktiviert ist, ist die Mehrfachauswahl von Aufgaben automatisch aktiviert.


Falls Sie sie jemals deaktivieren müssen, können Sie dies mit der Option gantt.config.multiselect tun:

Deaktivierung der Mehrfachauswahl von Aufgaben

gantt.config.multiselect = false;

Aktualisierung mehrerer Aufgaben gleichzeitig

Um Änderungen an mehreren Aufgaben oder Verknüpfungen gleichzeitig vorzunehmen, können Sie die gantt.batchUpdate Methode verwenden:

gantt.batchUpdate(function () {
    var tasks = gantt.getTaskByTime();
    for(var i = 0; i < tasks.length; i++){
        var task = tasks[i];
        task.start_date = gantt.date.add(task.start_date, 1, "day");
        task.end_date = gantt.calculateEndDate(task.start_date, task.duration);
        gantt.updateTask(task.id);
    }
});

Diese Methode ermöglicht es Ihnen, mehrere Aufgaben oder Verknüpfungen gleichzeitig zu aktualisieren, während das Diagramm nur einmal neu gerendert wird, was effizienter ist als jede Aufgabe einzeln zu aktualisieren.

Related sample:  Multiselection and Indent/Outdent tasks

Iterieren durch ausgewählte Aufgaben

Um alle ausgewählten Aufgaben im Gantt-Diagramm zu durchlaufen, können Sie die gantt.eachSelectedTask Methode verwenden:

gantt.batchUpdate(function () {
    gantt.eachSelectedTask(function(task_id){
        if(gantt.isTaskExists(task_id))
            gantt.deleteTask(task_id);
    });
});

Related sample:  Multiselection and Indent/Outdent tasks

Einrücken und Ausrücken für mehrere Aufgaben

Mit der Mehrfachauswahl können Sie Aktionen wie das Einrücken oder Ausrücken durchführen, um Aufgaben in Teilaufgaben zu verwandeln oder sie zurückzusetzen.

Related sample:  Multiselection and Indent/Outdent tasks

Überprüfung des Auswahlstatus einer Aufgabe

Wenn Sie sehen möchten, ob eine bestimmte Aufgabe ausgewählt ist, können Sie die gantt.isSelectedTask Methode verwenden:

gantt.templates.task_class = 
gantt.templates.grid_row_class = 
gantt.templates.task_row_class = function (start, end, task) {
    if (gantt.isSelectedTask(task.id))
        return "gantt_selected";
};

Related sample:  Multiselection and Indent/Outdent tasks

Um den Auswahlstatus einer Aufgabe umzuschalten, können Sie die gantt.toggleTaskSelection Methode verwenden:

gantt.toggleTaskSelection("t_1"); //"t_1" ist die ID der Aufgabe
gantt.render();

Abrufen ausgewählter Aufgaben

Um alle aktuell ausgewählten Aufgaben abzurufen, können Sie die gantt.getSelectedTasks Methode verwenden:

gantt.getSelectedTasks();

Wenn Sie nur die zuletzt ausgewählte Aufgabe benötigen, steht die Methode gantt.getLastSelectedTask zur Verfügung:

gantt.getLastSelectedTask();

Beschränkung der Mehrfachauswahl auf eine Ebene

Wenn Sie die Auswahl auf Aufgaben innerhalb derselben Ebene beschränken möchten, können Sie die Option gantt.config.multiselect_one_level aktivieren:

gantt.config.multiselect_one_level = true; 
gantt.init('gantt_here');

Mehrfachauswahl und Drag-and-Drop

Wenn die multiselect.js-Erweiterung aktiv ist, können Sie mehrere Aufgaben auswählen, indem Sie Strg oder Umschalt gedrückt halten und sie dann horizontal als Gruppe ziehen.

Wenn Sie dies lieber deaktivieren möchten, können Sie die Option gantt.config.drag_multiple auf false setzen:

gantt.config.drag_multiple = true;

Related sample:  Multiselection and Indent/Outdent tasks

Öffnen des Editors mit einem Klick

Im Einzel-Auswahlmodus öffnet ein Klick auf eine Aufgabe den Inline-Editor.

Im Mehrfachauswahl-Modus wird durch Klicken auf eine nicht ausgewählte Aufgabe diese zuerst ausgewählt. Der Inline-Editor wird erst nach einem zweiten Klick geöffnet. Wenn Sie möchten, dass der Editor beim ersten Klick geöffnet wird, aktivieren Sie die Option gantt.config.inline_editors_multiselect_open.

gantt.plugins({
  multiselect: true
});
 
...
 
gantt.config.inline_editors_multiselect_open = true;

API-Ereignisse

Wenn die Mehrfachauswahl aktiv ist, lösen das Auswählen oder Deselektieren von Aufgaben sowohl die allgemeinen gantt.onTaskSelected / gantt.onTaskUnselected Ereignisse als auch ereignisspezifische für die multiselect Erweiterung aus.

Hier ist der Ereignisablauf für die Mehrfachauswahl:

  • gantt.onBeforeMultiSelect - wird ausgelöst, bevor eine Aufgabe oder ein Aufgabenbereich ausgewählt wird und kann blockiert werden
  • gantt.onBeforeTaskMultiSelect - wird ausgelöst, bevor sich der Auswahlstatus einer Aufgabe ändert (Auswahl oder Deselektion) und kann blockiert werden
  • gantt.onTaskMultiSelect - wird ausgelöst, nachdem sich der Auswahlstatus einer Aufgabe geändert hat (ausgewählt oder deselectiert)
  • gantt.onTaskUnselected - wird für jede Aufgabe im Mehrfachauswahlbereich aufgerufen
  • gantt.onTaskSelected - wird für jede Aufgabe im Mehrfachauswahlbereich aufgerufen
  • gantt.onMultiSelect - wird ausgelöst, nachdem die Auswahl einer Aufgabe oder eines Aufgabenbereichs abgeschlossen ist
Zurück nach oben