From 770f30aa8628f761122fa9d09b387862c830317e Mon Sep 17 00:00:00 2001 From: William Desportes Date: Wed, 20 Nov 2019 12:28:12 +0100 Subject: [PATCH] Fix display field in Designer Introduced by: a23f2ba51a93af0c5eedf91646aa9e04b9bc3a12 Signed-off-by: William Desportes --- libraries/classes/Database/Designer.php | 16 +++++++++++----- .../classes/Database/Designer/DesignerTable.php | 10 ++++++++++ templates/database/designer/database_tables.twig | 6 +++--- themes/pmahomme/css/designer.css.php | 2 +- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/libraries/classes/Database/Designer.php b/libraries/classes/Database/Designer.php index fe656d09e5..75da91e342 100644 --- a/libraries/classes/Database/Designer.php +++ b/libraries/classes/Database/Designer.php @@ -141,10 +141,10 @@ class Designer /** * Returns HTML for including some variable to be accessed by JavaScript * - * @param array $script_tables array on foreign key support for each table - * @param array $script_contr initialization data array - * @param array $script_display_field display fields of each table - * @param int $display_page page number of the selected page + * @param array $script_tables array on foreign key support for each table + * @param array $script_contr initialization data array + * @param Designer\DesignerTable[] $script_display_field displayed tables in designer with their display fields + * @param int $display_page page number of the selected page * * @return string html */ @@ -154,13 +154,19 @@ class Designer array $script_display_field, $display_page ) { + $displayedFields = []; + foreach ($script_display_field as $designerTable) { + if ($designerTable->getDisplayField() !== null) { + $displayedFields[$designerTable->getTableName()] = $designerTable->getDisplayField(); + } + } $cfgRelation = $this->relation->getRelationsParam(); $designerConfig = new \stdClass(); $designerConfig->db = $_GET['db']; $designerConfig->scriptTables = $script_tables; $designerConfig->scriptContr = $script_contr; $designerConfig->server = $GLOBALS['server']; - $designerConfig->scriptDisplayField = $script_display_field; + $designerConfig->scriptDisplayField = $displayedFields; $designerConfig->displayPage = (int) $display_page; $designerConfig->tablesEnabled = $cfgRelation['pdfwork']; return Template::get('database/designer/js_fields')->render([ diff --git a/libraries/classes/Database/Designer/DesignerTable.php b/libraries/classes/Database/Designer/DesignerTable.php index ee6c35b868..548dab69a6 100644 --- a/libraries/classes/Database/Designer/DesignerTable.php +++ b/libraries/classes/Database/Designer/DesignerTable.php @@ -77,6 +77,16 @@ class DesignerTable return $this->tableEngine; } + /** + * Get the displayed field + * + * @return string + */ + public function getDisplayField() + { + return $this->displayField; + } + /** * Get the db and table separated with a dot * diff --git a/templates/database/designer/database_tables.twig b/templates/database/designer/database_tables.twig index e036488833..9d612ccd18 100644 --- a/templates/database/designer/database_tables.twig +++ b/templates/database/designer/database_tables.twig @@ -61,11 +61,11 @@ - {% set display_field = Relation_getDisplayField(get_db, t_n) %} + {% set display_field = designerTable.getDisplayField() %} {% for j in 0..tab_column[t_n]['COLUMN_ID']|length - 1 %} {% set tmp_column = t_n ~ '.' ~ tab_column[t_n]['COLUMN_NAME'][j] %} {% set click_field_param = [ - db_url, + designerTable.getTableName()|escape('url'), tab_column[t_n]['COLUMN_NAME'][j]|url_encode ] %} {% if not designerTable.supportsForeignkeys() %} @@ -76,7 +76,7 @@ {% set click_field_param = click_field_param|merge([tables_all_keys[tmp_column] is defined ? 1 : 0]) %} {% endif %} {% set click_field_param = click_field_param|merge([db]) %} - {% if has_query %} diff --git a/themes/pmahomme/css/designer.css.php b/themes/pmahomme/css/designer.css.php index d407ad147b..6c5ecb0880 100644 --- a/themes/pmahomme/css/designer.css.php +++ b/themes/pmahomme/css/designer.css.php @@ -107,7 +107,7 @@ canvas.designer * { } .tab_field_3 { - background-color: #FFE6E6; /*#DDEEFF*/ + background-color: #FFE6E6 !important; /*#DDEEFF*/ color: #000; cursor: default; }