Merge remote-tracking branch 'origin/support/3.2' into develop

# Conflicts:
#	datamodels/2.x/itop-portal-base/portal/templates/bricks/browse/mode_tree.html.twig
This commit is contained in:
Molkobain
2026-03-18 11:33:29 +01:00
6 changed files with 15 additions and 7 deletions

View File

@@ -317,7 +317,7 @@ class BrowseBrickHelper
$aRow[$key] = [
'level_alias' => $key,
'id' => $sCurrentObjectId,
'name' => utils::EscapeHtml($value->Get($sNameAttCode)),
'name' => $value->Get($sNameAttCode),
'class' => $sCurrentObjectClass,
'action_rules_token' => $this->PrepareActionRulesForItems($aItems, $key, $aLevelsProperties),
'metadata' => [
@@ -476,7 +476,7 @@ class BrowseBrickHelper
$aItems[$sCurrentIndex] = [
'level_alias' => $aCurrentRowKeys[0],
'id' => $aCurrentRowValues[0]->GetKey(),
'name' => utils::EscapeHtml($aCurrentRowValues[0]->Get($aLevelsProperties[$aCurrentRowKeys[0]]['name_att'])),
'name' => $aCurrentRowValues[0]->Get($aLevelsProperties[$aCurrentRowKeys[0]]['name_att']),
'class' => get_class($aCurrentRowValues[0]),
'subitems' => [],
'filter_data' => $this->GetFilterData($aLevelsProperties[$aCurrentRowKeys[0]], $aCurrentRowKeys[0], $aCurrentRowValues[0]),

View File

@@ -83,11 +83,11 @@
// N°4662 - Surround tooltip with div to ensure text retrival
if( (data.tooltip !== undefined) && ($('<div>'+data.tooltip+'</div>').text() !== ''))
{
cellElem.html( $('<span></span>').attr('data-tooltip-content', data.tooltip).attr('data-tooltip-html-enabled', true).html(data.name).prop('outerHTML') );
cellElem.html( $('<span></span>').attr('data-tooltip-content', data.tooltip).attr('data-tooltip-html-enabled', true).text(data.name).prop('outerHTML') );
}
else
{
cellElem.html(data.name);
cellElem.text(data.name);
}
// Building actions

View File

@@ -206,7 +206,7 @@
if( (item.name !== undefined) && (item.name !== '') )
{
iItemFlags += 1;
textWrapperElem.append( $('<div></div>').addClass('mosaic-item-name').html(item.name) );
textWrapperElem.append( $('<div></div>').addClass('mosaic-item-name').text(item.name) );
}
// - Adding description
if( (item.description !== undefined) && (item.description !== '') )

View File

@@ -238,7 +238,9 @@
{
case '{{ constant('Combodo\\iTop\\Portal\\Brick\\BrowseBrick::ENUM_ACTION_DRILLDOWN') }}':
spanElem.addClass('tree-toggle');
nameElem.html('<span class="glyphicon '+sNodeCollapsedClass+'" aria-hidden="true"></span><span class="list-group-item-text">'+item.name+'</span>');
var drilldownIconElem = $('<span></span>').addClass('glyphicon '+sNodeCollapsedClass).attr('aria-hidden', 'true');
var drilldownTextElem = $('<span></span>').addClass('list-group-item-text').text(nameElem.text());
nameElem.empty().append(drilldownIconElem).append(drilldownTextElem);
break;
case '{{ constant('Combodo\\iTop\\Portal\\Brick\\BrowseBrick::ENUM_ACTION_VIEW') }}':
url = '{{ app.url_generator.generate('p_object_view', {'sObjectClass': '-objectClass-', 'sObjectId': '-objectId-'})|raw }}'.replace(/-objectClass-/, item.class).replace(/-objectId-/, item.id);
@@ -280,7 +282,7 @@
{
nameElem.append($('<span class="list-group-item-description">'+item.description+'</span>'));
}
if(levelActionsKeys.length > 1)
{
// Retrieving secondary action (Now we also display primary action)

View File

@@ -125,6 +125,10 @@ require_once($sTargetPage);
function GetModuleDelegatedAuthenticationEndpoints(string $sModuleName): ?array
{
$sModuleFile = utils::GetAbsoluteModulePath($sModuleName).'/module.'.$sModuleName.'.php';
if (!file_exists($sModuleFile)) {
echo 'Wrong module, page name or environment...';
exit;
}
require_once APPROOT.'setup/extensionsmap.class.inc.php';
$aModuleParam = ModuleFileReader::GetInstance()->ReadModuleFileInformation($sModuleFile)[2];
return $aModuleParam['delegated_authentication_endpoints'] ?? null;

View File

@@ -13,6 +13,8 @@ class LoginWebPageTest extends ItopDataTestCase
{
public const USE_TRANSACTION = false;
private Config $oConfig;
public const PASSWORD = 'a209320P!ù;ralùqpi,pàcqi"nr';
public function setUp(): void