- new role management for Corporation maps, closed #164
- new role management section for corporations admins - added column "nullable" detection within /setup page for DB diff - added new map icon options options to the map add/edit dialog - refactored setup() method for all tables with static data - fixed broken map icons - fixed broken "drag/select" for systems on map - fixed new "map resize" event for non Chrome browsers - multiple minor improvements and fixes...
This commit is contained in:
@@ -67,6 +67,8 @@ class Setup extends Controller {
|
||||
'Model\SystemStatusModel',
|
||||
'Model\SystemNeighbourModel',
|
||||
'Model\WormholeModel',
|
||||
'Model\RightModel',
|
||||
'Model\RoleModel',
|
||||
|
||||
'Model\CharacterStatusModel',
|
||||
'Model\ConnectionScopeModel',
|
||||
@@ -75,6 +77,8 @@ class Setup extends Controller {
|
||||
'Model\AllianceMapModel',
|
||||
'Model\CorporationMapModel',
|
||||
|
||||
'Model\CorporationRightModel',
|
||||
|
||||
'Model\UserCharacterModel',
|
||||
'Model\CharacterModel',
|
||||
'Model\CharacterAuthenticationModel',
|
||||
@@ -944,10 +948,13 @@ class Setup extends Controller {
|
||||
}
|
||||
|
||||
foreach((array)$data['fieldConf'] as $columnName => $fieldConf){
|
||||
// if 'nullable' key not set in $fieldConf, Column was created with 'nullable' = true (Cortex default)
|
||||
$fieldConf['nullable'] = isset($fieldConf['nullable']) ? (bool)$fieldConf['nullable'] : true;
|
||||
|
||||
$columnStatusCheck = true;
|
||||
$foreignKeyStatusCheck = true;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['requiredType'] = $fieldConf['type'];
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['requiredNullable'] = ($fieldConf['nullable']) ? '1' : '0';
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['requiredIndex'] = ($fieldConf['index']) ? '1' : '0';
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['requiredUnique'] = ($fieldConf['unique']) ? '1' : '0';
|
||||
|
||||
@@ -962,11 +969,14 @@ class Setup extends Controller {
|
||||
$col->copyfrom($currentColumns[$columnName]);
|
||||
|
||||
$currentColType = $currentColumns[$columnName]['type'];
|
||||
$currentNullable = $currentColumns[$columnName]['nullable'];
|
||||
$hasNullable = $currentNullable ? '1' : '0';
|
||||
$currentColIndexData = call_user_func($data['model'] . '::indexExists', [$columnName]);
|
||||
$currentColIndex = is_array($currentColIndexData);
|
||||
$hasIndex = ($currentColIndex) ? '1' : '0';
|
||||
$hasUnique = ($currentColIndexData['unique']) ? '1' : '0';
|
||||
$changedType = false;
|
||||
$changedNullable = false;
|
||||
$changedUnique = false;
|
||||
$changedIndex = false;
|
||||
$addConstraints = [];
|
||||
@@ -974,6 +984,7 @@ class Setup extends Controller {
|
||||
// set (new) column information -------------------------------------------------------
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['exists'] = true;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['currentType'] = $currentColType;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['currentNullable'] = $hasNullable;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['currentIndex'] = $hasIndex;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['currentUnique'] = $hasUnique;
|
||||
|
||||
@@ -1014,6 +1025,13 @@ class Setup extends Controller {
|
||||
$tableStatusCheckCount++;
|
||||
}
|
||||
|
||||
// check if column nullable changed ---------------------------------------------------
|
||||
if( $currentNullable != $fieldConf['nullable']){
|
||||
$changedNullable = true;
|
||||
$columnStatusCheck = false;
|
||||
$tableStatusCheckCount++;
|
||||
}
|
||||
|
||||
// check if column index changed ------------------------------------------------------
|
||||
$indexUpdate = false;
|
||||
$indexKey = (bool)$hasIndex;
|
||||
@@ -1025,7 +1043,7 @@ class Setup extends Controller {
|
||||
$tableStatusCheckCount++;
|
||||
|
||||
$indexUpdate = true;
|
||||
$indexKey = (bool) $fieldConf['index'];
|
||||
$indexKey = (bool)$fieldConf['index'];
|
||||
}
|
||||
|
||||
// check if column unique changed -----------------------------------------------------
|
||||
@@ -1035,7 +1053,7 @@ class Setup extends Controller {
|
||||
$tableStatusCheckCount++;
|
||||
|
||||
$indexUpdate = true;
|
||||
$indexUnique =(bool)$fieldConf['unique'];
|
||||
$indexUnique = (bool)$fieldConf['unique'];
|
||||
}
|
||||
|
||||
// build table with changed columns ---------------------------------------------------
|
||||
@@ -1045,6 +1063,11 @@ class Setup extends Controller {
|
||||
// IMPORTANT: setType is always required! Even if type has not changed
|
||||
$col->type($fieldConf['type']);
|
||||
|
||||
// update "nullable"
|
||||
if($changedNullable){
|
||||
$col->nullable($fieldConf['nullable']);
|
||||
}
|
||||
|
||||
// update/change/delete index/unique keys
|
||||
if($indexUpdate){
|
||||
if($hasIndex){
|
||||
@@ -1077,6 +1100,7 @@ class Setup extends Controller {
|
||||
|
||||
// set (new) column information -------------------------------------------------------
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['changedType'] = $changedType;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['changedNullable'] = $changedNullable;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['changedUnique'] = $changedUnique;
|
||||
$requiredTables[$requiredTableName]['fieldConf'][$columnName]['changedIndex'] = $changedIndex;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user