Начиная с версии 3.3, библиотека включает расширение fullscreen. Эта функция позволяет развернуть компонент в полноэкранный режим с использованием FullScreen API, когда это поддерживается (проверьте список поддерживаемых браузеров).
Для старых браузеров грид настраивается так, чтобы занимать 100% размера окна.
Чтобы включить поддержку полноэкранного режима, активируйте плагин fullscreen с помощью метода gantt.plugins:
gantt.plugins({
fullscreen: true
});
Компонент не поставляется с встроенным элементом управления для переключения полноэкранного режима. Вам нужно добавить его на вашу страницу или использовать пример, приведенный ниже:
<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.expand();
}
else {
// вернуть Гантт к нормальному размеру
gantt.collapse();
}
}, false);
</script>
Нажатие кнопки будет переключать Гантт между его оригинальным размером и полноэкранным режимом.
Вы можете использовать два метода для управления режимом отображения Гантта:
gantt.expand();
gantt.collapse();
Доступны следующие события для обработки действий, связанных с полноэкранным режимом:
// Перед развертыванием Гантта на весь экран
gantt.attachEvent("onBeforeExpand",function(){
// здесь пользовательская логика
return true;
});
// Перед выходом Гантта из полноэкранного режима
gantt.attachEvent("onBeforeCollapse",function(){
// здесь пользовательская логика
return true;
});
// Когда Гантт развернут на весь экран
gantt.attachEvent("onExpand", function (){
// здесь пользовательская логика
});
// Когда Гантт выходит из полноэкранного режима
gantt.attachEvent("onCollapse", function (){
// здесь пользовательская логика
});
Объект fullscreen предлагает четыре метода для управления полноэкранным режимом Гантта и его дополнительными элементами:
gantt.ext.fullscreen.expand();
gantt.ext.fullscreen.collapse();
gantt.ext.fullscreen.toggle();
gantt.ext.fullscreen.getFullscreenElement();
По умолчанию, getFullscreenElement() возвращает HTML-контейнер диаграммы Гантта. Вы можете изменить этот метод, если хотите включить дополнительные элементы в полноэкранный режим (узнайте как здесь).
Если вы хотите включить дополнительные элементы, такие как заголовок или панель инструментов в полноэкранном режиме, переопределите метод getFullscreenElement(), чтобы вернуть пользовательский контейнер:
<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>
Затем обновите getFullscreenElement(), чтобы указать ваш пользовательский контейнер:
gantt.ext.fullscreen.getFullscreenElement = function() {
return document.getElementById("myCover");
}
gantt.init("gantt_here");
Related sample: Full Screen with additional elements
Полноэкранный режим может не работать, если Гантт ограничен в развертывании. Это может произойти, если:
Если эти условия не выполнены, Гантт не развернется на весь экран. Вы можете испытать это в нашем инструменте фрагментов (Пример 1, Пример 2).
Расширение Fullscreen несовместимо с приложениями Salesforce, использующими Locker Service. Locker Service предотвращает развертывание элементов на весь экран.
Это означает, что оно не будет работать с фреймворком Lightning Aura или Lightning Web Components, хотя может функционировать с фреймворком Visualforce.
Чтобы проверить доступность полноэкранного режима в вашем приложении, добавьте следующий фрагмент в ваш конфигурационный код:
console.log("document.body.requestFullscreen", document.body.requestFullscreen)
Если вывод показывает undefined
, функция отключена, и Гантт не может развернуться на весь экран.
Если поддержка полноэкранного режима включена в среде, которая его не поддерживает, могут возникнуть ошибки, но Гантт будет продолжать функционировать.