From 6f86fc83bd7826d3d9628cfb1d23e6c1d17c0f74 Mon Sep 17 00:00:00 2001 From: Dan Garner Date: Mon, 10 Feb 2025 15:55:24 +0000 Subject: [PATCH 1/2] Template: exclude canva regions when no widgets are included in the template save xibosignage/xibo#3574 --- lib/Controller/Template.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/Controller/Template.php b/lib/Controller/Template.php index ff1ffc0808..673ebb23b3 100644 --- a/lib/Controller/Template.php +++ b/lib/Controller/Template.php @@ -1,6 +1,6 @@ checkRootFolderAllowSave(); } + // When saving a layout as a template, we should not include the empty canva region as that requires + // a widget to be inside it. + // https://github.com/xibosignage/xibo/issues/3574 + if (!$includeWidgets) { + $this->getLog()->debug('addFromLayout: widgets have not been included, checking for empty regions'); + + $regionsWithWidgets = []; + foreach ($layout->regions as $region) { + if ($region->type === 'canvas') { + $this->getLog()->debug('addFromLayout: Canvas region excluded from export'); + } else { + $regionsWithWidgets[] = $region; + } + } + $layout->regions = $regionsWithWidgets; + } + $layout->setOwner($this->getUser()->userId, true); $layout->save(); From b00395309e8b25d1c4391a8f85ad65d60f0aab2b Mon Sep 17 00:00:00 2001 From: Dan Garner Date: Mon, 10 Feb 2025 15:57:56 +0000 Subject: [PATCH 2/2] phpcs --- lib/Controller/Template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Controller/Template.php b/lib/Controller/Template.php index 673ebb23b3..6ac528be86 100644 --- a/lib/Controller/Template.php +++ b/lib/Controller/Template.php @@ -656,7 +656,7 @@ function add(Request $request, Response $response) * ) * ) */ - function addFromLayout(Request $request, Response $response, $id) + public function addFromLayout(Request $request, Response $response, $id): Response { // Get the layout $layout = $this->layoutFactory->getById($id);