Compare commits

..

3 Commits

Author SHA1 Message Date
Timothee
aa082dda3b N°9161 2026-03-03 15:47:10 +01:00
odain
2b976797dc ci: code style 2026-03-03 11:01:53 +01:00
odain
862da59e8b phpstan cleanup 2026-03-03 10:50:04 +01:00
5 changed files with 45 additions and 38 deletions

File diff suppressed because one or more lines are too long

View File

@@ -328,10 +328,10 @@ fieldset {
}
}
}
&:not(:checked) ~ label .checked{
&:not(:checked) ~ label .setup-extension-tag.checked{
display:none;
}
&:checked ~ label .unchecked{
&:checked ~ label .setup-extension-tag.unchecked{
display:none;
}
}

View File

@@ -140,35 +140,34 @@ class ModuleDependencySort
}
//include all modules
$iInDegreeCounterIncludingOutsideModules = count($oModule->GetUnresolvedDependencyModuleNames());
$aCountDepsByModuleId[$sModuleId] = [$iInDegreeCounter, $iInDegreeCounterIncludingOutsideModules, $sModuleId];
$aCountDepsByModuleId[$sModuleId] = new ModuleCountDepency($sModuleId, $iInDegreeCounter, $iInDegreeCounterIncludingOutsideModules);
}
$aRes = [];
while (count($aUnresolvedDependencyModules) > 0) {
asort($aCountDepsByModuleId);
uasort($aCountDepsByModuleId, function (array $aDeps1, array $aDeps2) {
//compare $iInDegreeCounter
$res = $aDeps1[0] - $aDeps2[0];
uasort($aCountDepsByModuleId, function (ModuleCountDepency $oModuleCountDepency1, ModuleCountDepency $oModuleCountDepency2) {
$res = $oModuleCountDepency1->iInDegreeCounter - $oModuleCountDepency2->iInDegreeCounter;
if ($res != 0) {
return $res;
}
//compare $iInDegreeCounterIncludingOutsideModules
$res = $aDeps1[1] - $aDeps2[1];
$res = $oModuleCountDepency1->iInDegreeCounterIncludingOutsideModules - $oModuleCountDepency2->iInDegreeCounterIncludingOutsideModules;
if ($res != 0) {
return $res;
}
//alphabetical order at least
return strcmp($aDeps1[2], $aDeps2[2]);
return strcmp($oModuleCountDepency1->sModuleId, $oModuleCountDepency2->sModuleId);
});
$bOneLoopAtLeast = false;
foreach ($aCountDepsByModuleId as $sModuleId => $iInDegreeCounter) {
foreach ($aCountDepsByModuleId as $sModuleId => $oModuleCountDepency) {
/** @var ModuleCountDepency $oModuleCountDepency */
$oModule = $aUnresolvedDependencyModules[$sModuleId];
if ($bOneLoopAtLeast && ($iInDegreeCounter > 0)) {
if ($bOneLoopAtLeast && ($oModuleCountDepency->iInDegreeCounter > 0)) {
break;
}
@@ -183,10 +182,10 @@ class ModuleDependencySort
if (!array_key_exists($sModuleId2, $aCountDepsByModuleId)) {
continue;
}
$aDepCount = $aCountDepsByModuleId[$sModuleId2];
$iInDegreeCounter = $aDepCount[0] - 1;
$iInDegreeCounterIncludingOutsideModules = $aDepCount[1];
$aCountDepsByModuleId[$sModuleId2] = [$iInDegreeCounter, $iInDegreeCounterIncludingOutsideModules, $sModuleId2];
/** @var ModuleCountDepency $oModuleCountDepency2 */
$oModuleCountDepency2 = $aCountDepsByModuleId[$sModuleId2];
$iInDegreeCounter = $oModuleCountDepency2->iInDegreeCounter - 1;
$aCountDepsByModuleId[$sModuleId2] = new ModuleCountDepency($sModuleId2, $iInDegreeCounter, $oModuleCountDepency2->iInDegreeCounterIncludingOutsideModules);
}
unset($aDependsOnModuleName[$oModule->GetModuleName()]);
@@ -199,3 +198,18 @@ class ModuleDependencySort
$aUnresolvedDependencyModules = $aRes;
}
}
class ModuleCountDepency
{
public string $sModuleId;
public int $iInDegreeCounter;
public int $iInDegreeCounterIncludingOutsideModules;
public function __construct(string $sModuleId, int $iInDegreeCounter, int $iInDegreeCounterIncludingOutsideModules)
{
$this->iInDegreeCounter = $iInDegreeCounter;
$this->iInDegreeCounterIncludingOutsideModules = $iInDegreeCounterIncludingOutsideModules;
$this->sModuleId = $sModuleId;
}
}

View File

@@ -735,24 +735,17 @@ EOF
$sTooltip = '';
$sUnremovable = '';
if ($aFlags['missing']) {
$sTooltip .= '<span class="ibo-badge ibo-block ibo-is-red" data-tooltip-content="The local extension folder has been removed from the disk. This will force the uninstallation of the extension." data-tooltip-instantiated="true">source removed</span>';
//$sTooltip .= '<div class="setup-extension-tag removed">source removed</div>';
$sTooltip .= '<div class="setup-extension-tag removed">source removed</div>';
}
if ($aFlags['installed']) {
$sTooltip .= '<span class="ibo-badge ibo-block checked ibo-is-green" data-tooltip-content="This extension is part of the current installation." data-tooltip-instantiated="true">installed</span>';
//$sTooltip .= '<div class="setup-extension-tag checked installed">installed</div>';
$sTooltip .= '<span class="ibo-badge ibo-block unchecked ibo-is-red" data-tooltip-content="This extension will be uninstalled during the setup." data-tooltip-instantiated="true">to be uninstalled</span>';
//$sTooltip .= '<div class="setup-extension-tag unchecked tobeuninstalled">to be uninstalled</div>';
$sTooltip .= '<div class="setup-extension-tag checked installed">installed</div>';
$sTooltip .= '<div class="setup-extension-tag unchecked tobeuninstalled">to be uninstalled</div>';
} else {
$sTooltip .= '<span class="ibo-badge ibo-block checked ibo-is-cyan" data-tooltip-content="This extension will be installed during the setup." data-tooltip-instantiated="true">to be installed</span>';
//$sTooltip .= '<div class="setup-extension-tag checked tobeinstalled">to be installed</div>';
$sTooltip .= '<span class="ibo-badge ibo-block unchecked ibo-is-blue-grey" data-tooltip-content="This extension is not part of the current installation." data-tooltip-instantiated="true">not installed</span>';
//$sTooltip .= '<div class="setup-extension-tag unchecked notinstalled">not installed</div>';
$sTooltip .= '<div class="setup-extension-tag checked tobeinstalled">to be installed</div>';
$sTooltip .= '<div class="setup-extension-tag unchecked notinstalled">not installed</div>';
}
if (!$aFlags['uninstallable']) {
$sTooltip .= '<span class="ibo-badge ibo-block ibo-is-orange" data-tooltip-content="Once this extension has been installed, it should not be uninstalled." data-tooltip-instantiated="true">cannot be uninstalled</span>';
//$sTooltip .= '<div class="setup-extension-tag notuninstallable">cannot be uninstalled</div>';
$sTooltip .= '<div class="setup-extension-tag notuninstallable">cannot be uninstalled</div>';
}
if ($aFlags['disabled'] && !$aFlags['checked'] && !$aFlags['uninstallable'] && !$bDisableUninstallCheck) {
$this->bCanMoveForward = false;//Disable "Next"

View File

@@ -83,7 +83,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oPage->add('<fieldset id="summary"><legend>Installation Parameters</legend>');
$oPage->add('<div id="params_summary">');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Extensions to be installed">Extensions to be installed</a>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Extensions to be installed">Extensions to be installed</a>');
$aExtensionsAdded = json_decode($this->oWizard->GetParameter('extensions_added'), true);
if (count($aExtensionsAdded) > 0) {
@@ -97,7 +97,7 @@ class WizStepSummary extends AbstractWizStepInstall
}
$oPage->add($sExtensionsAdded);
$oPage->add('</div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Extensions to be uninstalled">Extensions to be uninstalled</a>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Extensions to be uninstalled">Extensions to be uninstalled</a>');
$aExtensionsRemoved = json_decode($this->oWizard->GetParameter('removed_extensions'), true) ?? [];
$aExtensionsNotUninstallable = json_decode($this->oWizard->GetParameter('extensions_not_uninstallable'));
@@ -117,7 +117,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oPage->add($sExtensionsRemoved);
$oPage->add('</div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Database Parameters">Database Parameters</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Database Parameters">Database Parameters</a><ul>');
$oPage->add('<li>Server Name: '.$aInstallParams['database']['server'].'</li>');
$oPage->add('<li>DB User Name: '.$aInstallParams['database']['user'].'</li>');
$oPage->add('<li>DB user password: ***</li>');
@@ -133,11 +133,11 @@ class WizStepSummary extends AbstractWizStepInstall
}
$oPage->add('</ul></div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Data Model Configuration">Data Model Configuration</a>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Data Model Configuration">Data Model Configuration</a>');
$oPage->add($this->oWizard->GetParameter('display_choices'));
$oPage->add('</div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Other Parameters">Other Parameters</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Other Parameters">Other Parameters</a><ul>');
if ($sMode == 'install') {
$oPage->add('<li>Default language: '.$aInstallParams['language'].'</li>');
}
@@ -153,7 +153,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oPage->add('</ul></div>');
if ($sMode == 'install') {
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Administrator Account">Administrator Account</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Administrator Account">Administrator Account</a><ul>');
$oPage->add('<li>Login: '.$aInstallParams['admin_account']['user'].'</li>');
$oPage->add('<li>Password: '.$aInstallParams['admin_account']['pwd'].'</li>');
$oPage->add('<li>Language: '.$aInstallParams['admin_account']['language'].'</li>');
@@ -162,7 +162,7 @@ class WizStepSummary extends AbstractWizStepInstall
$aMiscOptions = $aInstallParams['options'];
if (count($aMiscOptions) > 0) {
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title">Miscellaneous Options</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" >Miscellaneous Options</a><ul>');
foreach ($aMiscOptions as $sKey => $sValue) {
$oPage->add('<li>'.$sKey.': '.$sValue.'</li>');
}
@@ -178,7 +178,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oParams->LoadFromHash($aInstallParams);
$oParams->ToXML($oDoc, null, 'installation');
$sXML = $oDoc->saveXML();
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title">XML Config file</a><ul><pre>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" >XML Config file</a><ul><pre>');
$oPage->add(utils::EscapeHtml($sXML));
$oPage->add('</pre></ul></div>');
}