- 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:
Mark Friedrich
2018-02-16 17:02:10 +01:00
parent 21df484457
commit ac36d5e074
61 changed files with 1947 additions and 857 deletions

View File

@@ -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;