');
$oStep->Display($oPage);
@@ -283,8 +285,8 @@ EOF
$oPage->output();
}
/**
- * Make the wizard run: Start, Next or Back depending WizardUpdateButtons();
-on the page's parameters
+ * Make the wizard run: 'Start', 'Next' or 'Back' depending WizardUpdateButtons();
+ * on the page's parameters
*/
public function Run()
{
diff --git a/setup/wizardsteps/WizStepLandingBeforeAudit.php b/setup/wizardsteps/WizStepLandingBeforeAudit.php
index e29674720..7971b532c 100644
--- a/setup/wizardsteps/WizStepLandingBeforeAudit.php
+++ b/setup/wizardsteps/WizStepLandingBeforeAudit.php
@@ -40,8 +40,8 @@ class WizStepLandingBeforeAudit extends WizStepModulesChoice
*/
public function UpdateWizardStateAndGetNextStep($bMoveForward = true): WizardState
{
- $oProductionEnv = new RunTimeEnvironment();
- $sBuildConfigFile = APPCONF.$oProductionEnv->GetBuildEnv().'/'.ITOP_CONFIG_FILE;
+ $oRuntimeEnv = new RunTimeEnvironment();
+ $sBuildConfigFile = APPCONF.$oRuntimeEnv->GetBuildEnv().'/'.ITOP_CONFIG_FILE;
@chmod($sBuildConfigFile, 0770); // In case it exists: RWX for owner and group, nothing for others
$oConfig = new Config($sBuildConfigFile);
@@ -56,6 +56,14 @@ class WizStepLandingBeforeAudit extends WizStepModulesChoice
$this->oWizard->SetParameter('display_choices', '[]');
$this->oWizard->SetParameter('extensions_not_uninstallable', '[]');
+ if ($this->oWizard->GetParameter('skip_wizard', false)) {
+ $oExtensionMap = new iTopExtensionsMap($oRuntimeEnv->GetBuildEnv());
+ $aExtensionsFromDatabase = $oExtensionMap->GetChoicesFromDatabase($oConfig);
+ $this->oWizard->SetParameter('selected_extensions', json_encode($aExtensionsFromDatabase));
+ $adModulesFromDatabase = ModuleInstallationRepository::GetInstance()->ReadComputeInstalledModules($oConfig);
+ $this->oWizard->SetParameter('selected_modules', json_encode(array_keys($adModulesFromDatabase)));
+ }
+
$aWizardSteps = $this->GetWizardSteps();
$this->oWizard->SetWizardSteps($aWizardSteps);
$this->sCurrentState = count($aWizardSteps) - 1;
diff --git a/setup/wizardsteps/WizStepWelcome.php b/setup/wizardsteps/WizStepWelcome.php
index c89389a16..2db53d59b 100644
--- a/setup/wizardsteps/WizStepWelcome.php
+++ b/setup/wizardsteps/WizStepWelcome.php
@@ -18,14 +18,21 @@
* You should have received a copy of the GNU Affero General Public License
*/
-use Combodo\iTop\Application\WebPage\WebPage;
-
/**
* First step of the iTop Installation Wizard: Welcome screen, requirements
*/
class WizStepWelcome extends WizardStep
{
protected $bCanMoveForward;
+ private array $aInfo;
+ private array $aWarnings;
+ private array $aErrors;
+
+ public function __construct(WizardController $oWizard, $sCurrentState)
+ {
+ parent::__construct($oWizard, $sCurrentState);
+ $this->CheckInstallation();
+ }
public function GetTitle()
{
@@ -70,39 +77,14 @@ class WizStepWelcome extends WizardStep
EOF
);
$oPage->add('
'.ITOP_APPLICATION.' Installation Wizard
');
- $aResults = SetupUtils::CheckPhpAndExtensions();
- $this->bCanMoveForward = true;
- $aInfo = [];
- $aWarnings = [];
- $aErrors = [];
- foreach ($aResults as $oCheckResult) {
- switch ($oCheckResult->iSeverity) {
- case CheckResult::ERROR:
- $aErrors[] = $oCheckResult->sLabel;
- $this->bCanMoveForward = false;
- break;
-
- case CheckResult::WARNING:
- $aWarnings[] = $oCheckResult->sLabel;
- break;
-
- case CheckResult::INFO:
- $aInfo[] = $oCheckResult->sLabel;
- break;
-
- case CheckResult::TRACE:
- SetupLog::Ok($oCheckResult->sLabel);
- break;
- }
- }
$sStyle = 'style="display:none;overflow:auto;"';
$sToggleButtons = '
';
- if (count($aErrors) > 0) {
+ if (count($this->aErrors) > 0) {
$sStyle = 'overflow:auto;"';
- $sTitle = count($aErrors).' Error(s), '.count($aWarnings).' Warning(s).';
+ $sTitle = count($this->aErrors).' Error(s), '.count($this->aWarnings).' Warning(s).';
$sH2Class = 'text-error';
- } elseif (count($aWarnings) > 0) {
- $sTitle = count($aWarnings).' Warning(s) '.$sToggleButtons;
+ } elseif (count($this->aWarnings) > 0) {
+ $sTitle = count($this->aWarnings).' Warning(s) '.$sToggleButtons;
$sH2Class = 'text-warning';
} else {
$sTitle = 'Ok. '.$sToggleButtons;
@@ -114,13 +96,13 @@ EOF
HTML
);
- foreach ($aErrors as $sText) {
+ foreach ($this->aErrors as $sText) {
$oPage->error($sText);
}
- foreach ($aWarnings as $sText) {
+ foreach ($this->aWarnings as $sText) {
$oPage->warning($sText);
}
- foreach ($aInfo as $sText) {
+ foreach ($this->aInfo as $sText) {
$oPage->ok($sText);
}
$oPage->add('
');
@@ -131,8 +113,78 @@ HTML
$oPage->add_ready_script('CheckDirectoryConfFilesPermissions("'.utils::GetItopVersionWikiSyntax().'")');
}
+ /**
+ * Add post display stuff to the setup screen
+ * @param \SetupPage $oPage
+ *
+ * @return void
+ */
+ public function PreFormDisplay(SetupPage $oPage)
+ {
+ if ($this->bCanMoveForward) {
+ $sBuildConfigFile = APPCONF.ITOP_DEFAULT_ENV.'/'.ITOP_CONFIG_FILE;
+ if (file_exists($sBuildConfigFile)) {
+ $oContextTag = new ContextTag(ContextTag::TAG_SETUP);
+ $sToken = SetupUtils::CreateSetupToken();
+ $oPage->add(
+ <<
+
+
+
+
+HTML
+ );
+ }
+ }
+ }
+
public function CanMoveForward()
{
return $this->bCanMoveForward;
}
+
+ /**
+ */
+ public function CheckInstallation(): void
+ {
+ $aResults = SetupUtils::CheckPhpAndExtensions();
+ $this->bCanMoveForward = true;
+ $this->aInfo = [];
+ $this->aWarnings = [];
+ $this->aErrors = [];
+ foreach ($aResults as $oCheckResult) {
+ switch ($oCheckResult->iSeverity) {
+ case CheckResult::ERROR:
+ $this->aErrors[] = $oCheckResult->sLabel;
+ $this->bCanMoveForward = false;
+ break;
+
+ case CheckResult::WARNING:
+ $this->aWarnings[] = $oCheckResult->sLabel;
+ break;
+
+ case CheckResult::INFO:
+ $this->aInfo[] = $oCheckResult->sLabel;
+ break;
+
+ case CheckResult::TRACE:
+ SetupLog::Ok($oCheckResult->sLabel);
+ break;
+ }
+ }
+ }
}
diff --git a/setup/wizardsteps/WizardStep.php b/setup/wizardsteps/WizardStep.php
index bad393a3e..e7caa22a1 100644
--- a/setup/wizardsteps/WizardStep.php
+++ b/setup/wizardsteps/WizardStep.php
@@ -76,6 +76,10 @@ abstract class WizardStep
{
}
+ public function PreFormDisplay(SetupPage $oPage)
+ {
+ }
+
protected function CheckDependencies()
{
if (is_null($this->bDependencyCheck)) {