Available only in PRO Edition
Diese Funktionalität ist nur in der PRO-Edition verfügbar.
Wenn Sie mit einer großen Aufgabe zu tun haben, die nicht kontinuierlich ist und möglicherweise unterbrochen werden muss, können Sie diese in kleinere Teile aufteilen. Sie können sie in so viele Segmente unterteilen, wie nötig.
Auf Datenebene sind diese Aufgaben als Zusammenfassungsaufgabe (oder Projekt) mit Unteraufgaben strukturiert, wobei jede Unteraufgabe einen bestimmten Teil der Hauptaufgabe darstellt.
Sie haben auch die Möglichkeit, sie als einzelne Zeile anzuzeigen, die als eine Aufgabe erscheint:
Um ein Projekt als geteilte Aufgabe anzuzeigen, passen Sie seine render-Eigenschaft auf split an:
{id: 1, text: "Aufgabe #2", start_date: "03-04-2018 00:00", type: "project",
render:"split", parent: 0}, {id: 2, text: "Aufgabe #2.1", start_date: "03-04-2018 00:00", duration: 1,
parent: 1},
{id: 3, text: "Aufgabe #2.2", start_date: "05-04-2018 00:00", duration: 2,
parent: 1},
{id: 4, text: "Aufgabe #2.3", start_date: "08-04-2018 00:00", duration: 1,
parent: 1}
In diesem Beispiel wird "Aufgabe #2" in "Aufgabe #2.1," "Aufgabe #2.2," und "Aufgabe #2.3" aufgeteilt, die vollständig interaktiv bleiben.
Wenn Sie eine geteilte Aufgabe in ihrer üblichen Baumstruktur anzeigen möchten (als Projekt mit Unteraufgaben), ändern Sie einfach die task.render-Eigenschaft und aktualisieren Sie das Gantt-Diagramm:
// Aufgabe im 'split'-Modus neu zeichnen
task.render = "split";
gantt.render();
// Aufgabe im regulären (Baum-)Modus neu zeichnen
task.render = "";
gantt.render();
Beispielsweise können Sie eine Steuerung hinzufügen, die mit der task.render-Eigenschaft im Lightbox verknüpft ist, um zwischen geteilten und hierarchischen Ansichten zu wechseln. Ein Beispiel finden Sie im folgenden Abschnitt.
Sie können das Lightbox so konfigurieren, dass das Umschalten des geteilten Modus für eine Aufgabe ermöglicht wird. Dies beinhaltet das Hinzufügen eines neuen Abschnitts mit einem Kontrollkästchen zum Lightbox, indem die Konfigurationseinstellungen für Aufgaben des Typs Projekt aktualisiert werden - gantt.config.lightbox.project_sections und ein Label für den neuen Abschnitt eingefügt wird:
gantt.locale.labels.section_split = "Anzeige";
gantt.config.lightbox.project_sections = [
{name: "description", height: 70, map_to: "text", type: "textarea", focus: true},
{name: "split", type:"checkbox", map_to: "render", options:[
{key:"split", label:"Aufgabe aufteilen"}
]},
{name: "time", type: "duration", readonly: true, map_to: "auto"}
];
Dies führt zu folgendem Interface:
Wenn das Kontrollkästchen deaktiviert ist, wird die geteilte Aufgabe als Projekt mit Unteraufgaben angezeigt.
Um festzustellen, ob eine Aufgabe geteilt ist, können Sie die Methode isSplitTask verwenden. Diese Methode nimmt das Aufgabenobjekt als Eingabe und gibt true zurück, wenn die Aufgabe geteilt ist.
var task = gantt.getTask(1);
if(gantt.isSplitTask(task)){
...
}
Wenn Sie eine geteilte Aufgabe direkt aus dem Raster erweitern oder einklappen möchten, gibt es eine Konfigurationsoption dafür. Sie heißt open_split_tasks und akzeptiert einen booleschen Wert, um die Erweiterbarkeit für geteilte Aufgaben zu aktivieren oder zu deaktivieren.
gantt.config.open_split_tasks = true;
Um Unteraufgaben einer geteilten Aufgabe im Gantt-Diagramm herauszufiltern, verwenden Sie das Ereignis onBeforeSplitTaskDisplay und spezifizieren Sie:
gantt.attachEvent("onBeforeSplitTaskDisplay", function (id, task, parent) {
if (task.duration < 3) {
return false;
}
return true;
});
Geteilte Aufgaben sind im Wesentlichen Unteraufgaben eines übergeordneten Elements, wobei die hellgrüne Leiste des übergeordneten Elements im Hintergrund angezeigt und unterschiedlich gestylt wird.
Wenn geteilte Aufgaben in eine einzelne Zeile zusammengefasst werden, bleibt die hellgrüne Leiste des übergeordneten Elements an derselben Position sichtbar, jedoch mit veränderter Opazität und z-Index-Werten.
Related sample: Expand and collapse split tasks
Sie können die Farbe der Leiste des übergeordneten Elements wie andere Zeitachsenleisten timeline anpassen oder sie vollständig mit CSS ausblenden:
.gantt_task_line.gantt_split_parent {
display: none;
}
Wenn es nur eine geteilte Aufgabe gibt, wird das Zusammenfassungselement (type="project") unsichtbar, da es vollständig von der geteilten Aufgabe überdeckt wird. Wenn keine geteilten Unteraufgaben existieren, hat das Zusammenfassungselement Standarddaten und -dauer.
Ab Version 8.0 beinhalten geteilte Aufgaben die task.$rendered_at-Eigenschaft in Vorlagenfunktionen. Diese Eigenschaft enthält die ID der Zeile, in der die geteilte Aufgabe angezeigt wird. Mithilfe der Vorlage task_class können Sie bestimmte geteilte Aufgaben basierend auf ihrer angezeigten Zeile stylen.
gantt.templates.task_class = function(start, end, task) {
if(task.$rendered_at) {
if(gantt.calculateTaskLevel(gantt.getTask(task.$rendered_at)) === 1) {
return "phase-level-split-task";
}
}
return "";
};
Zurück nach oben