Ab Version 3.3 bietet die Bibliothek die fullscreen-Erweiterung an.
Mit dieser Erweiterung kann die Komponente mithilfe der FullScreen API in den Vollbildmodus wechseln, sofern dieser unterstützt wird (Liste unterstützter Browser).
Für ältere Browser wird das Gantt-Diagramm einfach so gestreckt, dass es die Fenstergröße zu 100% ausfüllt.
Um die Vollbildunterstützung zu aktivieren, schalten Sie das fullscreen-Plugin über die gantt.plugins-Methode ein:
gantt.plugins({
fullscreen: true
});
Die Komponente selbst enthält keine eingebaute UI-Steuerung zum Umschalten des Vollbildmodus. Sie müssen also entweder selbst eine hinzufügen oder das folgende Beispiel verwenden:
<input id="fullscreen_button" type="button" value="Toggle Fullscreen"/>
<script>
var button = document.getElementById("fullscreen_button");
button.addEventListener("click", function(){
if (!gantt.getState().fullscreen) {
// Gantt auf Vollbild erweitern
gantt.expand();
}
else {
// Gantt wieder auf normale Größe zurücksetzen
gantt.collapse();
}
}, false);
</script>
Durch Klicken auf den Button wird das Gantt-Diagramm zwischen seiner Originalgröße und dem Vollbildmodus umgeschaltet.
Es gibt zwei Hauptmethoden, um den Anzeigemodus des Gantt-Diagramms zu steuern:
gantt.expand();
gantt.collapse();
Die folgenden Events stehen zur Verfügung, um Änderungen am Vollbildmodus zu behandeln:
// bevor Gantt auf Vollbild erweitert wird
gantt.attachEvent("onBeforeExpand",function(){
// eigene Logik hier
return true;
});
// bevor der Vollbildmodus verlassen wird
gantt.attachEvent("onBeforeCollapse",function(){
// eigene Logik hier
return true;
});
// nachdem Gantt auf Vollbild erweitert wurde
gantt.attachEvent("onExpand", function (){
// eigene Logik hier
});
// nachdem Gantt den Vollbildmodus verlassen hat
gantt.attachEvent("onCollapse", function (){
// eigene Logik hier
});
Das fullscreen-Objekt stellt vier Methoden zur Verfügung, um das Vollbildverhalten des Gantt-Diagramms (einschließlich anderer Elemente) zu steuern:
gantt.ext.fullscreen.expand();
gantt.ext.fullscreen.collapse();
gantt.ext.fullscreen.toggle();
gantt.ext.fullscreen.getFullscreenElement();
Standardmäßig gibt getFullscreenElement() den HTML-Container des Gantt-Diagramms zurück. Sie können diese Methode überschreiben, um im Vollbildmodus weitere Elemente einzubeziehen, wie hier beschrieben.
Die Gantt-API ermöglicht es, den Vollbildmodus mithilfe der getFullscreenElement()-Methode des fullscreen-Objekts auf andere Elemente auszuweiten:
gantt.ext.fullscreen.getFullscreenElement();
Standardmäßig gibt diese Methode den HTML-Container des Gantt-Diagramms zurück, sodass nur das Gantt-Diagramm in den Vollbildmodus wechselt.
Wenn Sie das Gantt-Diagramm zusammen mit zusätzlichen Elementen wie einem Header oder einer Toolbar im Vollbild anzeigen möchten, erstellen Sie einen eigenen Container auf Ihrer Seite, zum Beispiel:
<div id="myCover">
<div class="gantt_control">
<button id="toggle_fullscreen"
onclick="gantt.ext.fullscreen.toggle();">toggle fullscreen</button>
</div>
<div id="gantt_here"></div>
</div>
Überschreiben Sie dann die getFullscreenElement()-Methode, sodass Ihr eigener Container in den Vollbildmodus erweitert wird:
gantt.ext.fullscreen.getFullscreenElement = function() {
return document.getElementById("myCover");
}
gantt.init("gantt_here");
Related sample: Full Screen with additional elements
Die Vollbild-Erweiterung funktioniert nur, wenn Gantt in den Vollbildmodus wechseln darf.
Wenn sich das Gantt-Diagramm in einem iframe befindet, in dem:
kann Gantt nicht in den Vollbildmodus wechseln (testen Sie es in unserem Snippet-Tool: Example 1, Example 2).
Die Fullscreen-Erweiterung funktioniert nicht in Salesforce-Anwendungen, die den Locker Service verwenden, da Locker das Umschalten von Elementen in den Vollbildmodus blockiert.
Konkret funktioniert die Erweiterung nicht mit Lightning Aura oder Lightning Web Components, könnte aber mit dem Visualforce-Framework funktionieren.
Sie können testen, ob der Vollbildmodus in Ihrer App verfügbar ist, indem Sie dieses Snippet zu Ihrer Konfiguration hinzufügen:
console.log("document.body.requestFullscreen", document.body.requestFullscreen)
Wenn die Ausgabe undefined
anzeigt, ist der Vollbildmodus deaktiviert und Gantt kann nicht in den Vollbildmodus wechseln.
Wenn die Vollbildunterstützung in einer Umgebung aktiviert ist, die diese nicht unterstützt, können Fehler auftreten, aber Gantt funktioniert weiterhin wie gewohnt.