From b9aa4a0d0d263a53ebfb1f4d436cae9a2a45005d Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 14 Jan 2022 10:45:53 +0800 Subject: [PATCH] * FInish task #47346. --- module/execution/js/kanban.js | 85 +++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index 37f4e4f304..94b7b1d6af 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -1,3 +1,88 @@ +/** + * Display the kanban in full screen. + * + * @access public + * @return void + */ +function fullScreen() +{ + var element = document.getElementById('kanbanContainer'); + var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen; + + if(requestMethod) + { + var afterEnterFullscreen = function() + { + $('#kanbanContainer').addClass('fullscreen') + .on('scroll', tryUpdateKanbanAffix); + $('.actions').hide(); + $('.action').hide(); + $('.kanban-group-header').hide(); + $(".title").attr("disabled", true).css("pointer-events", "none"); + $.cookie('isFullScreen', 1); + }; + + var whenFailEnterFullscreen = function(error) + { + exitFullScreen(); + }; + + try + { + var result = requestMethod.call(element); + if(result && (typeof result.then === 'function' || result instanceof window.Promise)) + { + result.then(afterEnterFullscreen).catch(whenFailEnterFullscreen); + } + else + { + afterEnterFullscreen(); + } + } + catch (error) + { + whenFailEnterFullscreen(error); + } + } +} + +/** + * Exit full screen. + * + * @access public + * @return void + */ +function exitFullScreen() +{ + $('#kanbanContainer').removeClass('fullscreen') + .off('scroll', tryUpdateKanbanAffix); + $('.actions').show(); + $('.action').show(); + $('.kanban-group-header').show(); + $(".title").attr("disabled", false).css("pointer-events", "auto"); + $.cookie('isFullScreen', 0); +} + +document.addEventListener('fullscreenchange', function (e) +{ + if(!document.fullscreenElement) exitFullScreen(); +}); + +document.addEventListener('webkitfullscreenchange', function (e) +{ + if(!document.webkitFullscreenElement) exitFullScreen(); +}); + +document.addEventListener('mozfullscreenchange', function (e) +{ + if(!document.mozFullScreenElement) exitFullScreen(); +}); + +document.addEventListener('msfullscreenChange', function (e) +{ + if(!document.msfullscreenElement) exitFullScreen(); +}); + /** Change kanban scale size */ function changeKanbanScaleSize(newScaleSize) {