N°9167 Use ExtensionDetails UIBlocks instead of table

This commit is contained in:
Timmy38
2026-05-12 12:01:41 +02:00
parent fb7a38c83f
commit b3b7fef6e4
11 changed files with 189 additions and 122 deletions

View File

@@ -437,7 +437,7 @@ class iTopExtensionsMap
'default' => true, // by default offer to install all modules
'modules' => $oExtension->aModules,
'mandatory' => $oExtension->bMandatory,
'source_label' => $this->GetExtensionSourceLabel($oExtension->sSource),
'source_label' => $oExtension->GetExtensionSourceLabel(),
'uninstallable' => $oExtension->CanBeUninstalled(),
'missing' => $oExtension->bRemovedFromDisk,
'version' => $oExtension->sVersion,
@@ -447,21 +447,7 @@ class iTopExtensionsMap
return $aRes;
}
protected function GetExtensionSourceLabel($sSource)
{
$sResult = '';
switch ($sSource) {
case iTopExtension::SOURCE_MANUAL:
$sResult = 'Local extensions folder';
break;
case iTopExtension::SOURCE_REMOTE:
$sResult = (ITOP_APPLICATION == 'iTop') ? 'iTop Hub' : 'ITSM Designer';
break;
}
return $sResult;
}
/**
* Mark the given extension as chosen

View File

@@ -8,7 +8,7 @@ use SetupUtils;
class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
{
protected array $aExtensionsByCode;
protected array $aExtensionsToRemoveByCode;
/**
* Toolset for building a run-time environment
@@ -18,7 +18,7 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
public function __construct($sSourceEnv = 'production', array $aExtensionCodesToRemove = [])
{
parent::__construct($sSourceEnv, false);
$this->aExtensionsByCode = $aExtensionCodesToRemove;
$this->aExtensionsToRemoveByCode = $aExtensionCodesToRemove;
$this->Prepare($sSourceEnv, $this->sBuildEnv);
}
@@ -34,7 +34,7 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
SetupUtils::copydir(APPROOT."/data/$sSourceEnv-modules", APPROOT."/data/$sBuildEnv-modules");
SetupUtils::copydir(APPROOT."/conf/$sSourceEnv", APPROOT."/conf/$sBuildEnv");
$this->DeclareExtensionAsRemoved($this->aExtensionsByCode);
$this->DeclareExtensionAsRemoved($this->aExtensionsToRemoveByCode);
}
private function DeclareExtensionAsRemoved(array $aExtensionCodes): void

View File

@@ -141,4 +141,12 @@ class iTopExtension
}
return true;
}
public function GetExtensionSourceLabel(): string {
return match ($this->sSource) {
iTopExtension::SOURCE_MANUAL => 'Local extensions folder',
iTopExtension::SOURCE_REMOTE => (ITOP_APPLICATION == 'iTop') ? 'iTop Hub' : 'ITSM Designer',
default => 'Unknown',
};
}
}