- new "logging" system for map/system/signature/connection changes, closed #271

- new map change log to Slack channel
- new "rally point" logging to Slack channel
- new "rally point" poke options (e.g. custom message), closed #295
- new log options for WebSocket installations
- added ship "mass" logging (backend only), #313
- added map logging to Slack, #326
- added "ESI error rate" limit detection
- added "Monolog" as new logging library (Composer dependency)
- added "Swiftmailer" as new eMail library (Composer dependency)
- added Support for Redis session hander (performance boost)
- improved character select panels (visible "online" status)
- improved "activity logging" (more DB columns added to check)
- improved eMail logging (HTML template support)
- improved "delete map" now become "inactive" for some days before delete
- improved character logout handling
- improved /setup page for DB bootstrap (new button for DB create if not exists)
- fixed broken ship tracking (ship name re-added)
- fixed broken ship tracking for multiple chars on different browser tabs
- fixed broken cursor coordinates, closed #518
- fixed null pointer "charactermodel.php->isActive():925" closed #529
- fixed broken "scroll offset", closed #533 closed #534
- Updated "validation" library JS v0.10.1 -> v0.11.9
- Updated ORM Mapper _Cortex_ v1.5.0-dev -> v1.5.0
- and many more....
This commit is contained in:
Exodus4D
2017-10-22 17:58:33 +02:00
parent d00e550972
commit a8edf39697
235 changed files with 10571 additions and 3515 deletions

View File

@@ -8,8 +8,8 @@
namespace Controller\Api;
use Controller;
use Controller\Ccp\Sso;
use Data\Mapper as Mapper;
use lib\Config;
use Model;
class System extends Controller\AccessController {
@@ -65,16 +65,6 @@ class System extends Controller\AccessController {
private $limitQuery = "";
/**
* @param \Base $f3
* @param array $params
*/
function beforeroute(\Base $f3, $params) {
parent::beforeroute($f3, $params);
// set header for all routes
header('Content-type: application/json');
}
/**
* build query
@@ -187,9 +177,12 @@ class System extends Controller\AccessController {
* @param \Base $f3
*/
public function save(\Base $f3){
$newSystemData = [];
$postData = (array)$f3->get('POST');
$return = (object) [];
$return->error = [];
$return->systemData = (object) [];
if(
isset($postData['systemData']) &&
isset($postData['mapData'])
@@ -229,23 +222,21 @@ class System extends Controller\AccessController {
*/
$map = Model\BasicModel::getNew('MapModel');
$map->getById($mapData['id']);
if(
!$map->dry() &&
$map->hasAccess($activeCharacter)
){
if( $map->hasAccess($activeCharacter) ){
// make sure system is not already on map
// --> (e.g. multiple simultaneously save() calls for the same system)
$systemModel = $map->getSystemByCCPId($systemData['systemId']);
if( is_null($systemModel) ){
// system not found on map -> get static system data (CCP DB)
$systemModel = $map->getNewSystem($systemData['systemId']);
$systemModel->createdCharacterId = $activeCharacter;
$systemModel->statusId = isset($systemData['statusId']) ? $systemData['statusId'] : 1;
$defaultStatusId = 1;
}else{
// system already exists (e.g. was inactive)
$systemModel->statusId = isset($systemData['statusId']) ? $systemData['statusId'] : $systemModel->statusId;
$defaultStatusId = $systemModel->statusId;
}
$systemModel->statusId = isset($systemData['statusId']) ? $systemData['statusId'] : $defaultStatusId;
// map is not changeable for a system! (security)
$systemData['mapId'] = $map;
}
@@ -255,28 +246,32 @@ class System extends Controller\AccessController {
// "statusId" was set above
unset($systemData['statusId']);
unset($systemData['mapId']);
unset($systemData['createdCharacterId']);
unset($systemData['updatedCharacterId']);
// set/update system
$systemModel->setData($systemData);
// activate system (e.g. was inactive))
$systemModel->setActive(true);
$systemModel->updatedCharacterId = $activeCharacter;
$systemModel->save();
// get data from "fresh" model (e.g. some relational data has changed: "statusId")
$newSystemModel = Model\BasicModel::getNew('SystemModel');
$newSystemModel->getById( $systemModel->id, 0);
$newSystemModel->clearCacheData();
$newSystemData = $newSystemModel->getData();
// broadcast map changes
$this->broadcastMapData($newSystemModel->mapId);
if($systemModel->save($activeCharacter)){
// get data from "fresh" model (e.g. some relational data has changed: "statusId")
/**
* @var $newSystemModel Model\SystemModel
*/
$newSystemModel = Model\BasicModel::getNew('SystemModel');
$newSystemModel->getById( $systemModel->id, 0);
$newSystemModel->clearCacheData();
$return->systemData = $newSystemModel->getData();
// broadcast map changes
$this->broadcastMapData($newSystemModel->mapId);
}else{
$return->error = $systemModel->getErrors();
}
}
}
echo json_encode($newSystemData);
echo json_encode($return);
}
/**
@@ -358,7 +353,7 @@ class System extends Controller\AccessController {
$return->systemData[] = $systemModel->getData();
}
$f3->set($cacheKey, $return->systemData, $f3->get('PATHFINDER.CACHE.CONSTELLATION_SYSTEMS') );
$f3->set($cacheKey, $return->systemData, Config::getPathfinderData('cache.constellation_systems'));
}
}
@@ -407,6 +402,37 @@ class System extends Controller\AccessController {
echo json_encode($return);
}
/**
* send Rally Point poke
* @param \Base $f3
*/
public function pokeRally(\Base $f3){
$rallyData = (array)$f3->get('POST');
$systemId = (int)$rallyData['systemId'];
$return = (object) [];
if($systemId){
$activeCharacter = $this->getCharacter();
/**
* @var Model\SystemModel $system
*/
$system = Model\BasicModel::getNew('SystemModel');
$system->getById($systemId);
if($system->hasAccess($activeCharacter)){
$rallyData['pokeDesktop'] = $rallyData['pokeDesktop'] === '1';
$rallyData['pokeMail'] = $rallyData['pokeMail'] === '1';
$rallyData['pokeSlack'] = $rallyData['pokeSlack'] === '1';
$rallyData['message'] = trim($rallyData['message']);
$system->sendRallyPoke($rallyData, $activeCharacter);
}
}
echo json_encode($return);
}
/**
* delete systems and all its connections from map
* -> set "active" flag
@@ -428,7 +454,7 @@ class System extends Controller\AccessController {
$map = Model\BasicModel::getNew('MapModel');
$map->getById($mapId);
if( $map->hasAccess($activeCharacter) ){
if($map->hasAccess($activeCharacter)){
foreach($systemIds as $systemId){
if( $system = $map->getSystemById($systemId) ){
// check whether system should be deleted OR set "inactive"
@@ -437,7 +463,7 @@ class System extends Controller\AccessController {
}else{
// keep data -> set "inactive"
$system->setActive(false);
$system->save();
$system->save($activeCharacter);
}
$system->reset();