public static function AsyncCheckDB($oPage, $aParameters) { $sDBServer = $aParameters['db_server']; $sDBUser = $aParameters['db_user']; $sDBPwd = $aParameters['db_pwd']; $sDBName = $aParameters['db_name']; $oPage->add_ready_script('oXHRCheckDB = null;'); $checks = SetupUtils::CheckServerConnection($sDBServer, $sDBUser, $sDBPwd); if ($checks === false) { // Connection failed, disable the "Next" button $oPage->add_ready_script('$("#wiz_form").data("db_connection", "error");'); $oPage->add_ready_script('$("#db_info").html("No connection to the database...");'); } else { $aErrors = array(); $aWarnings = array(); foreach ($checks['checks'] as $oCheck) { if ($oCheck->iSeverity == CheckResult::ERROR) { $aErrors[] = $oCheck->sLabel; } else { if ($oCheck->iSeverity == CheckResult::WARNING) { $aWarnings[] = $oCheck->sLabel; } } } if (count($aErrors) > 0) { $oPage->add_ready_script('$("#wiz_form").data("db_connection", "error");'); $oPage->add_ready_script('$("#db_info").html(\'<img src="../images/validation_error.png"/> <b>Error:</b> ' . htmlentities(implode('<br/>', $aErrors), ENT_QUOTES, 'UTF-8') . '\');'); } else { if (count($aWarnings) > 0) { $oPage->add_ready_script('$("#wiz_form").data("db_connection", "");'); $oPage->add_ready_script('$("#db_info").html(\'<img src="../images/error.png"/> <b>Warning:</b> ' . htmlentities(implode('<br/>', $aWarnings), ENT_QUOTES, 'UTF-8') . '\');'); } else { $oPage->add_ready_script('$("#wiz_form").data("db_connection", "");'); $oPage->add_ready_script('$("#db_info").html(\'<img src="../images/validation_ok.png"/> Database server connection Ok.\');'); } } if ($checks['databases'] == null) { $sDBNameInput = '<input id="db_name" name="db_name" size="15" maxlen="32" value="' . htmlentities($sDBName, ENT_QUOTES, 'UTF-8') . '"/><span style="width:20px;" id="v_db_name"></span>'; $oPage->add_ready_script('$("#table_info").html(\'<img src="../images/error.png"/> Not enough rights to enumerate the databases\');'); } else { $sDBNameInput = '<select id="db_name" name="db_name">'; foreach ($checks['databases'] as $sDatabaseName) { if ($sDatabaseName != 'information_schema') { $sEncodedName = htmlentities($sDatabaseName, ENT_QUOTES, 'UTF-8'); $sSelected = $sDatabaseName == $sDBName ? ' selected ' : ''; $sDBNameInput .= '<option value="' . $sEncodedName . '"' . $sSelected . '>' . $sEncodedName . '</option>'; } } $sDBNameInput .= '</select>'; } $oPage->add_ready_script('$("#db_name_container").html("' . addslashes($sDBNameInput) . '");'); $oPage->add_ready_script('$("#db_name").bind("click keyup change", function() { $("#existing_db").attr("checked", "checked"); WizardUpdateButtons(); });'); } $oPage->add_ready_script('WizardUpdateButtons();'); }