Multi-Task-Auswahl

Ab Version 3.2 enthält die Bibliothek die multiselect-Erweiterung, mit der Sie mehrere Aufgaben gleichzeitig auswählen können.

Aktivierung der Multi-Task-Auswahl

Um die Multi-Task-Auswahl für Aufgaben zu aktivieren, nutzen Sie die Methode gantt.plugins:

<!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 kommt hier hin
</body>
</html>

Related sample:  Multiselection and Indent/Outdent tasks

Sobald aktiviert, ist die Multi-Task-Auswahl automatisch aktiv.


Um die Erweiterung zu deaktivieren, verwenden Sie die Option multiselect:

Disabling multi-task selection

gantt.config.multiselect = false;

Einmaliges Update für mehrere Aufgaben

Um mehrere Aufgaben oder Verknüpfungen gleichzeitig zu bearbeiten, nutzen Sie die Methode batchUpdate:

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);
    }
});

Mit dieser Methode können Sie mehrere Aufgaben oder Verknüpfungen mit nur einer einzigen Neudarstellung aktualisieren, anstatt durch mehrere Updates mehrere Neudarstellungen auszulösen.

Related sample:  Multiselection and Indent/Outdent tasks

Iterator

Um alle ausgewählten Aufgaben im Gantt-Diagramm zu durchlaufen, verwenden Sie die Methode eachSelectedTask:

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

Related sample:  Multiselection and Indent/Outdent tasks

Gleichzeitiges Einrücken/Ausrücken

Mit der Multi-Task-Auswahl können Sie Operationen auf mehrere Aufgaben gleichzeitig anwenden. Zum Beispiel können Sie Aufgaben einrücken oder ausrücken, sie also zu Unteraufgaben machen oder Unteraufgaben wieder zu Hauptaufgaben hochstufen.

Related sample:  Multiselection and Indent/Outdent tasks

Prüfen, ob eine Aufgabe ausgewählt ist

Um herauszufinden, ob eine Aufgabe aktuell ausgewählt ist, verwenden Sie die Methode isSelectedTask:

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 Auswahlsstatus einer Aufgabe umzuschalten, verwenden Sie die Methode toggleTaskSelection:

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

Alle ausgewählten Aufgaben abrufen

Um alle aktuell ausgewählten Aufgaben abzurufen, verwenden Sie die Methode getSelectedTasks:

gantt.getSelectedTasks();

Um die zuletzt ausgewählte Aufgabe zu erhalten, verwenden Sie die Methode getLastSelectedTask:

gantt.getLastSelectedTask();

Multi-Task-Auswahl auf eine Ebene beschränken

Wenn Sie die Auswahl auf Aufgaben derselben Ebene beschränken möchten, nutzen Sie die Option multiselect_one_level:

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

Multi-Task-Auswahl und Drag-n-Drop

Mit aktivierter multiselect.js-Erweiterung können Sie durch Halten von Strg oder Shift mehrere Aufgaben auswählen und diese dann gemeinsam horizontal verschieben.

Um diese Funktion zu deaktivieren, setzen Sie die Option drag_multiple auf false:

gantt.config.drag_multiple = true;

Related sample:  Multiselection and Indent/Outdent tasks

Editor mit einem Klick öffnen

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

Im Multi-Auswahlmodus wird durch einen Klick auf eine nicht ausgewählte Aufgabe diese zunächst ausgewählt, der Inline-Editor öffnet sich jedoch erst beim zweiten Klick.
Um den Editor auch im Multi-Auswahlmodus bereits beim ersten Klick zu öffnen, aktivieren Sie die Konfiguration inline_editors_multiselect_open.

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

API-Events

Wenn die Multi-Task-Auswahl aktiv ist, lösen das Auswählen einer oder mehrerer Aufgaben sowohl die allgemeinen onTaskSelected / onTaskUnselected Events als auch speziell für die Multiselect-Erweiterung vorgesehene Events aus.

Die Multi-Task-Auswahl löst folgende Event-Reihenfolge aus:

  • onBeforeMultiSelect – wird ausgelöst, bevor eine Aufgabe oder ein Aufgabenbereich ausgewählt wird; dieses Event kann blockiert werden
  • onBeforeTaskMultiSelect – wird ausgelöst, bevor sich der Auswahlstatus einer Aufgabe ändert (ausgewählt oder abgewählt); dieses Event kann blockiert werden
  • onTaskMultiSelect – wird ausgelöst, nachdem sich der Auswahlstatus einer Aufgabe geändert hat
  • onTaskUnselected – wird für jede Aufgabe aufgerufen, die im Bereich abgewählt wurde
  • onTaskSelected – wird für jede Aufgabe aufgerufen, die im Bereich ausgewählt wurde
  • onMultiSelect – wird ausgelöst, nachdem die Auswahl einer Aufgabe oder eines Aufgabenbereichs abgeschlossen ist
Zurück nach oben