From 05fff3b8aab5d247b6865cd46361663e3a4b2c04 Mon Sep 17 00:00:00 2001 From: Stephen Abello Date: Wed, 3 Mar 2021 10:21:21 +0100 Subject: [PATCH] Fix external key hyperlinks in datatables when outside of /pages directory --- .../DataTable/DataTableUIBlockFactory.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php b/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php index 4a4c8b6cd..c4bf0df75 100644 --- a/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php +++ b/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php @@ -164,6 +164,8 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory { $oDataTable = new DataTable('datatable_'.$sListId); + $oAppRoot = utils::GetAbsoluteUrlAppRoot(); + // Initialize and check the parameters $bViewLink = isset($aExtraParams['view_link']) ? $aExtraParams['view_link'] : true; $sLinkageAttribute = isset($aExtraParams['link_attr']) ? $aExtraParams['link_attr'] : ''; @@ -326,9 +328,9 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory if ($sAttCode == '_key_') { if ($bViewLink) { if (MetaModel::IsValidAttCode($sClassName, 'obsolescence_flag')) { - $sDisplayFunction = "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;"; + $sDisplayFunction = "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;"; } else { - $sDisplayFunction = "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; return displayField;"; + $sDisplayFunction = "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; return displayField;"; } $aColumnDefinition[] = [ 'description' => $aData['label'], @@ -430,7 +432,8 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory { $oDataTable = new DataTable('datatable_'.$sListId); $aList = array(); - + $oAppRoot = utils::GetAbsoluteUrlAppRoot(); + // Initialize and check the parameters $bViewLink = isset($aExtraParams['view_link']) ? $aExtraParams['view_link'] : true; // Check if there is a list of aliases to limit the display to... @@ -564,7 +567,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory 'attribute_code' => $sAttCode, 'attribute_type' => '_key_', 'attribute_label' => $aData['alias'], - "render" => "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;", + "render" => "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;", ]; } } else { @@ -641,6 +644,8 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory */ public static function GetOptionsForRendering(array $aColumns, string $sSelectMode, string $sFilter, int $iLength, array $aClassAliases, array $aExtraParams) { + $oAppRoot = utils::GetAbsoluteUrlAppRoot(); + $aOptions = []; $sTableId = $aExtraParams["table_id"]; $sListId = $aExtraParams["list_id"]; @@ -691,7 +696,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory ]; $aColumnDefinition["data"] = $sClassAlias."/".$sAttCode; $aColumnDefinition["render"] = [ - "display" => "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;", + "display" => "let displayField = ''+row['".$sClassAlias."/friendlyname']+''; if (row['".$sClassAlias."/obsolescence_flag'].indexOf('no') == -1){displayField = ''+row['".$sClassAlias."/friendlyname']+'';} return displayField;", "_" => $sClassAlias."/".$sAttCode, ]; } else {