diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index 04762e14f..4e3598c6c 100644 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -231,6 +231,34 @@ class AppController extends Controller } */ + public function addAdminError($controller, $action, $returnTable, $state_user_id) { + if(!is_array($returnTable)) { + $this->addAdminError('AppController', 'addAdminError', ['state' => 'error', 'msg' => 'returnTable isn\'t array', 'details' => gettype($returnTable)]); + return false; + } + $adminErrorTable = TableRegistry::getTableLocator()->get('AdminErrors'); + $adminErrorEntity = $adminErrorTable->newEntity(); + $adminErrorEntity->state_user_id = $state_user_id; + $adminErrorEntity->controller = $controller; + $adminErrorEntity->action = $action; + $adminErrorEntity->state = $returnTable->state; + if(isset($returnTable['msg'])) { + $adminErrorEntity->msg = $returnTable['msg']; + } + if(isset($returnTable['details'])) { + $adminErrorEntity->details = $returnTable['details']; + } + if(!$adminErrorTable->save($adminErrorEntity)) { + $this->Flash->error(__('Serious error, couldn\'t save to db, please write the admin: ' . $this->getAdminEmailLink())); + } + return true; + } + + public function getAdminEmailLink($text) { + $serverAdminEmail = Configure::read('ServerAdminEmail'); + return ''. $serverAdminEmail . ''; + } + public function returnJsonEncoded($json) { $this->autoRender = false; $response = $this->response->withType('application/json'); diff --git a/src/Controller/DashboardController.php b/src/Controller/DashboardController.php index 5f7118ef8..8e5b44152 100644 --- a/src/Controller/DashboardController.php +++ b/src/Controller/DashboardController.php @@ -3,7 +3,7 @@ namespace App\Controller; use App\Controller\AppController; //use Cake\Routing\Router; -//use Cake\ORM\TableRegistry; +use Cake\ORM\TableRegistry; /** * StateUsers Controller @@ -49,8 +49,10 @@ class DashboardController extends AppController { $startTime = microtime(true); $this->viewBuilder()->setLayout('frontend'); + $adminErrorsTable = TableRegistry::getTableLocator()->get('AdminErrors'); + $adminErrorCount = $adminErrorsTable->find('all')->count(); - + $this->set('adminErrorCount', $adminErrorCount); $this->set('timeUsed', microtime(true) - $startTime); } diff --git a/src/Controller/TransactionCreationsController.php b/src/Controller/TransactionCreationsController.php index 651cda40a..06768ef74 100644 --- a/src/Controller/TransactionCreationsController.php +++ b/src/Controller/TransactionCreationsController.php @@ -243,6 +243,7 @@ class TransactionCreationsController extends AppController $timeUsed = microtime(true) - $startTime; $this->set(compact('timeUsed', 'stateUsers', 'creationForm', 'possibleReceiver')); + $this->set('activeUser', $user); $this->set('creationForm', $creationForm); $this->set('timeUsed', microtime(true) - $startTime); diff --git a/src/Template/Dashboard/server_index.ctp b/src/Template/Dashboard/server_index.ctp index 552898569..a18ec3aa6 100644 --- a/src/Template/Dashboard/server_index.ctp +++ b/src/Template/Dashboard/server_index.ctp @@ -23,4 +23,8 @@ $this->assign('title', __('Willkommen')); ['class' => 'grd-nav-bn grd-nav-bn-large'] );?> + = $this->Html->link( + __('Fehler') . ' (' . $adminErrorCount . ')', + ['controller' => 'AdminErrors'], ['class' => 'grd-nav-bn']); + ?> \ No newline at end of file diff --git a/src/Template/TransactionCreations/create_multi.ctp b/src/Template/TransactionCreations/create_multi.ctp index fa2547436..f6001bdea 100644 --- a/src/Template/TransactionCreations/create_multi.ctp +++ b/src/Template/TransactionCreations/create_multi.ctp @@ -42,9 +42,17 @@ $this->assign('title', __('Schöpfungstransaktion'));