N°8864 Passing array instead of html

This commit is contained in:
Timothee
2026-01-06 14:29:23 +01:00
parent 1c45a4c49e
commit 7844c9ffd0
2 changed files with 53 additions and 59 deletions

View File

@@ -1386,32 +1386,7 @@ class WizStepModulesChoice extends WizardStep
}
}
$sExtensionsAdded = '';
if (count($aExtensionsAdded) > 0) {
$sExtensionsAdded = '<ul>';
foreach ($aExtensionsAdded as $sExtensionCode) {
$sExtensionsAdded .= '<li>'.$sExtensionCode.'</li>';
}
$sExtensionsAdded .= '</ul>';
} else {
$sExtensionsAdded = '<ul><li>No extension added.</li></ul>';
}
$sExtensionsRemoved = '';
if (count($aExtensionsRemoved) > 0) {
$sExtensionsRemoved = '<ul>';
foreach ($aExtensionsRemoved as $sCode => $sExtensionCode) {
$sForcedUninstall = '';
if (isset($aExtensionsNotUninstallable[$sCode])) {
$sForcedUninstall = ' (forced uninstallation)';
}
$sExtensionsRemoved .= '<li>'.$sExtensionCode.$sForcedUninstall.'</li>';
}
$sExtensionsRemoved .= '</ul>';
} else {
$sExtensionsRemoved = '<ul><li>No extension removed.</li></ul>';
}
return [$sExtensionsAdded, $sExtensionsRemoved];
return [$aExtensionsAdded, $aExtensionsRemoved, $aExtensionsNotUninstallable];
}
public function ProcessParams($bMoveForward = true)
@@ -1444,13 +1419,13 @@ class WizStepModulesChoice extends WizardStep
$this->oWizard->SetParameter('old_addon', true);
}
[$sExtensionsAdded, $sExtensionsRemoved] = $this->GetAddedAndRemovedExtensions($aExtensions);
[$aExtensionsAdded, $aExtensionsRemoved, $aExtensionsNotUninstallable] = $this->GetAddedAndRemovedExtensions($aExtensions);
$this->oWizard->SetParameter('selected_modules', json_encode(array_keys($aModules)));
$this->oWizard->SetParameter('selected_extensions', json_encode($aExtensions));
$this->oWizard->SetParameter('display_choices', $sDisplayChoices);
$this->oWizard->SetParameter('extensions_added', $sExtensionsAdded);
$this->oWizard->SetParameter('extensions_removed', $sExtensionsRemoved);
$this->oWizard->SetParameter('extensions_added', json_encode($aExtensionsAdded));
$this->oWizard->SetParameter('extensions_removed', json_encode($aExtensionsRemoved));
$this->oWizard->SetParameter('extensions_not_uninstallable', json_encode(array_keys($aExtensionsNotUninstallable)));
return ['class' => 'WizStepSummary', 'state' => ''];
}
@@ -2270,10 +2245,39 @@ class WizStepSummary extends WizardStep
$oPage->add('<div id="params_summary">');
$oPage->add('<div class="closed"><span class="title ibo-setup-summary-title">Extensions to be installed</span>');
$oPage->add($this->oWizard->GetParameter('extensions_added'));
$aExtensionsAdded = json_decode($this->oWizard->GetParameter('extensions_added'), true);
$sExtensionsAdded = '';
if (count($aExtensionsAdded)) {
$sExtensionsAdded = '<ul>';
foreach ($aExtensionsAdded as $sExtensionCode => $sLabel) {
$sExtensionsAdded .= '<li>'.$sLabel.'</li>';
}
$sExtensionsAdded .= '</ul>';
} else {
$sExtensionsAdded = '<ul><li>No extension added.</li></ul>';
}
$oPage->add($sExtensionsAdded);
$oPage->add('</div>');
$oPage->add('<div class="closed"><span class="title ibo-setup-summary-title">Extensions to be uninstalled</span>');
$oPage->add($this->oWizard->GetParameter('extensions_removed'));
$aExtensionsRemoved = json_decode($this->oWizard->GetParameter('extensions_removed'), true);
$aExtensionsNotUninstallable = json_decode($this->oWizard->GetParameter('extensions_not_uninstallable'));
$sExtensionsRemoved = '';
if (count($aExtensionsRemoved) > 0) {
$sExtensionsRemoved = '<ul>';
foreach ($aExtensionsRemoved as $sExtensionCode => $sLabel) {
$sForcedUninstall = '';
if (in_array($sExtensionCode, $aExtensionsNotUninstallable)) {
$sForcedUninstall = ' (forced uninstallation)';
}
$sExtensionsRemoved .= '<li>'.$sLabel.$sForcedUninstall.'</li>';
}
$sExtensionsRemoved .= '</ul>';
} else {
$sExtensionsRemoved = '<ul><li>No extension removed.</li></ul>';
}
$oPage->add($sExtensionsRemoved);
$oPage->add('</div>');
$oPage->add('<div class="closed"><span class="title ibo-setup-summary-title">Database Parameters</span><ul>');

View File

@@ -272,28 +272,18 @@ class WizStepModulesChoiceTest extends ItopTestCase
'aExtensionsOnDiskOrDb' => [],
'aSelected' => [],
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
'aExpectedAddedList' => [],
'aExpectedRemovedList' => [],
],
'no extensions selected' => [
'no extensions added nor removed' => [
'aExtensionsOnDiskOrDb' => [
'itop-ext1' => [
'installed' => false,
],
],
'aSelected' => [],
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
],
'no extensions removed' => [
'aExtensionsOnDiskOrDb' => [
'itop-ext1' => [
'installed' => true,
],
],
'aSelected' => ['itop-ext1'],
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
'aExpectedAddedList' => [],
'aExpectedRemovedList' => [],
],
'One added extension' => [
'aExtensionsOnDiskOrDb' => [
@@ -302,8 +292,8 @@ class WizStepModulesChoiceTest extends ItopTestCase
],
],
'aSelected' => ['itop-ext1'],
'sExpectedAddedList' => '<ul><li>itop-ext1</li></ul>',
'sExpectedRemovedList' => '<ul><li>No extension removed.</li></ul>',
'aExpectedAddedList' => ['itop-ext1' => 'itop-ext1'],
'aExpectedRemovedList' => [],
],
'One removed extension' => [
'aExtensionsOnDiskOrDb' => [
@@ -312,8 +302,8 @@ class WizStepModulesChoiceTest extends ItopTestCase
],
],
'aSelected' => [],
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
'sExpectedRemovedList' => '<ul><li>itop-ext1</li></ul>',
'aExpectedAddedList' => [],
'aExpectedRemovedList' => ['itop-ext1' => 'itop-ext1'],
],
'Forced removed extension' => [
'aExtensionsOnDiskOrDb' => [
@@ -323,8 +313,8 @@ class WizStepModulesChoiceTest extends ItopTestCase
],
],
'aSelected' => [],
'sExpectedAddedList' => '<ul><li>No extension added.</li></ul>',
'sExpectedRemovedList' => '<ul><li>itop-ext1 (forced uninstallation)</li></ul>',
'aExpectedAddedList' => [],
'aExpectedRemovedList' => ['itop-ext1' => 'itop-ext1'],
],
'added and removed extensions' => [
'aExtensionsOnDiskOrDb' => [
@@ -342,8 +332,8 @@ class WizStepModulesChoiceTest extends ItopTestCase
],
],
'aSelected' => ['itop-ext-added1', 'itop-ext-added2'],
'sExpectedAddedList' => '<ul><li>itop-ext-added1</li><li>itop-ext-added2</li></ul>',
'sExpectedRemovedList' => '<ul><li>itop-ext-removed1</li><li>itop-ext-removed2</li></ul>',
'aExpectedAddedList' => ['itop-ext-added1' => 'itop-ext-added1', 'itop-ext-added2' => 'itop-ext-added2'],
'aExpectedRemovedList' => ['itop-ext-removed1' => 'itop-ext-removed1', 'itop-ext-removed2' => 'itop-ext-removed2'],
],
];
@@ -352,12 +342,12 @@ class WizStepModulesChoiceTest extends ItopTestCase
/**
* @dataProvider ProviderGetAddedAndRemovedExtensions
*/
public function testGetAddedAndRemovedExtensions($aExtensionsOnDiskOrDb, $aSelectedExtensions, $sExpectedAddedList, $sExpectedRemovedList)
public function testGetAddedAndRemovedExtensions($aExtensionsOnDiskOrDb, $aSelectedExtensions, $aExpectedAddedList, $aExpectedRemovedList)
{
$this->oStep->setExtensionMap(iTopExtensionsMapFake::createFromArray($aExtensionsOnDiskOrDb));
[$sAddedList, $sRemovedList] = $this->oStep->GetAddedAndRemovedExtensions($aSelectedExtensions);
$this->assertEquals($sExpectedAddedList, $sAddedList);
$this->assertEquals($sExpectedRemovedList, $sRemovedList);
[$aAddedList, $aRemovedList, $aNotUninstallableList] = $this->oStep->GetAddedAndRemovedExtensions($aSelectedExtensions);
$this->assertEquals($aExpectedAddedList, $aAddedList);
$this->assertEquals($aExpectedRemovedList, $aRemovedList);
}
}