From 5f222ec29da1c100e6f5f7d85eafdf7d1fbe46c1 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 18 Dec 2023 23:50:44 +0100 Subject: [PATCH] Extract getDesignerConfig method Signed-off-by: Kamil Tekiela --- src/Database/Designer.php | 54 ++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/src/Database/Designer.php b/src/Database/Designer.php index 5c94bf5931..a1362e4bfc 100644 --- a/src/Database/Designer.php +++ b/src/Database/Designer.php @@ -244,26 +244,9 @@ class Designer ): string { $GLOBALS['text_dir'] ??= null; - $relationParameters = $this->relation->getRelationParameters(); $columnsType = $this->getColumnTypes($tableColumnsInfo, $tablesAllKeys); - $displayedFields = []; - foreach ($designerTables as $designerTable) { - if ($designerTable->getDisplayField() === null) { - continue; - } - - $displayedFields[$designerTable->getTableName()] = $designerTable->getDisplayField(); - } - - $designerConfig = new stdClass(); - $designerConfig->db = $db; - $designerConfig->scriptTables = $scriptTables; - $designerConfig->scriptContr = $scriptContr; - $designerConfig->server = $GLOBALS['server']; - $designerConfig->scriptDisplayField = $displayedFields; - $designerConfig->displayPage = $displayPage; - $designerConfig->tablesEnabled = $relationParameters->pdfFeature !== null; + $designerConfig = $this->getDesignerConfig($db, $designerTables, $scriptTables, $scriptContr, $displayPage); return $this->template->render('database/designer/main', [ 'db' => $db, @@ -324,4 +307,39 @@ class Designer return $columnsType; } + + /** + * @param DesignerTable[] $designerTables The designer tables + * @param mixed[] $scriptTables array on foreign key support for each table + * @param mixed[] $scriptContr initialization data array + */ + private function getDesignerConfig( + string $db, + array $designerTables, + array $scriptTables, + array $scriptContr, + int $displayPage, + ): stdClass { + $relationParameters = $this->relation->getRelationParameters(); + + $displayedFields = []; + foreach ($designerTables as $designerTable) { + if ($designerTable->getDisplayField() === null) { + continue; + } + + $displayedFields[$designerTable->getTableName()] = $designerTable->getDisplayField(); + } + + $designerConfig = new stdClass(); + $designerConfig->db = $db; + $designerConfig->scriptTables = $scriptTables; + $designerConfig->scriptContr = $scriptContr; + $designerConfig->server = $GLOBALS['server']; + $designerConfig->scriptDisplayField = $displayedFields; + $designerConfig->displayPage = $displayPage; + $designerConfig->tablesEnabled = $relationParameters->pdfFeature !== null; + + return $designerConfig; + } }