N°4346 - Restore HTML metadata (data-xxx) on lists in the backoffice - after configure this list

This commit is contained in:
acognet
2021-11-08 15:02:45 +01:00
parent a286564345
commit ab40c67678
2 changed files with 32 additions and 12 deletions

View File

@@ -107,6 +107,9 @@ $(function () {
$.each(aOptions['columns'], function (i, item) {
aOptions["columns"][i]["render"]["display"] = new Function("data, type, row", aOptions["columns"][i]["render"]["display"]);
});
$.each(aOptions['columns'], function (i, item) {
aOptions["columns"][i]["createdCell"] = new Function("td, cellData, rowData, row, col", aOptions["columns"][i]["createdCell"]);
});
parentElt.append("<table id=\""+me.options.sListId+"\" width=\"100%\" class=\"ibo-datatable\">"+
"<thead><tr>"+sThead+"</tr></thead></table>");

View File

@@ -764,19 +764,27 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
$aColumnDefinition["type"] = "html";
if ($sAttCode == '_key_') {
$sAttrLabel = $aData['alias'];
$aColumnDefinition["title"] = $aData['alias'];
$aColumnDefinition['metadata'] = [
'object_class' => $sClassName,
'class_alias' => $sClassAlias,
'attribute_code' => $sAttCode,
'attribute_type' => '_key_',
'attribute_label' => $aData['alias'],
'object_class' => $sClassName,
'class_alias' => $sClassAlias,
'attribute_code' => $sAttCode,
'attribute_type' => '_key_',
'attribute_label' => $sAttrLabel,
];
$aColumnDefinition["data"] = $sClassAlias."/".$sAttCode;
$aColumnDefinition["render"] = [
"display" => "return row['".$sClassAlias."/hyperlink'];",
"_" => $sClassAlias."/".$sAttCode,
"display" => "return row['".$sClassAlias."/hyperlink'];",
"_" => $sClassAlias."/".$sAttCode,
];
$aColumnDefinition["createdCell"] = <<<JS
$(td).attr('data-object-class', '$sClassName');
$(td).attr('data-attribute-label', '$sAttrLabel');
if (rowData["$sClassAlias/$sAttCode/raw"]) {
$(td).attr('data-value-raw', rowData["$sClassAlias/$sAttCode/raw"]);
}
JS;
} else {
$oAttDef = MetaModel::GetAttributeDef($sClassName, $sAttCode);
if ($oAttDef instanceof \AttributeCaseLog) {
@@ -789,17 +797,26 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
$sAttLabel = MetaModel::GetLabel($sClassName, $sAttCode);
$aColumnDefinition["title"] = $sAttLabel;
$aColumnDefinition['metadata'] = [
'object_class' => $sClassName,
'class_alias' => $sClassAlias,
'attribute_code' => $sAttCode,
'attribute_type' => $sAttDefClass,
'object_class' => $sClassName,
'class_alias' => $sClassAlias,
'attribute_code' => $sAttCode,
'attribute_type' => $sAttDefClass,
'attribute_label' => $sAttLabel,
];
$aColumnDefinition["data"] = $sClassAlias."/".$sAttCode;
$aColumnDefinition["render"] = [
"display" => $oAttDef->GetRenderForDataTable($sClassAlias),
"_" => $sClassAlias."/".$sAttCode,
"_" => $sClassAlias."/".$sAttCode,
];
$aColumnDefinition["createdCell"] = <<<JS
$(td).attr('data-object-class', '$sClassName');
$(td).attr('data-attribute-label', '$sAttrLabel');
$(td).attr('data-attribute-code', '$sAttCode');
$(td).attr('data-attribute-type', '$sAttDefClass');
if (rowData["$sClassAlias/$sAttCode/raw"]) {
$(td).attr('data-value-raw', rowData["$sClassAlias/$sAttCode/raw"]);
}
JS;
}
array_push($aColumnsDefinitions, $aColumnDefinition);
}