diff --git a/setup/backup.class.inc.php b/setup/backup.class.inc.php index f2abb661f3..13ba5771ff 100644 --- a/setup/backup.class.inc.php +++ b/setup/backup.class.inc.php @@ -444,7 +444,7 @@ EOF; $sPwd = $oConfig->Get('db_pwd'); $sSource = $oConfig->Get('db_name'); $sTlsEnabled = $oConfig->Get('db_tls.enabled'); - $sTlsCA = $oConfig->Get('db_tls.ca'); + $sTlsCA = $oConfig->Get('db_tls.ca') ?? ''; try { $oMysqli = CMDBSource::GetMysqliInstance( diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index 082220ab79..d0e2c68871 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -1437,7 +1437,7 @@ EOF // Unsupported Password, warn the user $oPage->add_ready_script( <<Error:On Windows, the backup won\'t work because database password contains %, ! or " character'); +$("#db_info").html('
Error:On Windows, the backup won\'t work because database password contains %, ! or " character
'); JS ); } else { diff --git a/setup/unattended-install/unattended-install.php b/setup/unattended-install/unattended-install.php index 01c903adee..3005a41f43 100644 --- a/setup/unattended-install/unattended-install.php +++ b/setup/unattended-install/unattended-install.php @@ -132,7 +132,7 @@ if ($bUseItopConfig && file_exists($sConfigFile)) { $aDBXmlSettings ['prefix'] = $oConfig->Get('db_subname'); $aDBXmlSettings ['db_tls_enabled'] = $oConfig->Get('db_tls.enabled'); //cannot be null or infinite loop triggered! - $aDBXmlSettings ['db_tls_ca'] = $oConfig->Get('db_tls.ca') ?? ""; + $aDBXmlSettings ['db_tls_ca'] = $oConfig->Get('db_tls.ca') ?? ''; $oParams->Set('database', $aDBXmlSettings); $aFields = [ diff --git a/setup/wizardsteps/WizStepDetectedInfo.php b/setup/wizardsteps/WizStepDetectedInfo.php index f2b0a0aca0..b85c57362c 100644 --- a/setup/wizardsteps/WizStepDetectedInfo.php +++ b/setup/wizardsteps/WizStepDetectedInfo.php @@ -17,6 +17,7 @@ * * You should have received a copy of the GNU Affero General Public License */ + use Combodo\iTop\Application\WebPage\WebPage; /** @@ -205,7 +206,7 @@ EOF $sUpgradeDMVersionToDisplay = utils::HtmlEntities($sUpgradeDMVersion); $oPage->add( <<The datamodel will be upgraded from version $sInstalledDataModelVersion to version $sUpgradeDMVersion. +
The datamodel will be upgraded from version $sInstalledDataModelVersion to version $sUpgradeDMVersion.
@@ -214,15 +215,59 @@ HTML } + $oPage->add('
'); + + $sDBServer = json_encode($this->oWizard->GetParameter('db_server', '')); + $sDBUser = json_encode($this->oWizard->GetParameter('db_user', '')); + $sDBPwd = json_encode($this->oWizard->GetParameter('db_pwd', '')); + $sDBName = json_encode($this->oWizard->GetParameter('db_name', '')); + $sTlsCA = json_encode($this->oWizard->GetParameter('db_tls_ca', '')); + $sTlsEnabled = $this->oWizard->GetParameter('db_tls_enabled', false) ? 1 : 0; + $oPage->add_ready_script( <<oWizard->GetParameter('db_name', '').$this->oWizard->GetParameter('db_prefix', ''), + 'cron'.$sDBName.$this->oWizard->GetParameter('db_prefix', ''), $this->oWizard->GetParameter('db_server', ''), $this->oWizard->GetParameter('db_user', ''), $this->oWizard->GetParameter('db_pwd', ''), @@ -235,6 +280,15 @@ EOF } } + public function AsyncAction(WebPage $oPage, $sCode, $aParameters) + { + switch ($sCode) { + case 'check_db': + SetupUtils::AsyncCheckDB($oPage, $aParameters); + break; + } + } + public function CanMoveForward() { return $this->bCanMoveForward; diff --git a/setup/wizardsteps/WizStepInstallOrUpgrade.php b/setup/wizardsteps/WizStepInstallOrUpgrade.php deleted file mode 100644 index 2638e62ddb..0000000000 --- a/setup/wizardsteps/WizStepInstallOrUpgrade.php +++ /dev/null @@ -1,216 +0,0 @@ -oWizard->SaveParameter('previous_version_dir', ''); - $this->oWizard->SaveParameter('db_server', ''); - $this->oWizard->SaveParameter('db_user', ''); - $this->oWizard->SaveParameter('db_pwd', ''); - $this->oWizard->SaveParameter('db_name', ''); - $this->oWizard->SaveParameter('db_prefix', ''); - $this->oWizard->SaveParameter('db_tls_enabled', false); - $this->oWizard->SaveParameter('db_tls_ca', ''); - - if ($sInstallMode == 'install') { - $this->oWizard->SetParameter('install_mode', 'install'); - $sFullSourceDir = SetupUtils::GetLatestDataModelDir(); - $this->oWizard->SetParameter('source_dir', $sFullSourceDir); - $this->oWizard->SetParameter('datamodel_version', SetupUtils::GetDataModelVersion($sFullSourceDir)); - $sNextStep = WizStepLicense::class; - } else { - $this->oWizard->SetParameter('install_mode', 'upgrade'); - $sNextStep = WizStepDetectedInfo::class; - - } - return new WizardState($sNextStep); - } - - public function Display(SetupPage $oPage): void - { - $sInstallMode = $this->oWizard->GetParameter('install_mode', ''); - $sDBServer = $this->oWizard->GetParameter('db_server', ''); - $sDBUser = $this->oWizard->GetParameter('db_user', ''); - $sDBPwd = $this->oWizard->GetParameter('db_pwd', ''); - $sDBName = $this->oWizard->GetParameter('db_name', ''); - $sDBPrefix = $this->oWizard->GetParameter('db_prefix', ''); - $sTlsEnabled = $this->oWizard->GetParameter('db_tls_enabled', false); - $sTlsCA = $this->oWizard->GetParameter('db_tls_ca', ''); - $sPreviousVersionDir = ''; - if ($sInstallMode == '') { - $aPreviousInstance = SetupUtils::GetPreviousInstance(APPROOT); - if ($aPreviousInstance['found']) { - $sInstallMode = 'upgrade'; - $sDBServer = $aPreviousInstance['db_server']; - $sDBUser = $aPreviousInstance['db_user']; - $sDBPwd = $aPreviousInstance['db_pwd']; - $sDBName = $aPreviousInstance['db_name']; - $sDBPrefix = $aPreviousInstance['db_prefix']; - $sTlsEnabled = $aPreviousInstance['db_tls_enabled']; - $sTlsCA = $aPreviousInstance['db_tls_ca']; - $this->oWizard->SaveParameter('graphviz_path', $aPreviousInstance['graphviz_path']); - $sPreviousVersionDir = APPROOT; - } else { - $sInstallMode = 'install'; - } - } - $sPreviousVersionDir = $this->oWizard->GetParameter('previous_version_dir', $sPreviousVersionDir); - - $sUpgradeInfoStyle = ''; - if ($sInstallMode == 'install') { - $sUpgradeInfoStyle = ' style="display: none;" '; - } - $oPage->add('
What do you want to do?
'); - $sChecked = ($sInstallMode == 'install') ? ' checked ' : ''; - $oPage->p(''); - $sChecked = ($sInstallMode == 'upgrade') ? ' checked ' : ''; - $sDisabled = (($sInstallMode == 'install') && (empty($sPreviousVersionDir))) ? ' disabled' : ''; - $oPage->p(''); - - $sUpgradeDir = utils::HtmlEntities($sPreviousVersionDir); - $oPage->add( - << -
Location on the disk: -
-HTML - ); - - SetupUtils::DisplayDBParameters( - $oPage, - false, - $sDBServer, - $sDBUser, - $sDBPwd, - $sDBName, - $sDBPrefix, - $sTlsEnabled, - $sTlsCA - ); - - $oPage->add(''); - //$oPage->add(''); - $oPage->add_ready_script( - <<add_ready_script( - <<add_ready_script( - <<add_ready_script( - << "WizStepWelcome","state" => ""], - ["class" => "WizStepInstallOrUpgrade","state" => ""], ["class" => "WizStepDetectedInfo","state" => ""], ["class" => "WizStepUpgradeMiscParams","state" => ""], ]; diff --git a/setup/wizardsteps/WizStepWelcome.php b/setup/wizardsteps/WizStepWelcome.php index 534286270a..56641b46ec 100644 --- a/setup/wizardsteps/WizStepWelcome.php +++ b/setup/wizardsteps/WizStepWelcome.php @@ -40,7 +40,7 @@ class WizStepWelcome extends WizardStep } /** - * Returns the label for the " Next >> " button + * Returns the label for the "Next >>" button * @return string The label for the button */ public function GetNextButtonLabel() @@ -50,12 +50,17 @@ class WizStepWelcome extends WizardStep public function GetPossibleSteps() { - return [WizStepInstallOrUpgrade::class]; + return [WizStepDetectedInfo::class, WizStepLicense::class]; } public function UpdateWizardStateAndGetNextStep($bMoveForward = true): WizardState { - return new WizardState(WizStepInstallOrUpgrade::class); + if ($this->oWizard->GetParameter('install_mode', 'install') === 'install') { + + return new WizardState(WizStepLicense::class); + } + + return new WizardState(WizStepDetectedInfo::class); } public function Display(SetupPage $oPage): void @@ -63,6 +68,25 @@ class WizStepWelcome extends WizardStep $this->oWizard->EraseParameters(); $this->oWizard->SetWizardSteps([]); + $aPreviousInstance = SetupUtils::GetPreviousInstance(APPROOT); + if ($aPreviousInstance['found']) { + $this->oWizard->SetParameter('install_mode', 'upgrade'); + $this->oWizard->SetParameter('db_server', $aPreviousInstance['db_server']); + $this->oWizard->SetParameter('db_user', $aPreviousInstance['db_user']); + $this->oWizard->SetParameter('db_pwd', $aPreviousInstance['db_pwd']); + $this->oWizard->SetParameter('db_name', $aPreviousInstance['db_name']); + $this->oWizard->SetParameter('db_prefix', $aPreviousInstance['db_prefix']); + $this->oWizard->SetParameter('db_tls_enabled', $aPreviousInstance['db_tls_enabled']); + $this->oWizard->SetParameter('db_tls_ca', $aPreviousInstance['db_tls_ca'] ?? ''); + $this->oWizard->SetParameter('graphviz_path', $aPreviousInstance['graphviz_path']); + } else { + $this->oWizard->SetParameter('install_mode', 'install'); + $sFullSourceDir = SetupUtils::GetLatestDataModelDir(); + $this->oWizard->SetParameter('source_dir', $sFullSourceDir); + $this->oWizard->SetParameter('datamodel_version', SetupUtils::GetDataModelVersion($sFullSourceDir)); + } + $this->oWizard->SetParameter('previous_version_dir', APPROOT); + // Store the misc_options for the future... $aMiscOptions = utils::ReadParam('option', [], false, 'raw_data'); $sMiscOptions = $this->oWizard->GetParameter('misc_options', json_encode($aMiscOptions)); diff --git a/setup/wizardsteps/WizardStep.php b/setup/wizardsteps/WizardStep.php index 8e25064a26..bfbe5d6098 100644 --- a/setup/wizardsteps/WizardStep.php +++ b/setup/wizardsteps/WizardStep.php @@ -24,7 +24,6 @@ * Steps order (can be retrieved using \WizardController::DumpStructure) : * * WizStepWelcome - * WizStepInstallOrUpgrade * + + * | | * v +-----> diff --git a/setup/wizardsteps_autoload.php b/setup/wizardsteps_autoload.php index 7ab7353fc7..9e218a0fe3 100644 --- a/setup/wizardsteps_autoload.php +++ b/setup/wizardsteps_autoload.php @@ -4,7 +4,6 @@ require_once(APPROOT.'setup/wizardsteps/WizardState.php'); require_once(APPROOT.'setup/wizardsteps/WizardStep.php'); require_once(APPROOT.'setup/wizardsteps/AbstractWizStepInstall.php'); require_once(APPROOT.'setup/wizardsteps/WizStepWelcome.php'); -require_once(APPROOT.'setup/wizardsteps/WizStepInstallOrUpgrade.php'); require_once(APPROOT.'setup/wizardsteps/WizStepDetectedInfo.php'); require_once(APPROOT.'setup/wizardsteps/WizStepLicense.php'); require_once(APPROOT.'setup/wizardsteps/WizStepLicense2.php'); diff --git a/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php b/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php index 9d91d50aa2..ed9878573e 100644 --- a/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php @@ -1420,7 +1420,6 @@ HTML, $expected = [ ["class" => "WizStepWelcome","state" => ""], - ["class" => "WizStepInstallOrUpgrade","state" => ""], ["class" => "WizStepDetectedInfo","state" => ""], ["class" => "WizStepUpgradeMiscParams","state" => ""], ]; @@ -1441,7 +1440,6 @@ HTML, $expected = [ ["class" => "WizStepWelcome","state" => ""], - ["class" => "WizStepInstallOrUpgrade","state" => ""], ["class" => "WizStepDetectedInfo","state" => ""], ["class" => "WizStepUpgradeMiscParams","state" => ""], ];