diff --git a/js/dataTables.settings.js b/js/dataTables.settings.js index 48a20a30f..a1a25d925 100644 --- a/js/dataTables.settings.js +++ b/js/dataTables.settings.js @@ -194,7 +194,9 @@ $(function() } } this._saveDlgState(); - + + $('#datatable_dlg_'+this.options.sListId).find('[name=action]').val("save"); + $('#datatable_dlg_'+this.options.sListId).dialog('close'); }, onDlgCancel: function() { diff --git a/pages/ajax.render.php b/pages/ajax.render.php index 072a209f9..01e3850dd 100644 --- a/pages/ajax.render.php +++ b/pages/ajax.render.php @@ -255,7 +255,8 @@ try $iLength = utils::ReadParam('end', 10); $aColumns = utils::ReadParam('columns', array(), false, 'raw_data'); $sSelectMode = utils::ReadParam('select_mode', ''); - $aResult = DataTableFactory::GetOptionsForRendering( $aColumns, $sSelectMode, $sFilter, $iLength, $aExtraParams); + $aClassAliases = utils::ReadParam('class_aliases', array()); + $aResult = DataTableFactory::GetOptionsForRendering( $aColumns, $sSelectMode, $sFilter, $iLength, $aClassAliases, $aExtraParams); $oPage->add(json_encode($aResult)); break; diff --git a/sources/application/UI/Component/DataTable/DataTableFactory.php b/sources/application/UI/Component/DataTable/DataTableFactory.php index f1c76e0f3..8009ca187 100644 --- a/sources/application/UI/Component/DataTable/DataTableFactory.php +++ b/sources/application/UI/Component/DataTable/DataTableFactory.php @@ -328,6 +328,7 @@ class DataTableFactory $aOptions['bUseCustomSettings'] = $bUseCustomSettings; $aOptions['bViewLink'] = $bViewLink; $aOptions['sListId'] = $sListId; + $aOptions['oClassAliases'] = json_encode($aClassAliases); $oDataTable->SetOptions($aOptions); $oDataTable->SetAjaxUrl("ajax.render.php"); @@ -540,6 +541,7 @@ class DataTableFactory $aOptions['sTableId'] = $sTableId; $aOptions['bUseCustomSettings'] = $bUseCustomSettings; $aOptions['bViewLink'] = $bViewLink; + $aOptions['oClassAliases'] = json_encode($aClassAliases); $oDataTable->SetOptions($aOptions); $oDataTable->SetAjaxUrl("ajax.render.php"); @@ -567,13 +569,12 @@ class DataTableFactory * @return array * @throws \Exception */ - public static function GetOptionsForRendering(array $aColumns, string $sSelectMode, string $sFilter, int $iLength, array $aExtraParams) + public static function GetOptionsForRendering(array $aColumns, string $sSelectMode, string $sFilter, int $iLength, array $aClassAliases, array $aExtraParams) { $aOptions = []; $aColumnsDefinitions = []; $aColumnDefinition = []; - $aClassAliases = []; if ($sSelectMode!=""){ $aColumnDefinition["width"] = "auto"; @@ -594,8 +595,8 @@ class DataTableFactory array_push($aColumnsDefinitions, $aColumnDefinition); } - foreach ($aColumns as $sClassName => $aClassColumns) { - $aClassAliases[$sClassName] = $sClassName; + foreach ($aColumns as $sClassAlias => $aClassColumns) { + $sClassName=$aClassAliases[$sClassAlias]; foreach ($aClassColumns as $sAttCode => $aData) { if ($aData['checked'] == "true") { $aColumnDefinition["width"] = "auto"; @@ -608,14 +609,15 @@ class DataTableFactory $aColumnDefinition["title"] = $aData['alias']; $aColumnDefinition['metadata'] = [ 'object_class' => $sClassName, + 'class_alias' => $sClassAlias, 'attribute_code' => $sAttCode, 'attribute_type' => '_key_', 'attribute_label' => $aData['alias'], ]; - $aColumnDefinition["data"] = $sClassName."/".$sAttCode; + $aColumnDefinition["data"] = $sClassAlias."/".$sAttCode; $aColumnDefinition["render"] = [ - "display" => "return ''+row['".$sClassName."/friendlyname']+'' ;", - "_" => $sClassName."/".$sAttCode, + "display" => "return ''+row['".$sClassAlias."/friendlyname']+'' ;", + "_" => $sClassAlias."/".$sAttCode, ]; } else { $oAttDef = MetaModel::GetAttributeDef($sClassName, $sAttCode); @@ -625,14 +627,15 @@ class DataTableFactory $aColumnDefinition["title"] = $sAttLabel; $aColumnDefinition['metadata'] = [ 'object_class' => $sClassName, + 'class_alias' => $sClassAlias, 'attribute_code' => $sAttCode, 'attribute_type' => $sAttDefClass, 'attribute_label' => $sAttLabel, ]; - $aColumnDefinition["data"] = $sClassName."/".$sAttCode; + $aColumnDefinition["data"] = $sClassAlias."/".$sAttCode; $aColumnDefinition["render"] = [ - "display" => $oAttDef->GetRenderForDataTable($sClassName), - "_" => $sClassName."/".$sAttCode, + "display" => $oAttDef->GetRenderForDataTable($sClassAlias), + "_" => $sClassAlias."/".$sAttCode, ]; } array_push($aColumnsDefinitions, $aColumnDefinition); diff --git a/templates/components/datatable/layout.html.twig b/templates/components/datatable/layout.html.twig index b45e9a70b..a8e180670 100644 --- a/templates/components/datatable/layout.html.twig +++ b/templates/components/datatable/layout.html.twig @@ -17,6 +17,7 @@