2121use function __ ;
2222use function htmlspecialchars ;
2323use function in_array ;
24+ use function json_encode ;
2425use function sprintf ;
2526
2627class DesignerController extends AbstractController
@@ -39,6 +40,7 @@ public function __invoke(ServerRequest $request): void
3940 {
4041 $ GLOBALS ['message ' ] ??= null ;
4142 $ GLOBALS ['errorUrl ' ] ??= null ;
43+ $ GLOBALS ['text_dir ' ] ??= null ;
4244
4345 $ db = $ request ->getParsedBodyParam ('db ' );
4446 $ table = $ request ->getParsedBodyParam ('table ' );
@@ -62,17 +64,19 @@ public function __invoke(ServerRequest $request): void
6264 $ scriptDisplayField = $ this ->designerCommon ->getTablesInfo ($ db , $ table );
6365 $ tableColumn = $ this ->designerCommon ->getColumnsInfo ($ scriptDisplayField );
6466 $ tablesAllKeys = $ this ->designerCommon ->getAllKeys ($ scriptDisplayField );
65- $ tablesPkOrUniqueKeys = $ this ->designerCommon ->getPkOrUniqueKeys ($ scriptDisplayField );
66-
67- $ html = $ this ->databaseDesigner ->getDatabaseTables (
68- $ db ,
69- $ scriptDisplayField ,
70- [],
71- -1 ,
72- $ tableColumn ,
73- $ tablesAllKeys ,
74- $ tablesPkOrUniqueKeys ,
75- );
67+ $ columnsType = $ this ->databaseDesigner ->getColumnTypes ($ tableColumn , $ tablesAllKeys );
68+
69+ $ html = $ this ->template ->render ('database/designer/database_tables ' , [
70+ 'db ' => Current::$ database ,
71+ 'text_dir ' => $ GLOBALS ['text_dir ' ],
72+ 'has_query ' => isset ($ _REQUEST ['query ' ]),
73+ 'tab_pos ' => [],
74+ 'display_page ' => -1 ,
75+ 'tab_column ' => $ tableColumn ,
76+ 'tables_all_keys ' => $ tablesAllKeys ,
77+ 'tables ' => $ scriptDisplayField ,
78+ 'columns_type ' => $ columnsType ,
79+ ]);
7680 }
7781
7882 if ($ html !== '' ) {
@@ -210,10 +214,8 @@ public function __invoke(ServerRequest $request): void
210214
211215 $ tableColumn = $ this ->designerCommon ->getColumnsInfo ($ scriptDisplayField );
212216 $ scriptTables = $ this ->designerCommon ->getScriptTabs ($ scriptDisplayField );
213- $ tablesPkOrUniqueKeys = $ this ->designerCommon ->getPkOrUniqueKeys ($ scriptDisplayField );
214217 $ tablesAllKeys = $ this ->designerCommon ->getAllKeys ($ scriptDisplayField );
215218 $ classesSideMenu = $ this ->databaseDesigner ->returnClassNamesFromMenuButtons ();
216-
217219 $ scriptContr = $ this ->designerCommon ->getScriptContr ($ scriptDisplayField );
218220
219221 $ this ->response ->setMinimalFooter ();
@@ -222,26 +224,36 @@ public function __invoke(ServerRequest $request): void
222224
223225 $ this ->addScriptFiles (['designer/init.js ' ]);
224226
227+ $ columnsType = $ this ->databaseDesigner ->getColumnTypes ($ tableColumn , $ tablesAllKeys );
228+
229+ $ designerConfig = $ this ->databaseDesigner ->getDesignerConfig (
230+ Current::$ database ,
231+ $ scriptDisplayField ,
232+ $ scriptTables ,
233+ $ scriptContr ,
234+ $ displayPage ,
235+ );
236+
237+ $ mainHtml = $ this ->template ->render ('database/designer/main ' , [
238+ 'db ' => Current::$ database ,
239+ 'text_dir ' => $ GLOBALS ['text_dir ' ],
240+ 'hidden_input_fields ' => Url::getHiddenInputs ($ request ->getQueryParam ('db ' )),
241+ 'designer_config ' => json_encode ($ designerConfig ),
242+ 'display_page ' => $ displayPage ,
243+ 'has_query ' => $ visualBuilderMode ,
244+ 'visual_builder ' => $ visualBuilderMode ,
245+ 'selected_page ' => $ selectedPage ,
246+ 'params_array ' => $ classesSideMenu ,
247+ 'tab_pos ' => $ tablePositions ,
248+ 'tab_column ' => $ tableColumn ,
249+ 'tables_all_keys ' => $ tablesAllKeys ,
250+ 'designerTables ' => $ scriptDisplayField ,
251+ 'columns_type ' => $ columnsType ,
252+ ]);
253+
225254 // Embed some data into HTML, later it will be read
226255 // by designer/init.js and converted to JS variables.
227- $ this ->response ->addHTML (
228- $ this ->databaseDesigner ->getHtmlForMain (
229- Current::$ database ,
230- $ request ->getQueryParam ('db ' ),
231- $ scriptDisplayField ,
232- $ scriptTables ,
233- $ scriptContr ,
234- $ scriptDisplayField ,
235- $ displayPage ,
236- $ visualBuilderMode ,
237- $ selectedPage ,
238- $ classesSideMenu ,
239- $ tablePositions ,
240- $ tableColumn ,
241- $ tablesAllKeys ,
242- $ tablesPkOrUniqueKeys ,
243- ),
244- );
256+ $ this ->response ->addHTML ($ mainHtml );
245257
246258 $ this ->response ->addHTML ('<div id="PMA_disable_floating_menubar"></div> ' );
247259 }
0 commit comments