mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°7024 - Fix opening an object with abstract class indirect linked set in Portal
This commit is contained in:
@@ -768,6 +768,15 @@ JS
|
|||||||
*/
|
*/
|
||||||
protected function InjectRendererFileAssets(string $sClass, array $aAttributesCodesToDisplay, $oOutput)
|
protected function InjectRendererFileAssets(string $sClass, array $aAttributesCodesToDisplay, $oOutput)
|
||||||
{
|
{
|
||||||
|
// handle abstract class
|
||||||
|
while(MetaModel::IsAbstract($sClass)){
|
||||||
|
$aChildClasses = MetaModel::EnumChildClasses($sClass);
|
||||||
|
if(count($aChildClasses) > 0){
|
||||||
|
$sClass = $aChildClasses[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a fake object to pass to renderers for retrieving global assets
|
||||||
$oItem = MetaModel::NewObject($sClass);
|
$oItem = MetaModel::NewObject($sClass);
|
||||||
|
|
||||||
// Iterate throw attributes...
|
// Iterate throw attributes...
|
||||||
@@ -776,10 +785,13 @@ JS
|
|||||||
// Retrieve attribute definition
|
// Retrieve attribute definition
|
||||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||||
|
|
||||||
|
// make form field from attribute
|
||||||
$oField = $oAttDef->MakeFormField($oItem);
|
$oField = $oAttDef->MakeFormField($oItem);
|
||||||
|
|
||||||
|
// retrieve the form field renderer
|
||||||
$sFieldRendererClass = static::GetFieldRendererClass($oField);
|
$sFieldRendererClass = static::GetFieldRendererClass($oField);
|
||||||
|
|
||||||
|
// retrieve renderer global assets
|
||||||
if ($sFieldRendererClass !== null) {
|
if ($sFieldRendererClass !== null) {
|
||||||
/** @var FieldRenderer $oFieldRenderer */
|
/** @var FieldRenderer $oFieldRenderer */
|
||||||
$oFieldRenderer = new $sFieldRendererClass($oField);
|
$oFieldRenderer = new $sFieldRendererClass($oField);
|
||||||
|
|||||||
Reference in New Issue
Block a user