mirror of
https://github.com/Combodo/iTop.git
synced 2026-03-03 16:14:13 +01:00
Compare commits
3 Commits
feature/89
...
feature/un
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa082dda3b | ||
|
|
2b976797dc | ||
|
|
862da59e8b |
File diff suppressed because one or more lines are too long
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user