diff --git a/install-new/controllers/http/database.php b/install-new/controllers/http/database.php index 3027b9f05..5fdb969f9 100644 --- a/install-new/controllers/http/database.php +++ b/install-new/controllers/http/database.php @@ -87,7 +87,8 @@ class InstallControllerHttpDatabase extends InstallControllerHttp $this->session->database_login, $this->session->database_password, $this->session->database_prefix, - $this->session->database_engine + $this->session->database_engine, + $this->session->database_clear ); return count($this->errors) ? false : true; @@ -112,8 +113,9 @@ class InstallControllerHttpDatabase extends InstallControllerHttp $password = Tools::getValue('dbPassword'); $prefix = Tools::getValue('db_prefix'); $engine = Tools::getValue('dbEngine'); + $clear = Tools::getValue('clear'); - $errors = $this->model_database->testDatabaseSettings($server, $database, $login, $password, $prefix, $engine); + $errors = $this->model_database->testDatabaseSettings($server, $database, $login, $password, $prefix, $engine, $clear); $this->ajaxJsonAnswer( (count($errors)) ? false : true, diff --git a/install-new/models/database.php b/install-new/models/database.php index 24a8c57f9..4e7dd4f50 100644 --- a/install-new/models/database.php +++ b/install-new/models/database.php @@ -36,9 +36,10 @@ class InstallModelDatabase extends InstallAbstractModel * @param string $password * @param string $prefix * @param string $engine + * @param bool $clear * @return array List of errors */ - public function testDatabaseSettings($server, $database, $login, $password, $prefix, $engine) + public function testDatabaseSettings($server, $database, $login, $password, $prefix, $engine, $clear) { $errors = array(); @@ -68,7 +69,7 @@ class InstallModelDatabase extends InstallAbstractModel $errors[] = $this->language->l('Cannot convert database data to utf-8'); // Check if a table with same prefix already exists - if (Db::hasTableWithSamePrefix($server, $login, $password, $database, $prefix)) + if (!$clear && Db::hasTableWithSamePrefix($server, $login, $password, $database, $prefix)) $errors[] = $this->language->l('At least one table with same prefix was already found, please change your prefix or drop your database'); break; diff --git a/install-new/theme/js/database.js b/install-new/theme/js/database.js index 029bebdc6..0e3ed2d8c 100644 --- a/install-new/theme/js/database.js +++ b/install-new/theme/js/database.js @@ -13,7 +13,8 @@ $(document).ready(function() 'dbLogin': $('#dbLogin').val(), 'dbPassword': $('#dbPassword').val(), 'dbEngine': $('#dbEngine').val(), - 'db_prefix': $('#db_prefix').val() + 'db_prefix': $('#db_prefix').val(), + 'clear': $('#db_clear').attr('checked') ? '1' : '0' }, dataType: 'json', cache: false, diff --git a/install-new/theme/js/process.js b/install-new/theme/js/process.js index a1dd78ecb..a1dbb201c 100644 --- a/install-new/theme/js/process.js +++ b/install-new/theme/js/process.js @@ -35,7 +35,7 @@ function process_install(step) success: function(json) { // No error during this step - if (json.success) + if (json && json.success) { $('#process_step_'+step.key).show().addClass('success'); current_step++; @@ -60,7 +60,7 @@ function process_install(step) // An error occured during this step else { - install_error(step, json.message); + install_error(step, (json) ? json.message : ''); } }, // An error HTTP (page not found, json not valid, etc.) occured during this step