diff --git a/controllers/BaseController.php b/controllers/BaseController.php index 9b6edc6d..e4555cb4 100644 --- a/controllers/BaseController.php +++ b/controllers/BaseController.php @@ -12,29 +12,30 @@ class BaseController public function __construct(\Slim\Container $container) { #$fp = fopen('/config/data/sql.log', 'a'); #$time_start = microtime(true); - $databaseService = DatabaseService::getInstance(); - $this->Database = $databaseService->GetDbConnection(); - #fwrite($fp, "%%% Login controller - parent construstor database time : " . round((microtime(true) - $time_start),6) . "\n"); - $localizationService = LocalizationService::getInstance(GROCY_CULTURE); - $this->LocalizationService = $localizationService; - #fwrite($fp, "%%% Login controller - parent construstor localisation time : " . round((microtime(true) - $time_start),6) . "\n"); + $this->AppContainer = $container; + #fwrite($fp, "%%% Login controller - parent construstor total time : " . round((microtime(true) - $time_start),6) . "\n"); + #fclose($fp); + } - $applicationService = ApplicationService::getInstance(); - $versionInfo = $applicationService->GetInstalledVersion(); + private function render($response, $page, $data = []) + { + $container = $this->AppContainer; + + $versionInfo = $this->getApplicationService()->GetInstalledVersion(); $container->view->set('version', $versionInfo->Version); $container->view->set('releaseDate', $versionInfo->ReleaseDate); #fwrite($fp, "%%% Login controller - parent construstor application service time : " . round((microtime(true) - $time_start),6) . "\n"); - $container->view->set('__t', function(string $text, ...$placeholderValues) use($localizationService) + $container->view->set('__t', function(string $text, ...$placeholderValues) use($this->getLocalizationService()) { - return $localizationService->__t($text, $placeholderValues); + return $this->getLocalizationService()->__t($text, $placeholderValues); }); - $container->view->set('__n', function($number, $singularForm, $pluralForm) use($localizationService) + $container->view->set('__n', function($number, $singularForm, $pluralForm) use($this->getLocalizationService()) { - return $localizationService->__n($number, $singularForm, $pluralForm); + return $this->getLocalizationService()->__n($number, $singularForm, $pluralForm); }); - $container->view->set('GettextPo', $localizationService->GetPoAsJsonString()); + $container->view->set('GettextPo', $this->getLocalizationService()->GetPoAsJsonString()); $container->view->set('U', function($relativePath, $isResource = false) use($container) { @@ -58,9 +59,15 @@ class BaseController } $container->view->set('featureFlags', $constants); - $container->view->set('userentitiesForSidebar', $this->Database->userentities()->where('show_in_sidebar_menu = 1')->orderBy('name')); - #fwrite($fp, "%%% Login controller - parent construstor view time : " . round((microtime(true) - $time_start),6) . "\n"); + $this->AppContainer = $container; + return $this->AppContainer->view->render($response, $page, $data); + } + + private function renderPage($response, $page, $data = []) + { + $container = $this->AppContainer; + $container->view->set('userentitiesForSidebar', $this->getDatabase()->userentities()->where('show_in_sidebar_menu = 1')->orderBy('name')); try { $usersService = new UsersService(); @@ -79,11 +86,39 @@ class BaseController } $this->AppContainer = $container; - #fwrite($fp, "%%% Login controller - parent construstor total time : " . round((microtime(true) - $time_start),6) . "\n"); - #fclose($fp); + return $this->render($response, $page, $data); + } + + private function getDatabaseService() + { + return DatabaseService::getInstance(); + } + + private function getDatabase() + { + return $this->getDatabaseService()->GetDbConnection(); + } + + private function getLocalizationService() + { + return LocalizationService::getInstance(GROCY_CULTURE); + } + + private function getApplicationservice() + { + return ApplicationService::getInstance(); + } + + private $userfieldsService = null; + + private function getUserfieldsService() + { + if($this->userfieldsService == null) + { + $this->userfieldsService = new UserfieldsService(); + } + return $this->userfieldsService; } protected $AppContainer; - protected $Database; - protected $LocalizationService; } diff --git a/controllers/BatteriesApiController.php b/controllers/BatteriesApiController.php index 0a681473..62fcf524 100644 --- a/controllers/BatteriesApiController.php +++ b/controllers/BatteriesApiController.php @@ -27,7 +27,7 @@ class BatteriesApiController extends BaseApiController } $chargeCycleId = $this->BatteriesService->TrackChargeCycle($args['batteryId'], $trackedTime); - return $this->ApiResponse($this->Database->battery_charge_cycles($chargeCycleId)); + return $this->ApiResponse($this->getDatabase()->battery_charge_cycles($chargeCycleId)); } catch (\Exception $ex) { diff --git a/controllers/BatteriesController.php b/controllers/BatteriesController.php index cf6a4749..8e7624cf 100644 --- a/controllers/BatteriesController.php +++ b/controllers/BatteriesController.php @@ -12,7 +12,7 @@ class BatteriesController extends BaseController { parent::__construct($container); $this->BatteriesService = new BatteriesService(); - $this->UserfieldsService = new UserfieldsService(); + #$this->UserfieldsService = new UserfieldsService(); } protected $BatteriesService; @@ -23,28 +23,28 @@ class BatteriesController extends BaseController $usersService = new UsersService(); $nextXDays = $usersService->GetUserSettings(GROCY_USER_ID)['batteries_due_soon_days']; - return $this->AppContainer->view->render($response, 'batteriesoverview', [ - 'batteries' => $this->Database->batteries()->orderBy('name'), + return $this->renderPage($response, 'batteriesoverview', [ + 'batteries' => $this->getDatabase()->batteries()->orderBy('name'), 'current' => $this->BatteriesService->GetCurrent(), 'nextXDays' => $nextXDays, - 'userfields' => $this->UserfieldsService->GetFields('batteries'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('batteries') + 'userfields' => $this->getUserfieldsService()->GetFields('batteries'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('batteries') ]); } public function TrackChargeCycle(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'batterytracking', [ - 'batteries' => $this->Database->batteries()->orderBy('name') + return $this->renderPage($response, 'batterytracking', [ + 'batteries' => $this->getDatabase()->batteries()->orderBy('name') ]); } public function BatteriesList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'batteries', [ - 'batteries' => $this->Database->batteries()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('batteries'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('batteries') + return $this->renderPage($response, 'batteries', [ + 'batteries' => $this->getDatabase()->batteries()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('batteries'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('batteries') ]); } @@ -52,31 +52,31 @@ class BatteriesController extends BaseController { if ($args['batteryId'] == 'new') { - return $this->AppContainer->view->render($response, 'batteryform', [ + return $this->renderPage($response, 'batteryform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('batteries') + 'userfields' => $this->getUserfieldsService()->GetFields('batteries') ]); } else { - return $this->AppContainer->view->render($response, 'batteryform', [ - 'battery' => $this->Database->batteries($args['batteryId']), + return $this->renderPage($response, 'batteryform', [ + 'battery' => $this->getDatabase()->batteries($args['batteryId']), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('batteries') + 'userfields' => $this->getUserfieldsService()->GetFields('batteries') ]); } } public function Journal(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'batteriesjournal', [ - 'chargeCycles' => $this->Database->battery_charge_cycles()->orderBy('tracked_time', 'DESC'), - 'batteries' => $this->Database->batteries()->orderBy('name') + return $this->renderPage($response, 'batteriesjournal', [ + 'chargeCycles' => $this->getDatabase()->battery_charge_cycles()->orderBy('tracked_time', 'DESC'), + 'batteries' => $this->getDatabase()->batteries()->orderBy('name') ]); } public function BatteriesSettings(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'batteriessettings'); + return $this->renderPage($response, 'batteriessettings'); } } diff --git a/controllers/CalendarController.php b/controllers/CalendarController.php index 5b53e83c..2f893cf2 100644 --- a/controllers/CalendarController.php +++ b/controllers/CalendarController.php @@ -16,7 +16,7 @@ class CalendarController extends BaseController public function Overview(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'calendar', [ + return $this->renderPage($response, 'calendar', [ 'fullcalendarEventSources' => $this->CalendarService->GetEvents() ]); } diff --git a/controllers/ChoresApiController.php b/controllers/ChoresApiController.php index 4fb6b336..64dcc36a 100644 --- a/controllers/ChoresApiController.php +++ b/controllers/ChoresApiController.php @@ -33,7 +33,7 @@ class ChoresApiController extends BaseApiController } $choreExecutionId = $this->ChoresService->TrackChore($args['choreId'], $trackedTime, $doneBy); - return $this->ApiResponse($this->Database->chores_log($choreExecutionId)); + return $this->ApiResponse($this->getDatabase()->chores_log($choreExecutionId)); } catch (\Exception $ex) { @@ -85,7 +85,7 @@ class ChoresApiController extends BaseApiController if ($choreId === null) { - $chores = $this->Database->chores(); + $chores = $this->getDatabase()->chores(); foreach ($chores as $chore) { $this->ChoresService->CalculateNextExecutionAssignment($chore->id); diff --git a/controllers/ChoresController.php b/controllers/ChoresController.php index fe71ff53..64925708 100644 --- a/controllers/ChoresController.php +++ b/controllers/ChoresController.php @@ -23,8 +23,8 @@ class ChoresController extends BaseController $usersService = new UsersService(); $nextXDays = $usersService->GetUserSettings(GROCY_USER_ID)['chores_due_soon_days']; - return $this->AppContainer->view->render($response, 'choresoverview', [ - 'chores' => $this->Database->chores()->orderBy('name'), + return $this->renderPage($response, 'choresoverview', [ + 'chores' => $this->getDatabase()->chores()->orderBy('name'), 'currentChores' => $this->ChoresService->GetCurrent(), 'nextXDays' => $nextXDays, 'userfields' => $this->UserfieldsService->GetFields('chores'), @@ -35,16 +35,16 @@ class ChoresController extends BaseController public function TrackChoreExecution(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'choretracking', [ - 'chores' => $this->Database->chores()->orderBy('name'), - 'users' => $this->Database->users()->orderBy('username') + return $this->renderPage($response, 'choretracking', [ + 'chores' => $this->getDatabase()->chores()->orderBy('name'), + 'users' => $this->getDatabase()->users()->orderBy('username') ]); } public function ChoresList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'chores', [ - 'chores' => $this->Database->chores()->orderBy('name'), + return $this->renderPage($response, 'chores', [ + 'chores' => $this->getDatabase()->chores()->orderBy('name'), 'userfields' => $this->UserfieldsService->GetFields('chores'), 'userfieldValues' => $this->UserfieldsService->GetAllValues('chores') ]); @@ -52,10 +52,10 @@ class ChoresController extends BaseController public function Journal(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'choresjournal', [ - 'choresLog' => $this->Database->chores_log()->orderBy('tracked_time', 'DESC'), - 'chores' => $this->Database->chores()->orderBy('name'), - 'users' => $this->Database->users()->orderBy('username') + return $this->renderPage($response, 'choresjournal', [ + 'choresLog' => $this->getDatabase()->chores_log()->orderBy('tracked_time', 'DESC'), + 'chores' => $this->getDatabase()->chores()->orderBy('name'), + 'users' => $this->getDatabase()->users()->orderBy('username') ]); } @@ -66,31 +66,31 @@ class ChoresController extends BaseController if ($args['choreId'] == 'new') { - return $this->AppContainer->view->render($response, 'choreform', [ + return $this->renderPage($response, 'choreform', [ 'periodTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_PERIOD_TYPE_'), 'mode' => 'create', 'userfields' => $this->UserfieldsService->GetFields('chores'), 'assignmentTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_ASSIGNMENT_TYPE_'), 'users' => $users, - 'products' => $this->Database->products()->orderBy('name') + 'products' => $this->getDatabase()->products()->orderBy('name') ]); } else { - return $this->AppContainer->view->render($response, 'choreform', [ - 'chore' => $this->Database->chores($args['choreId']), + return $this->renderPage($response, 'choreform', [ + 'chore' => $this->getDatabase()->chores($args['choreId']), 'periodTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_PERIOD_TYPE_'), 'mode' => 'edit', 'userfields' => $this->UserfieldsService->GetFields('chores'), 'assignmentTypes' => GetClassConstants('\Grocy\Services\ChoresService', 'CHORE_ASSIGNMENT_TYPE_'), 'users' => $users, - 'products' => $this->Database->products()->orderBy('name') + 'products' => $this->getDatabase()->products()->orderBy('name') ]); } } public function ChoresSettings(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'choressettings'); + return $this->renderPage($response, 'choressettings'); } } diff --git a/controllers/EquipmentController.php b/controllers/EquipmentController.php index 9f1394cb..13e1582f 100644 --- a/controllers/EquipmentController.php +++ b/controllers/EquipmentController.php @@ -16,8 +16,8 @@ class EquipmentController extends BaseController public function Overview(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'equipment', [ - 'equipment' => $this->Database->equipment()->orderBy('name'), + return $this->renderPage($response, 'equipment', [ + 'equipment' => $this->getDatabase()->equipment()->orderBy('name'), 'userfields' => $this->UserfieldsService->GetFields('equipment'), 'userfieldValues' => $this->UserfieldsService->GetAllValues('equipment') ]); @@ -27,15 +27,15 @@ class EquipmentController extends BaseController { if ($args['equipmentId'] == 'new') { - return $this->AppContainer->view->render($response, 'equipmentform', [ + return $this->renderPage($response, 'equipmentform', [ 'mode' => 'create', 'userfields' => $this->UserfieldsService->GetFields('equipment') ]); } else { - return $this->AppContainer->view->render($response, 'equipmentform', [ - 'equipment' => $this->Database->equipment($args['equipmentId']), + return $this->renderPage($response, 'equipmentform', [ + 'equipment' => $this->getDatabase()->equipment($args['equipmentId']), 'mode' => 'edit', 'userfields' => $this->UserfieldsService->GetFields('equipment') ]); diff --git a/controllers/GenericEntityApiController.php b/controllers/GenericEntityApiController.php index 991a7f58..122242b4 100644 --- a/controllers/GenericEntityApiController.php +++ b/controllers/GenericEntityApiController.php @@ -18,7 +18,7 @@ class GenericEntityApiController extends BaseApiController { if ($this->IsValidEntity($args['entity']) && !$this->IsEntityWithPreventedListing($args['entity'])) { - return $this->ApiResponse($this->Database->{$args['entity']}()); + return $this->ApiResponse($this->getDatabase()->{$args['entity']}()); } else { @@ -30,7 +30,7 @@ class GenericEntityApiController extends BaseApiController { if ($this->IsValidEntity($args['entity']) && !$this->IsEntityWithPreventedListing($args['entity'])) { - return $this->ApiResponse($this->Database->{$args['entity']}($args['objectId'])); + return $this->ApiResponse($this->getDatabase()->{$args['entity']}($args['objectId'])); } else { @@ -51,11 +51,11 @@ class GenericEntityApiController extends BaseApiController throw new \Exception('Request body could not be parsed (probably invalid JSON format or missing/wrong Content-Type header)'); } - $newRow = $this->Database->{$args['entity']}()->createRow($requestBody); + $newRow = $this->getDatabase()->{$args['entity']}()->createRow($requestBody); $newRow->save(); $success = $newRow->isClean(); return $this->ApiResponse(array( - 'created_object_id' => $this->Database->lastInsertId() + 'created_object_id' => $this->getDatabase()->lastInsertId() )); } catch (\Exception $ex) @@ -82,7 +82,7 @@ class GenericEntityApiController extends BaseApiController throw new \Exception('Request body could not be parsed (probably invalid JSON format or missing/wrong Content-Type header)'); } - $row = $this->Database->{$args['entity']}($args['objectId']); + $row = $this->getDatabase()->{$args['entity']}($args['objectId']); $row->update($requestBody); $success = $row->isClean(); return $this->EmptyApiResponse($response); @@ -102,7 +102,7 @@ class GenericEntityApiController extends BaseApiController { if ($this->IsValidEntity($args['entity'])) { - $row = $this->Database->{$args['entity']}($args['objectId']); + $row = $this->getDatabase()->{$args['entity']}($args['objectId']); $row->delete(); $success = $row->isClean(); return $this->EmptyApiResponse($response); @@ -119,7 +119,7 @@ class GenericEntityApiController extends BaseApiController { try { - return $this->ApiResponse($this->Database->{$args['entity']}()->where('name LIKE ?', '%' . $args['searchString'] . '%')); + return $this->ApiResponse($this->getDatabase()->{$args['entity']}()->where('name LIKE ?', '%' . $args['searchString'] . '%')); } catch (\PDOException $ex) { diff --git a/controllers/GenericEntityController.php b/controllers/GenericEntityController.php index 65c5cd1d..f30d154c 100644 --- a/controllers/GenericEntityController.php +++ b/controllers/GenericEntityController.php @@ -16,7 +16,7 @@ class GenericEntityController extends BaseController public function UserfieldsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'userfields', [ + return $this->renderPage($response, 'userfields', [ 'userfields' => $this->UserfieldsService->GetAllFields(), 'entities' => $this->UserfieldsService->GetEntities() ]); @@ -24,18 +24,18 @@ class GenericEntityController extends BaseController public function UserentitiesList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'userentities', [ - 'userentities' => $this->Database->userentities()->orderBy('name') + return $this->renderPage($response, 'userentities', [ + 'userentities' => $this->getDatabase()->userentities()->orderBy('name') ]); } public function UserobjectsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - $userentity = $this->Database->userentities()->where('name = :1', $args['userentityName'])->fetch(); + $userentity = $this->getDatabase()->userentities()->where('name = :1', $args['userentityName'])->fetch(); - return $this->AppContainer->view->render($response, 'userobjects', [ + return $this->renderPage($response, 'userobjects', [ 'userentity' => $userentity, - 'userobjects' => $this->Database->userobjects()->where('userentity_id = :1', $userentity->id), + 'userobjects' => $this->getDatabase()->userobjects()->where('userentity_id = :1', $userentity->id), 'userfields' => $this->UserfieldsService->GetFields('userentity-' . $args['userentityName']), 'userfieldValues' => $this->UserfieldsService->GetAllValues('userentity-' . $args['userentityName']) ]); @@ -45,7 +45,7 @@ class GenericEntityController extends BaseController { if ($args['userfieldId'] == 'new') { - return $this->AppContainer->view->render($response, 'userfieldform', [ + return $this->renderPage($response, 'userfieldform', [ 'mode' => 'create', 'userfieldTypes' => $this->UserfieldsService->GetFieldTypes(), 'entities' => $this->UserfieldsService->GetEntities() @@ -53,7 +53,7 @@ class GenericEntityController extends BaseController } else { - return $this->AppContainer->view->render($response, 'userfieldform', [ + return $this->renderPage($response, 'userfieldform', [ 'mode' => 'edit', 'userfield' => $this->UserfieldsService->GetField($args['userfieldId']), 'userfieldTypes' => $this->UserfieldsService->GetFieldTypes(), @@ -66,26 +66,26 @@ class GenericEntityController extends BaseController { if ($args['userentityId'] == 'new') { - return $this->AppContainer->view->render($response, 'userentityform', [ + return $this->renderPage($response, 'userentityform', [ 'mode' => 'create' ]); } else { - return $this->AppContainer->view->render($response, 'userentityform', [ + return $this->renderPage($response, 'userentityform', [ 'mode' => 'edit', - 'userentity' => $this->Database->userentities($args['userentityId']) + 'userentity' => $this->getDatabase()->userentities($args['userentityId']) ]); } } public function UserobjectEditForm(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - $userentity = $this->Database->userentities()->where('name = :1', $args['userentityName'])->fetch(); + $userentity = $this->getDatabase()->userentities()->where('name = :1', $args['userentityName'])->fetch(); if ($args['userobjectId'] == 'new') { - return $this->AppContainer->view->render($response, 'userobjectform', [ + return $this->renderPage($response, 'userobjectform', [ 'userentity' => $userentity, 'mode' => 'create', 'userfields' => $this->UserfieldsService->GetFields('userentity-' . $args['userentityName']) @@ -93,10 +93,10 @@ class GenericEntityController extends BaseController } else { - return $this->AppContainer->view->render($response, 'userobjectform', [ + return $this->renderPage($response, 'userobjectform', [ 'userentity' => $userentity, 'mode' => 'edit', - 'userobject' => $this->Database->userobjects($args['userobjectId']), + 'userobject' => $this->getDatabase()->userobjects($args['userobjectId']), 'userfields' => $this->UserfieldsService->GetFields('userentity-' . $args['userentityName']) ]); } diff --git a/controllers/LoginController.php b/controllers/LoginController.php index e841bb36..909453b2 100644 --- a/controllers/LoginController.php +++ b/controllers/LoginController.php @@ -41,7 +41,7 @@ class LoginController extends BaseController $postParams = $request->getParsedBody(); if (isset($postParams['username']) && isset($postParams['password'])) { - $user = $this->Database->users()->where('username', $postParams['username'])->fetch(); + $user = $this->getDatabase()->users()->where('username', $postParams['username'])->fetch(); $inputPassword = $postParams['password']; $stayLoggedInPermanently = $postParams['stay_logged_in'] == 'on'; @@ -72,7 +72,7 @@ class LoginController extends BaseController public function LoginPage(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'login'); + return $this->renderPage($response, 'login'); } public function Logout(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) diff --git a/controllers/OpenApiController.php b/controllers/OpenApiController.php index 4a736b90..2bbd7819 100644 --- a/controllers/OpenApiController.php +++ b/controllers/OpenApiController.php @@ -2,7 +2,7 @@ namespace Grocy\Controllers; -use \Grocy\Services\ApplicationService; +#use \Grocy\Services\ApplicationService; use \Grocy\Services\ApiKeyService; class OpenApiController extends BaseApiController @@ -17,12 +17,12 @@ class OpenApiController extends BaseApiController public function DocumentationUi(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'openapiui'); + return $this->render($response, 'openapiui'); } public function DocumentationSpec(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - $applicationService = ApplicationService::getInstance(); + $applicationService = $this->getApplicationService; $versionInfo = $applicationService->GetInstalledVersion(); $this->OpenApiSpec->info->version = $versionInfo->Version; @@ -34,9 +34,9 @@ class OpenApiController extends BaseApiController public function ApiKeysList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'manageapikeys', [ - 'apiKeys' => $this->Database->api_keys(), - 'users' => $this->Database->users() + return $this->renderPage($response, 'manageapikeys', [ + 'apiKeys' => $this->getDatabase()->api_keys(), + 'users' => $this->getDatabase()->users() ]); } diff --git a/controllers/RecipesController.php b/controllers/RecipesController.php index 93b20cd3..35071b9b 100644 --- a/controllers/RecipesController.php +++ b/controllers/RecipesController.php @@ -21,11 +21,11 @@ class RecipesController extends BaseController { if (isset($request->getQueryParams()['include-internal'])) { - $recipes = $this->Database->recipes()->orderBy('name'); + $recipes = $this->getDatabase()->recipes()->orderBy('name'); } else { - $recipes = $this->Database->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->orderBy('name'); + $recipes = $this->getDatabase()->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->orderBy('name'); } $recipesResolved = $this->RecipesService->GetRecipesResolved(); @@ -33,21 +33,21 @@ class RecipesController extends BaseController $selectedRecipePositionsResolved = null; if (isset($request->getQueryParams()['recipe'])) { - $selectedRecipe = $this->Database->recipes($request->getQueryParams()['recipe']); - $selectedRecipePositionsResolved = $this->Database->recipes_pos_resolved()->where('recipe_id', $request->getQueryParams()['recipe'])->orderBy('ingredient_group'); + $selectedRecipe = $this->getDatabase()->recipes($request->getQueryParams()['recipe']); + $selectedRecipePositionsResolved = $this->getDatabase()->recipes_pos_resolved()->where('recipe_id', $request->getQueryParams()['recipe'])->orderBy('ingredient_group'); } else { foreach ($recipes as $recipe) { $selectedRecipe = $recipe; - $selectedRecipePositionsResolved = $this->Database->recipes_pos_resolved()->where('recipe_id', $recipe->id)->orderBy('ingredient_group'); + $selectedRecipePositionsResolved = $this->getDatabase()->recipes_pos_resolved()->where('recipe_id', $recipe->id)->orderBy('ingredient_group'); break; } } - $selectedRecipeSubRecipes = $this->Database->recipes()->where('id IN (SELECT includes_recipe_id FROM recipes_nestings_resolved WHERE recipe_id = :1 AND includes_recipe_id != :1)', $selectedRecipe->id)->orderBy('name')->fetchAll(); - $selectedRecipeSubRecipesPositions = $this->Database->recipes_pos_resolved()->where('recipe_id = :1', $selectedRecipe->id)->orderBy('ingredient_group')->fetchAll(); + $selectedRecipeSubRecipes = $this->getDatabase()->recipes()->where('id IN (SELECT includes_recipe_id FROM recipes_nestings_resolved WHERE recipe_id = :1 AND includes_recipe_id != :1)', $selectedRecipe->id)->orderBy('name')->fetchAll(); + $selectedRecipeSubRecipesPositions = $this->getDatabase()->recipes_pos_resolved()->where('recipe_id = :1', $selectedRecipe->id)->orderBy('ingredient_group')->fetchAll(); $includedRecipeIdsAbsolute = array(); $includedRecipeIdsAbsolute[] = $selectedRecipe->id; @@ -56,14 +56,14 @@ class RecipesController extends BaseController $includedRecipeIdsAbsolute[] = $subRecipe->id; } - return $this->AppContainer->view->render($response, 'recipes', [ + return $this->renderPage($response, 'recipes', [ 'recipes' => $recipes, 'recipesResolved' => $recipesResolved, - 'recipePositionsResolved' => $this->Database->recipes_pos_resolved(), + 'recipePositionsResolved' => $this->getDatabase()->recipes_pos_resolved(), 'selectedRecipe' => $selectedRecipe, 'selectedRecipePositionsResolved' => $selectedRecipePositionsResolved, - 'products' => $this->Database->products(), - 'quantityUnits' => $this->Database->quantity_units(), + 'products' => $this->getDatabase()->products(), + 'quantityUnits' => $this->getDatabase()->quantity_units(), 'selectedRecipeSubRecipes' => $selectedRecipeSubRecipes, 'selectedRecipeSubRecipesPositions' => $selectedRecipeSubRecipesPositions, 'includedRecipeIdsAbsolute' => $includedRecipeIdsAbsolute, @@ -71,7 +71,7 @@ class RecipesController extends BaseController 'selectedRecipeTotalCalories' => FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $selectedRecipe->id)->calories, 'userfields' => $this->UserfieldsService->GetFields('recipes'), 'userfieldValues' => $this->UserfieldsService->GetAllValues('recipes'), - 'quantityUnitConversionsResolved' => $this->Database->quantity_unit_conversions_resolved() + 'quantityUnitConversionsResolved' => $this->getDatabase()->quantity_unit_conversions_resolved() ]); } @@ -80,26 +80,26 @@ class RecipesController extends BaseController $recipeId = $args['recipeId']; if ($recipeId == 'new') { - $newRecipe = $this->Database->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->createRow(array( - 'name' => $this->LocalizationService->__t('New recipe') + $newRecipe = $this->getDatabase()->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->createRow(array( + 'name' => $this->getLocalizationService()->__t('New recipe') )); $newRecipe->save(); - $recipeId = $this->Database->lastInsertId(); + $recipeId = $this->getDatabase()->lastInsertId(); } - - return $this->AppContainer->view->render($response, 'recipeform', [ - 'recipe' => $this->Database->recipes($recipeId), - 'recipePositions' => $this->Database->recipes_pos()->where('recipe_id', $recipeId), + + return $this->renderPage($response, 'recipeform', [ + 'recipe' => $this->getDatabase()->recipes($recipeId), + 'recipePositions' => $this->getDatabase()->recipes_pos()->where('recipe_id', $recipeId), 'mode' => 'edit', - 'products' => $this->Database->products(), - 'quantityunits' => $this->Database->quantity_units(), + 'products' => $this->getDatabase()->products(), + 'quantityunits' => $this->getDatabase()->quantity_units(), 'recipePositionsResolved' => $this->RecipesService->GetRecipesPosResolved(), 'recipesResolved' => $this->RecipesService->GetRecipesResolved(), - 'recipes' => $this->Database->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->orderBy('name'), - 'recipeNestings' => $this->Database->recipes_nestings()->where('recipe_id', $recipeId), + 'recipes' => $this->getDatabase()->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->orderBy('name'), + 'recipeNestings' => $this->getDatabase()->recipes_nestings()->where('recipe_id', $recipeId), 'userfields' => $this->UserfieldsService->GetFields('recipes'), - 'quantityUnitConversionsResolved' => $this->Database->quantity_unit_conversions_resolved() + 'quantityUnitConversionsResolved' => $this->getDatabase()->quantity_unit_conversions_resolved() ]); } @@ -107,34 +107,34 @@ class RecipesController extends BaseController { if ($args['recipePosId'] == 'new') { - return $this->AppContainer->view->render($response, 'recipeposform', [ + return $this->renderPage($response, 'recipeposform', [ 'mode' => 'create', - 'recipe' => $this->Database->recipes($args['recipeId']), + 'recipe' => $this->getDatabase()->recipes($args['recipeId']), 'recipePos' => new \stdClass(), - 'products' => $this->Database->products()->orderBy('name'), - 'quantityUnits' => $this->Database->quantity_units()->orderBy('name'), - 'quantityUnitConversionsResolved' => $this->Database->quantity_unit_conversions_resolved() + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'quantityUnits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'quantityUnitConversionsResolved' => $this->getDatabase()->quantity_unit_conversions_resolved() ]); } else { - return $this->AppContainer->view->render($response, 'recipeposform', [ + return $this->renderPage($response, 'recipeposform', [ 'mode' => 'edit', - 'recipe' => $this->Database->recipes($args['recipeId']), - 'recipePos' => $this->Database->recipes_pos($args['recipePosId']), - 'products' => $this->Database->products()->orderBy('name'), - 'quantityUnits' => $this->Database->quantity_units()->orderBy('name'), - 'quantityUnitConversionsResolved' => $this->Database->quantity_unit_conversions_resolved() + 'recipe' => $this->getDatabase()->recipes($args['recipeId']), + 'recipePos' => $this->getDatabase()->recipes_pos($args['recipePosId']), + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'quantityUnits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'quantityUnitConversionsResolved' => $this->getDatabase()->quantity_unit_conversions_resolved() ]); } } public function MealPlan(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - $recipes = $this->Database->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->fetchAll(); + $recipes = $this->getDatabase()->recipes()->where('type', RecipesService::RECIPE_TYPE_NORMAL)->fetchAll(); $events = array(); - foreach($this->Database->meal_plan() as $mealPlanEntry) + foreach($this->getDatabase()->meal_plan() as $mealPlanEntry) { $recipe = FindObjectInArrayByPropertyValue($recipes, 'id', $mealPlanEntry['recipe_id']); $title = ''; @@ -153,10 +153,10 @@ class RecipesController extends BaseController ); } - return $this->AppContainer->view->render($response, 'mealplan', [ + return $this->renderPage($response, 'mealplan', [ 'fullcalendarEventSources' => $events, 'recipes' => $recipes, - 'internalRecipes' => $this->Database->recipes()->whereNot('type', RecipesService::RECIPE_TYPE_NORMAL)->fetchAll(), + 'internalRecipes' => $this->getDatabase()->recipes()->whereNot('type', RecipesService::RECIPE_TYPE_NORMAL)->fetchAll(), 'recipesResolved' => $this->RecipesService->GetRecipesResolved() ]); } diff --git a/controllers/StockApiController.php b/controllers/StockApiController.php index 29ed95d0..fdef2236 100644 --- a/controllers/StockApiController.php +++ b/controllers/StockApiController.php @@ -92,7 +92,7 @@ class StockApiController extends BaseApiController } $bookingId = $this->StockService->AddProduct($args['productId'], $requestBody['amount'], $bestBeforeDate, $transactionType, date('Y-m-d'), $price, $locationId); - return $this->ApiResponse($this->Database->stock_log($bookingId)); + return $this->ApiResponse($this->getDatabase()->stock_log($bookingId)); } catch (\Exception $ex) { @@ -160,7 +160,7 @@ class StockApiController extends BaseApiController } $bookingId = $this->StockService->ConsumeProduct($args['productId'], $requestBody['amount'], $spoiled, $transactionType, $specificStockEntryId, $recipeId); - $result = $this->ApiResponse($this->Database->stock_log($bookingId)); + $result = $this->ApiResponse($this->getDatabase()->stock_log($bookingId)); } catch (\Exception $ex) { @@ -219,7 +219,7 @@ class StockApiController extends BaseApiController } $bookingId = $this->StockService->InventoryProduct($args['productId'], $requestBody['new_amount'], $bestBeforeDate, $locationId, $price); - return $this->ApiResponse($this->Database->stock_log($bookingId)); + return $this->ApiResponse($this->getDatabase()->stock_log($bookingId)); } catch (\Exception $ex) { @@ -263,7 +263,7 @@ class StockApiController extends BaseApiController } $bookingId = $this->StockService->OpenProduct($args['productId'], $requestBody['amount'], $specificStockEntryId); - return $this->ApiResponse($this->Database->stock_log($bookingId)); + return $this->ApiResponse($this->getDatabase()->stock_log($bookingId)); } catch (\Exception $ex) { @@ -467,7 +467,7 @@ class StockApiController extends BaseApiController { try { - $stockLogRow = $this->Database->stock_log($args['bookingId']); + $stockLogRow = $this->getDatabase()->stock_log($args['bookingId']); if ($stockLogRow === null) { diff --git a/controllers/StockController.php b/controllers/StockController.php index fb0cb468..3582b2f9 100644 --- a/controllers/StockController.php +++ b/controllers/StockController.php @@ -16,36 +16,34 @@ class StockController extends BaseController #fclose($fp); parent::__construct($container); $this->StockService = new StockService(); - $this->UserfieldsService = new UserfieldsService(); } protected $StockService; - protected $UserfieldsService; public function Overview(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { $usersService = new UsersService(); $nextXDays = $usersService->GetUserSettings(GROCY_USER_ID)['stock_expring_soon_days']; - return $this->AppContainer->view->render($response, 'stockoverview', [ - 'products' => $this->Database->products()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'locations' => $this->Database->locations()->orderBy('name'), + return $this->renderPage($response, 'stockoverview', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'locations' => $this->getDatabase()->locations()->orderBy('name'), 'currentStock' => $this->StockService->GetCurrentStock(true), 'currentStockLocations' => $this->StockService->GetCurrentStockLocations(), 'missingProducts' => $this->StockService->GetMissingProducts(), 'nextXDays' => $nextXDays, - 'productGroups' => $this->Database->product_groups()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('products'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('products') + 'productGroups' => $this->getDatabase()->product_groups()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('products'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('products') ]); } public function Purchase(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'purchase', [ - 'products' => $this->Database->products()->orderBy('name'), - 'locations' => $this->Database->locations()->orderBy('name') + return $this->renderPage($response, 'purchase', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'locations' => $this->getDatabase()->locations()->orderBy('name') ]); } @@ -54,9 +52,9 @@ class StockController extends BaseController #$fp = fopen('/www/data/sql.log', 'a'); #fwrite($fp, "???executing consume stock"); #$time_start = microtime(true); - $result = $this->AppContainer->view->render($response, 'consume', [ - 'products' => $this->Database->products()->orderBy('name'), - 'recipes' => $this->Database->recipes()->orderBy('name') + $result = $this->renderPage($response, 'consume', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'recipes' => $this->getDatabase()->recipes()->orderBy('name') ]); #fwrite($fp, "???Total execution time in seconds: " . round((microtime(true) - $time_start),6) . "\n"); #fclose($fp); @@ -65,9 +63,9 @@ class StockController extends BaseController public function Inventory(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'inventory', [ - 'products' => $this->Database->products()->orderBy('name'), - 'locations' => $this->Database->locations()->orderBy('name') + return $this->renderPage($response, 'inventory', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'locations' => $this->getDatabase()->locations()->orderBy('name') ]); } @@ -79,65 +77,65 @@ class StockController extends BaseController $listId = $request->getQueryParams()['list']; } - return $this->AppContainer->view->render($response, 'shoppinglist', [ - 'listItems' => $this->Database->shopping_list()->where('shopping_list_id = :1', $listId), - 'products' => $this->Database->products()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), + return $this->renderPage($response, 'shoppinglist', [ + 'listItems' => $this->getDatabase()->shopping_list()->where('shopping_list_id = :1', $listId), + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), 'missingProducts' => $this->StockService->GetMissingProducts(), - 'productGroups' => $this->Database->product_groups()->orderBy('name'), - 'shoppingLists' => $this->Database->shopping_lists()->orderBy('name'), + 'productGroups' => $this->getDatabase()->product_groups()->orderBy('name'), + 'shoppingLists' => $this->getDatabase()->shopping_lists()->orderBy('name'), 'selectedShoppingListId' => $listId, - 'userfields' => $this->UserfieldsService->GetFields('products'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('products') + 'userfields' => $this->getUserfieldsService()->GetFields('products'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('products') ]); } public function ProductsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'products', [ - 'products' => $this->Database->products()->orderBy('name'), - 'locations' => $this->Database->locations()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'productGroups' => $this->Database->product_groups()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('products'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('products') + return $this->renderPage($response, 'products', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'locations' => $this->getDatabase()->locations()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'productGroups' => $this->getDatabase()->product_groups()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('products'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('products') ]); } public function StockSettings(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'stocksettings', [ - 'locations' => $this->Database->locations()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'productGroups' => $this->Database->product_groups()->orderBy('name') + return $this->renderPage($response, 'stocksettings', [ + 'locations' => $this->getDatabase()->locations()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'productGroups' => $this->getDatabase()->product_groups()->orderBy('name') ]); } public function LocationsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'locations', [ - 'locations' => $this->Database->locations()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('locations'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('locations') + return $this->renderPage($response, 'locations', [ + 'locations' => $this->getDatabase()->locations()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('locations'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('locations') ]); } public function ProductGroupsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'productgroups', [ - 'productGroups' => $this->Database->product_groups()->orderBy('name'), - 'products' => $this->Database->products()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('product_groups'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('product_groups') + return $this->renderPage($response, 'productgroups', [ + 'productGroups' => $this->getDatabase()->product_groups()->orderBy('name'), + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('product_groups'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('product_groups') ]); } public function QuantityUnitsList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'quantityunits', [ - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('quantity_units'), - 'userfieldValues' => $this->UserfieldsService->GetAllValues('quantity_units') + return $this->renderPage($response, 'quantityunits', [ + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('quantity_units'), + 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('quantity_units') ]); } @@ -145,30 +143,30 @@ class StockController extends BaseController { if ($args['productId'] == 'new') { - return $this->AppContainer->view->render($response, 'productform', [ - 'locations' => $this->Database->locations()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'productgroups' => $this->Database->product_groups()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('products'), - 'products' => $this->Database->products()->where('parent_product_id IS NULL')->orderBy('name'), + return $this->renderPage($response, 'productform', [ + 'locations' => $this->getDatabase()->locations()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'productgroups' => $this->getDatabase()->product_groups()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('products'), + 'products' => $this->getDatabase()->products()->where('parent_product_id IS NULL')->orderBy('name'), 'isSubProductOfOthers' => false, 'mode' => 'create' ]); } else { - $product = $this->Database->products($args['productId']); + $product = $this->getDatabase()->products($args['productId']); - return $this->AppContainer->view->render($response, 'productform', [ + return $this->renderPage($response, 'productform', [ 'product' => $product, - 'locations' => $this->Database->locations()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'productgroups' => $this->Database->product_groups()->orderBy('name'), - 'userfields' => $this->UserfieldsService->GetFields('products'), - 'products' => $this->Database->products()->where('id != :1 AND parent_product_id IS NULL', $product->id)->orderBy('name'), - 'isSubProductOfOthers' => $this->Database->products()->where('parent_product_id = :1', $product->id)->count() !== 0, + 'locations' => $this->getDatabase()->locations()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'productgroups' => $this->getDatabase()->product_groups()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('products'), + 'products' => $this->getDatabase()->products()->where('id != :1 AND parent_product_id IS NULL', $product->id)->orderBy('name'), + 'isSubProductOfOthers' => $this->getDatabase()->products()->where('parent_product_id = :1', $product->id)->count() !== 0, 'mode' => 'edit', - 'quConversions' => $this->Database->quantity_unit_conversions() + 'quConversions' => $this->getDatabase()->quantity_unit_conversions() ]); } } @@ -177,17 +175,17 @@ class StockController extends BaseController { if ($args['locationId'] == 'new') { - return $this->AppContainer->view->render($response, 'locationform', [ + return $this->renderPage($response, 'locationform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('locations') + 'userfields' => $this->getUserfieldsService()->GetFields('locations') ]); } else { - return $this->AppContainer->view->render($response, 'locationform', [ - 'location' => $this->Database->locations($args['locationId']), + return $this->renderPage($response, 'locationform', [ + 'location' => $this->getDatabase()->locations($args['locationId']), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('locations') + 'userfields' => $this->getUserfieldsService()->GetFields('locations') ]); } } @@ -196,17 +194,17 @@ class StockController extends BaseController { if ($args['productGroupId'] == 'new') { - return $this->AppContainer->view->render($response, 'productgroupform', [ + return $this->renderPage($response, 'productgroupform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('product_groups') + 'userfields' => $this->getUserfieldsService()->GetFields('product_groups') ]); } else { - return $this->AppContainer->view->render($response, 'productgroupform', [ - 'group' => $this->Database->product_groups($args['productGroupId']), + return $this->renderPage($response, 'productgroupform', [ + 'group' => $this->getDatabase()->product_groups($args['productGroupId']), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('product_groups') + 'userfields' => $this->getUserfieldsService()->GetFields('product_groups') ]); } } @@ -215,25 +213,25 @@ class StockController extends BaseController { if ($args['quantityunitId'] == 'new') { - return $this->AppContainer->view->render($response, 'quantityunitform', [ + return $this->renderPage($response, 'quantityunitform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('quantity_units'), - 'pluralCount' => $this->LocalizationService->GetPluralCount(), - 'pluralRule' => $this->LocalizationService->GetPluralDefinition() + 'userfields' => $this->getUserfieldsService()->GetFields('quantity_units'), + 'pluralCount' => $this->getLocalizationService()->GetPluralCount(), + 'pluralRule' => $this->getLocalizationService()->GetPluralDefinition() ]); } else { - $quantityUnit = $this->Database->quantity_units($args['quantityunitId']); + $quantityUnit = $this->getDatabase()->quantity_units($args['quantityunitId']); - return $this->AppContainer->view->render($response, 'quantityunitform', [ + return $this->renderPage($response, 'quantityunitform', [ 'quantityUnit' => $quantityUnit, 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('quantity_units'), - 'pluralCount' => $this->LocalizationService->GetPluralCount(), - 'pluralRule' => $this->LocalizationService->GetPluralDefinition(), - 'defaultQuConversions' => $this->Database->quantity_unit_conversions()->where('from_qu_id = :1 AND product_id IS NULL', $quantityUnit->id), - 'quantityUnits' => $this->Database->quantity_units() + 'userfields' => $this->getUserfieldsService()->GetFields('quantity_units'), + 'pluralCount' => $this->getLocalizationService()->GetPluralCount(), + 'pluralRule' => $this->getLocalizationService()->GetPluralDefinition(), + 'defaultQuConversions' => $this->getDatabase()->quantity_unit_conversions()->where('from_qu_id = :1 AND product_id IS NULL', $quantityUnit->id), + 'quantityUnits' => $this->getDatabase()->quantity_units() ]); } } @@ -242,18 +240,18 @@ class StockController extends BaseController { if ($args['itemId'] == 'new') { - return $this->AppContainer->view->render($response, 'shoppinglistitemform', [ - 'products' => $this->Database->products()->orderBy('name'), - 'shoppingLists' => $this->Database->shopping_lists()->orderBy('name'), + return $this->renderPage($response, 'shoppinglistitemform', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'shoppingLists' => $this->getDatabase()->shopping_lists()->orderBy('name'), 'mode' => 'create' ]); } else { - return $this->AppContainer->view->render($response, 'shoppinglistitemform', [ - 'listItem' => $this->Database->shopping_list($args['itemId']), - 'products' => $this->Database->products()->orderBy('name'), - 'shoppingLists' => $this->Database->shopping_lists()->orderBy('name'), + return $this->renderPage($response, 'shoppinglistitemform', [ + 'listItem' => $this->getDatabase()->shopping_list($args['itemId']), + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'shoppingLists' => $this->getDatabase()->shopping_lists()->orderBy('name'), 'mode' => 'edit' ]); } @@ -263,14 +261,14 @@ class StockController extends BaseController { if ($args['listId'] == 'new') { - return $this->AppContainer->view->render($response, 'shoppinglistform', [ + return $this->renderPage($response, 'shoppinglistform', [ 'mode' => 'create' ]); } else { - return $this->AppContainer->view->render($response, 'shoppinglistform', [ - 'shoppingList' => $this->Database->shopping_lists($args['listId']), + return $this->renderPage($response, 'shoppinglistform', [ + 'shoppingList' => $this->getDatabase()->shopping_lists($args['listId']), 'mode' => 'edit' ]); } @@ -278,19 +276,19 @@ class StockController extends BaseController public function Journal(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'stockjournal', [ - 'stockLog' => $this->Database->stock_log()->orderBy('row_created_timestamp', 'DESC'), - 'products' => $this->Database->products()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name') + return $this->renderPage($response, 'stockjournal', [ + 'stockLog' => $this->getDatabase()->stock_log()->orderBy('row_created_timestamp', 'DESC'), + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name') ]); } public function LocationContentSheet(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'locationcontentsheet', [ - 'products' => $this->Database->products()->orderBy('name'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), - 'locations' => $this->Database->locations()->orderBy('name'), + return $this->renderPage($response, 'locationcontentsheet', [ + 'products' => $this->getDatabase()->products()->orderBy('name'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), + 'locations' => $this->getDatabase()->locations()->orderBy('name'), 'currentStockLocationContent' => $this->StockService->GetCurrentStockLocationContent() ]); } @@ -300,32 +298,32 @@ class StockController extends BaseController $product = null; if (isset($request->getQueryParams()['product'])) { - $product = $this->Database->products($request->getQueryParams()['product']); + $product = $this->getDatabase()->products($request->getQueryParams()['product']); } $defaultQuUnit = null; if (isset($request->getQueryParams()['qu-unit'])) { - $defaultQuUnit = $this->Database->quantity_units($request->getQueryParams()['qu-unit']); + $defaultQuUnit = $this->getDatabase()->quantity_units($request->getQueryParams()['qu-unit']); } if ($args['quConversionId'] == 'new') { - return $this->AppContainer->view->render($response, 'quantityunitconversionform', [ + return $this->renderPage($response, 'quantityunitconversionform', [ 'mode' => 'create', - 'userfields' => $this->UserfieldsService->GetFields('quantity_unit_conversions'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('quantity_unit_conversions'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), 'product' => $product, 'defaultQuUnit' => $defaultQuUnit ]); } else { - return $this->AppContainer->view->render($response, 'quantityunitconversionform', [ - 'quConversion' => $this->Database->quantity_unit_conversions($args['quConversionId']), + return $this->renderPage($response, 'quantityunitconversionform', [ + 'quConversion' => $this->getDatabase()->quantity_unit_conversions($args['quConversionId']), 'mode' => 'edit', - 'userfields' => $this->UserfieldsService->GetFields('quantity_unit_conversions'), - 'quantityunits' => $this->Database->quantity_units()->orderBy('name'), + 'userfields' => $this->getUserfieldsService()->GetFields('quantity_unit_conversions'), + 'quantityunits' => $this->getDatabase()->quantity_units()->orderBy('name'), 'product' => $product, 'defaultQuUnit' => $defaultQuUnit ]); @@ -334,8 +332,8 @@ class StockController extends BaseController public function QuantityUnitPluralFormTesting(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'quantityunitpluraltesting', [ - 'quantityUnits' => $this->Database->quantity_units()->orderBy('name') + return $this->renderPage($response, 'quantityunitpluraltesting', [ + 'quantityUnits' => $this->getDatabase()->quantity_units()->orderBy('name') ]); } } diff --git a/controllers/SystemApiController.php b/controllers/SystemApiController.php index 2e61758d..8f5468f2 100644 --- a/controllers/SystemApiController.php +++ b/controllers/SystemApiController.php @@ -2,20 +2,19 @@ namespace Grocy\Controllers; -use \Grocy\Services\DatabaseService; -use \Grocy\Services\ApplicationService; +#use \Grocy\Services\DatabaseService; +#use \Grocy\Services\ApplicationService; class SystemApiController extends BaseApiController { public function __construct(\Slim\Container $container) { parent::__construct($container); - $this->DatabaseService = DatabaseService::getInstance(); - $this->ApplicationService = ApplicationService::getInstance(); + #$this->ApplicationService = ApplicationService::getInstance(); } - protected $DatabaseService; - protected $ApplicationService; + #protected $DatabaseService; + #protected $ApplicationService; public function GetDbChangedTime(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { @@ -23,14 +22,14 @@ class SystemApiController extends BaseApiController #fwrite($fp, "---- getting db changed time ----\n"); #$time_start = microtime(true); $response = $this->ApiResponse(array( - 'changed_time' => $this->DatabaseService->GetDbChangedTime() + 'changed_time' => $this->getDatabaseService()->GetDbChangedTime() )); #fwrite($fp, "----Total execution time in seconds: " . round((microtime(true) - $time_start),4) . "\n"); #fwrite($fp, "---- time obtained ----\n"); #fclose($fp); return $response; #return $this->ApiResponse(array( - # 'changed_time' => $this->DatabaseService->GetDbChangedTime() + # 'changed_time' => $this->getDatabaseService()->GetDbChangedTime() #)); } @@ -42,7 +41,7 @@ class SystemApiController extends BaseApiController { $requestBody = $request->getParsedBody(); - $this->LocalizationService->CheckAndAddMissingTranslationToPot($requestBody['text']); + $this->getLocalizationService()->CheckAndAddMissingTranslationToPot($requestBody['text']); return $this->EmptyApiResponse($response); } catch (\Exception $ex) @@ -54,6 +53,6 @@ class SystemApiController extends BaseApiController public function GetSystemInfo(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->ApiResponse($this->ApplicationService->GetSystemInfo()); + return $this->ApiResponse($this->getApplicationService()->GetSystemInfo()); } } diff --git a/controllers/SystemController.php b/controllers/SystemController.php index 6b26510b..5990c68a 100644 --- a/controllers/SystemController.php +++ b/controllers/SystemController.php @@ -2,18 +2,18 @@ namespace Grocy\Controllers; -use \Grocy\Services\ApplicationService; +#use \Grocy\Services\ApplicationService; use \Grocy\Services\DatabaseMigrationService; use \Grocy\Services\DemoDataGeneratorService; class SystemController extends BaseController { - protected $ApplicationService; + #protected $ApplicationService; public function __construct(\Slim\Container $container) { parent::__construct($container); - $this->ApplicationService = ApplicationService::getInstance(); + #$this->ApplicationService = ApplicationService::getInstance(); } public function Root(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) @@ -96,14 +96,14 @@ class SystemController extends BaseController public function About(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'about', [ - 'system_info' => $this->ApplicationService->GetSystemInfo(), - 'changelog' => $this->ApplicationService->GetChangelog() + return $this->renderPage($response, 'about', [ + 'system_info' => $this->getApplicationService()->GetSystemInfo(), + 'changelog' => $this->getApplicationService()->GetChangelog() ]); } public function BarcodeScannerTesting(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'barcodescannertesting'); + return $this->renderPage($response, 'barcodescannertesting'); } } diff --git a/controllers/TasksController.php b/controllers/TasksController.php index d53b0420..7de268b6 100644 --- a/controllers/TasksController.php +++ b/controllers/TasksController.php @@ -22,7 +22,7 @@ class TasksController extends BaseController { if (isset($request->getQueryParams()['include_done'])) { - $tasks = $this->Database->tasks()->orderBy('name'); + $tasks = $this->getDatabase()->tasks()->orderBy('name'); } else { @@ -32,11 +32,11 @@ class TasksController extends BaseController $usersService = new UsersService(); $nextXDays = $usersService->GetUserSettings(GROCY_USER_ID)['tasks_due_soon_days']; - return $this->AppContainer->view->render($response, 'tasks', [ + return $this->renderPage($response, 'tasks', [ 'tasks' => $tasks, 'nextXDays' => $nextXDays, - 'taskCategories' => $this->Database->task_categories()->orderBy('name'), - 'users' => $this->Database->users(), + 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), + 'users' => $this->getDatabase()->users(), 'userfields' => $this->UserfieldsService->GetFields('tasks'), 'userfieldValues' => $this->UserfieldsService->GetAllValues('tasks') ]); @@ -46,20 +46,20 @@ class TasksController extends BaseController { if ($args['taskId'] == 'new') { - return $this->AppContainer->view->render($response, 'taskform', [ + return $this->renderPage($response, 'taskform', [ 'mode' => 'create', - 'taskCategories' => $this->Database->task_categories()->orderBy('name'), - 'users' => $this->Database->users()->orderBy('username'), + 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), + 'users' => $this->getDatabase()->users()->orderBy('username'), 'userfields' => $this->UserfieldsService->GetFields('tasks') ]); } else { - return $this->AppContainer->view->render($response, 'taskform', [ - 'task' => $this->Database->tasks($args['taskId']), + return $this->renderPage($response, 'taskform', [ + 'task' => $this->getDatabase()->tasks($args['taskId']), 'mode' => 'edit', - 'taskCategories' => $this->Database->task_categories()->orderBy('name'), - 'users' => $this->Database->users()->orderBy('username'), + 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), + 'users' => $this->getDatabase()->users()->orderBy('username'), 'userfields' => $this->UserfieldsService->GetFields('tasks') ]); } @@ -67,8 +67,8 @@ class TasksController extends BaseController public function TaskCategoriesList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'taskcategories', [ - 'taskCategories' => $this->Database->task_categories()->orderBy('name'), + return $this->renderPage($response, 'taskcategories', [ + 'taskCategories' => $this->getDatabase()->task_categories()->orderBy('name'), 'userfields' => $this->UserfieldsService->GetFields('task_categories'), 'userfieldValues' => $this->UserfieldsService->GetAllValues('task_categories') ]); @@ -78,15 +78,15 @@ class TasksController extends BaseController { if ($args['categoryId'] == 'new') { - return $this->AppContainer->view->render($response, 'taskcategoryform', [ + return $this->renderPage($response, 'taskcategoryform', [ 'mode' => 'create', 'userfields' => $this->UserfieldsService->GetFields('task_categories') ]); } else { - return $this->AppContainer->view->render($response, 'taskcategoryform', [ - 'category' => $this->Database->task_categories($args['categoryId']), + return $this->renderPage($response, 'taskcategoryform', [ + 'category' => $this->getDatabase()->task_categories($args['categoryId']), 'mode' => 'edit', 'userfields' => $this->UserfieldsService->GetFields('task_categories') ]); @@ -95,6 +95,6 @@ class TasksController extends BaseController public function TasksSettings(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'taskssettings'); + return $this->renderPage($response, 'taskssettings'); } } diff --git a/controllers/UsersController.php b/controllers/UsersController.php index ef5fcac4..28ba42e1 100644 --- a/controllers/UsersController.php +++ b/controllers/UsersController.php @@ -6,8 +6,8 @@ class UsersController extends BaseController { public function UsersList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { - return $this->AppContainer->view->render($response, 'users', [ - 'users' => $this->Database->users()->orderBy('username') + return $this->renderPage($response, 'users', [ + 'users' => $this->getDatabase()->users()->orderBy('username') ]); } @@ -15,14 +15,14 @@ class UsersController extends BaseController { if ($args['userId'] == 'new') { - return $this->AppContainer->view->render($response, 'userform', [ + return $this->renderPage($response, 'userform', [ 'mode' => 'create' ]); } else { - return $this->AppContainer->view->render($response, 'userform', [ - 'user' => $this->Database->users($args['userId']), + return $this->renderPage($response, 'userform', [ + 'user' => $this->getDatabase()->users($args['userId']), 'mode' => 'edit' ]); }