diff --git a/build/api/module/casController.php b/build/api/module/casController.php index 2258a68..cb25ec9 100644 --- a/build/api/module/casController.php +++ b/build/api/module/casController.php @@ -146,22 +146,28 @@ class casController{ $_SESSION['AvailableDepartments'] = $departments; /* (4) Choose first department by default */ - $_SESSION['CurrentDatabase'] = $departments[0]['versions'][0]['dbName']; $_SESSION['CurrentDepartmentId'] = $departments[0]['idDep']; $_SESSION['VERSION'] = [ 'list' => $departments[0]['versions'], 'current' => null ]; - /* (5) Select actual version */ + /* (5) select version with default = 1 */ foreach($_SESSION['VERSION']['list'] as $v){ - if( $v['dbName'] == $_SESSION['CurrentDatabase'] ){ + if( $v['default'] == 1 ){ $_SESSION['VERSION']['current'] = intval($v['iddatabase']); + $_SESSION['CurrentDatabase'] = $v['dbName']; break; } } - /* (6) Use this department's database */ + /* (6) if no default -> select first */ + if( !is_int($_SESSION['VERSION']) ){ + $_SESSION['VERSION']['current'] = intval($_SESSION['VERSION']['list'][0]['iddatabase']); + $_SESSION['CurrentDatabase'] = $_SESSION['VERSION']['list'][0]['dbName']; + } + + /* (7) Use this department's database */ Repo::switchDatabase($_SESSION['CurrentDatabase']); diff --git a/build/api/module/department/versionController.php b/build/api/module/department/versionController.php index 35a3a8f..327f136 100644 --- a/build/api/module/department/versionController.php +++ b/build/api/module/department/versionController.php @@ -48,8 +48,35 @@ class versionController{ $version = null; extract($args); - /* (1) Dispatch 'deleteVersion' result */ - return [ 'deleted' => Repo::getRepo("meta")->deleteVersion($version) ]; + /* (1) Try to delete */ + $deleted = Repo::getRepo("meta")->deleteVersion($version); + + if( !$deleted ) + return ['error' => new Error(Err::ModuleError)]; + + /* (2) Update version list */ + $_SESSION['VERSION']['list'] = Repo::getRepo("meta")->getAllVersions($_SESSION['CurrentDepartmentId']); + + /* (3) Update current */ + $_SESSION['VERSION']['current'] = null; + + // select version with default = 1 + foreach($_SESSION['VERSION']['list'] as $v){ + if( $v['default'] == 1 ){ + $_SESSION['VERSION']['current'] = intval($v['iddatabase']); + $_SESSION['CurrentDatabase'] = $v['dbName']; + break; + } + } + + // if no default -> select first + if( !is_int($_SESSION['VERSION']) ){ + $_SESSION['VERSION']['current'] = intval($_SESSION['VERSION']['list'][0]['iddatabase']); + $_SESSION['CurrentDatabase'] = $_SESSION['VERSION']['list'][0]['dbName']; + } + + return ['deleted' => true]; + } diff --git a/build/database/repo/meta.php b/build/database/repo/meta.php index 5fdb278..77cda43 100644 --- a/build/database/repo/meta.php +++ b/build/database/repo/meta.php @@ -262,12 +262,13 @@ class meta extends Repo_i { $versionData = $st->fetch(); - if($versionData == false){ + if( !is_array($versionData) ){ return false; } //delete database - $this->pdo->exec("DROP DATABASE {$versionData["dbName"]}"); + $versionDatabase = $versionData['dbName']; + $this->pdo->exec("DROP DATABASE $versionDatabase;"); //remove from meta $st = $this->pdo->prepare("DELETE FROM meta_vhost.`databases` WHERE iddatabase = :id");