Compare commits

...

3 Commits

Author SHA1 Message Date
Timmy38
3e38e349e5 N°9690 Fix code style 2026-06-15 11:53:14 +02:00
Timmy38
65b58ec4e2 N°9690 Removed and added modules/extensions are now read from GET parameters 2026-06-15 11:49:52 +02:00
Timmy38
6a20e36434 N°9683 Fix Code Style 2026-06-12 11:23:35 +02:00
2 changed files with 38 additions and 22 deletions

View File

@@ -182,7 +182,7 @@ class ExtensionDetails extends UIContentBlock
$sName = 'aSelectedExtensions['.$this->GetCode().']'; $sName = 'aSelectedExtensions['.$this->GetCode().']';
$this->oToggler = new Toggler(); $this->oToggler = new Toggler();
$this->oToggler->SetName($sName); $this->oToggler->SetName($sName);
$this->oToggler->SetTooltip(Dict::Format('UI:Layout:ExtensionsDetails:TogglerTooltip' ,$this->GetLabel())); $this->oToggler->SetTooltip(Dict::Format('UI:Layout:ExtensionsDetails:TogglerTooltip', $this->GetLabel()));
$this->oToggler->AddCSSClass('toggler-install'); $this->oToggler->AddCSSClass('toggler-install');
} }

View File

@@ -6,12 +6,6 @@ require_once(dirname(__DIR__, 6).'/approot.inc.php');
require_once(APPROOT.'application/startup.inc.php'); require_once(APPROOT.'application/startup.inc.php');
require_once(APPROOT.'setup/setuputils.class.inc.php'); require_once(APPROOT.'setup/setuputils.class.inc.php');
$aParams = [
"exec_module" => "combodo-data-feature-removal",
"exec_page" => "index.php",
'exec_env' => 'production',
];
new ContextTag(ContextTag::TAG_SETUP); new ContextTag(ContextTag::TAG_SETUP);
$sToken = SetupUtils::CreateSetupToken(); $sToken = SetupUtils::CreateSetupToken();
@@ -34,24 +28,45 @@ function GetLastestInstallFile(): ?string
return $sLastFilePath; return $sLastFilePath;
} }
$aRemovedExtensions = [
'itop-container-mgmt' => 'Containerization',
];
$sPath = GetLastestInstallFile(); $sPath = GetLastestInstallFile();
if (is_null($sPath)) { if (is_null($sPath)) {
throw new Exception("$sPath no installation XM. Launch a setup...."); throw new Exception("$sPath no installation XML. Launch a setup....");
} }
$aParams = new XMLParameters($sPath); $aParams = new XMLParameters($sPath);
$aSelectedModules = array_filter($aParams->Get('selected_modules', []), static function ($element) { $aSelectedModules = $aParams->Get('selected_modules', []);
global $aRemovedExtensions; $aSelectedExtensions = $aParams->Get('selected_extensions', []);
return ! array_key_exists($element, $aRemovedExtensions);
});
$aSelectedExtensions = array_filter($aParams->Get('selected_extensions', []), static function ($element) { $sAddedExtensions = utils::ReadParam('added_extensions', '');
global $aRemovedExtensions; $aAddedExtensions = [];
return ! array_key_exists($element, $aRemovedExtensions); if (mb_strlen($sAddedExtensions) > 0) {
}); $aAddedExtensions = explode(',', $sAddedExtensions);
}
$oExtensionMap = new iTopExtensionsMap();
foreach ($aAddedExtensions as $sExtensionCode) {
if (mb_strlen($sExtensionCode) <= 0) {
continue;
}
$oExtension = $oExtensionMap->GetFromExtensionCode($sExtensionCode);
$aSelectedExtensions[] = $oExtension->sCode;
foreach ($oExtension->aModules as $sModuleCode) {
if (!in_array($sModuleCode, $aSelectedModules)) {
$aSelectedModules[] = $sModuleCode;
}
}
}
$sRemovedExtensions = utils::ReadParam('removed_modules', '', false, 'raw');
$aRemovedExtensionsAndModules = [];
if (mb_strlen($sRemovedExtensions) > 0) {
$aRemovedExtensionsAndModules = explode(',', $sRemovedExtensions);
}
$aSelectedModules = array_filter($aSelectedModules, fn ($element) => !in_array($element, $aRemovedExtensionsAndModules));
$aSelectedExtensions = array_filter($aSelectedExtensions, fn ($element) => !in_array($element, $aRemovedExtensionsAndModules));
$aRemovedExtensionsAndModules = array_filter($aRemovedExtensionsAndModules, fn ($element) => !is_null($oExtensionMap->GetFromExtensionCode($element)));
$aRemovedExtensions = array_combine($aRemovedExtensionsAndModules, $aRemovedExtensionsAndModules);
$aAddedExtensions = array_combine($aAddedExtensions, $aAddedExtensions);
$aPostParams = [ $aPostParams = [
"auth_user" => 'admin', "auth_user" => 'admin',
@@ -62,8 +77,9 @@ $aPostParams = [
'selected_modules' => utils::HtmlEntities(json_encode($aSelectedModules)), 'selected_modules' => utils::HtmlEntities(json_encode($aSelectedModules)),
'selected_extensions' => utils::HtmlEntities(json_encode($aSelectedExtensions)), 'selected_extensions' => utils::HtmlEntities(json_encode($aSelectedExtensions)),
'removed_extensions' => utils::HtmlEntities(json_encode($aRemovedExtensions)), 'removed_extensions' => utils::HtmlEntities(json_encode($aRemovedExtensions)),
'force-uninstall' => "on", 'added_extensions' => utils::HtmlEntities(json_encode($aAddedExtensions)),
'use_symbolic_links' => "", 'force-uninstall' => 'on',
'use_symbolic_links' => '',
]; ];
$sHiddenPostedInput = ""; $sHiddenPostedInput = "";