From d3e2eab55f626a269453f26b4d51bb7d22e58e17 Mon Sep 17 00:00:00 2001
From: Matthias Adrowski <matthias.adrowski@sgalinski.de>
Date: Tue, 8 Feb 2022 13:58:01 +0100
Subject: [PATCH] [TASK] get 8.1 frontend working

---
 Classes/Controller/JoblistController.php    | 17 ++++++++++++-----
 Classes/Domain/Repository/JobRepository.php | 10 +++++-----
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/Classes/Controller/JoblistController.php b/Classes/Controller/JoblistController.php
index aa1fd5a6..5666b370 100644
--- a/Classes/Controller/JoblistController.php
+++ b/Classes/Controller/JoblistController.php
@@ -134,7 +134,9 @@ class JoblistController extends ActionController {
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException
 	 */
 	public function initializeIndexAction() {
-		$currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgjobs_pagebrowser')['currentPage'];
+		$currentPageBrowserPage = GeneralUtility::_GP('tx_sgjobs_pagebrowser') ? (int) GeneralUtility::_GP(
+			'tx_sgjobs_pagebrowser'
+		)['currentPage'] : 0;
 		if ($currentPageBrowserPage > 0) {
 			$this->request->setArgument('currentPageBrowserPage', $currentPageBrowserPage);
 		}
@@ -151,7 +153,8 @@ class JoblistController extends ActionController {
 	 * @throws ImmediateResponseException
 	 * @throws \TYPO3\CMS\Core\Package\Exception
 	 */
-	public function indexAction(array $filters = [], int $jobId = NULL, int $currentPageBrowserPage = 0): ?\Psr\Http\Message\ResponseInterface {
+	public function indexAction(array $filters = [], int $jobId = NULL, int $currentPageBrowserPage = 0
+	): ?\Psr\Http\Message\ResponseInterface {
 		if ($filters) {
 			$this->view->assign('selectedCountry', $filters['filterCountry']);
 			$this->view->assign('selectedCompany', $filters['filterCompany']);
@@ -257,7 +260,8 @@ class JoblistController extends ActionController {
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException
 	 * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
 	 */
-	public function applyFormAction(JobApplication $applyData = NULL, string $error = '', int $jobId = NULL): ?\Psr\Http\Message\ResponseInterface {
+	public function applyFormAction(JobApplication $applyData = NULL, string $error = '', int $jobId = NULL
+	): ?\Psr\Http\Message\ResponseInterface {
 		if ($error !== '') {
 			$this->view->assign('internalError', $error);
 			$this->request->setArgument('error', NULL);
@@ -344,7 +348,7 @@ class JoblistController extends ActionController {
 
 		// This fixes a bug in the form ViewHelper that wants to serialize a Model with closures in it
 		$arguments = $this->request->getArguments();
-		if ($arguments['applyData']) {
+		if (isset($arguments['applyData']) && $arguments['applyData']) {
 			$arguments['applyData'] = (string) $arguments['applyData'];
 			$this->request->setArguments($arguments);
 		}
@@ -368,7 +372,9 @@ class JoblistController extends ActionController {
 		} catch (NoSuchArgumentException $exception) {
 			$exceptionMessage = 'Some file could not be uploaded. Is it too large?';
 
-			if (version_compare(\TYPO3\CMS\Core\Utility\VersionNumberUtility::getCurrentTypo3Version(), '11.0.0', '<')) {
+			if (version_compare(
+				\TYPO3\CMS\Core\Utility\VersionNumberUtility::getCurrentTypo3Version(), '11.0.0', '<'
+			)) {
 				$this->redirect('applyForm', NULL, NULL, ['error' => $exceptionMessage]);
 				return NULL;
 			} else {
@@ -694,6 +700,7 @@ class JoblistController extends ActionController {
 
 	/**
 	 * Build Typo3 11 Response
+	 *
 	 * @param string|NULL $html
 	 * @return \Psr\Http\Message\ResponseInterface
 	 */
diff --git a/Classes/Domain/Repository/JobRepository.php b/Classes/Domain/Repository/JobRepository.php
index 58ab9a82..85cf9ad7 100644
--- a/Classes/Domain/Repository/JobRepository.php
+++ b/Classes/Domain/Repository/JobRepository.php
@@ -221,23 +221,23 @@ class JobRepository extends Repository {
 		}
 
 		$constraints = [];
-		if ($filters['filterCountry'] !== '0' && $filters['filterCountry'] !== NULL) {
+		if (isset($filters['filterCountry']) && $filters['filterCountry'] !== '0') {
 			$constraints[] = $query->equals('company.country', $filters['filterCountry']);
 		}
 
-		if ($filters['filterRemote'] !== '' && $filters['filterRemote'] !== NULL) {
+		if (isset($filters['filterRemote']) && $filters['filterRemote'] !== '') {
 			$constraints[] = $query->equals('telecommutePossible', TRUE);
 		}
 
-		if ($filters['filterLocation'] !== '0' && $filters['filterLocation'] !== NULL) {
+		if (isset($filters['filterLocation']) && $filters['filterLocation'] !== '0') {
 			$constraints[] = $query->equals('company.city', $filters['filterLocation']);
 		}
 
-		if ($filters['filterDepartment'] !== '0' && $filters['filterDepartment'] !== NULL) {
+		if (isset($filters['filterDepartment']) && $filters['filterDepartment'] !== '0') {
 			$constraints[] = $query->equals('department', $filters['filterDepartment']);
 		}
 
-		if ($filters['filterExperienceLevel'] !== '0' && $filters['filterExperienceLevel'] !== NULL) {
+		if (isset($filters['filterExperienceLevel']) && $filters['filterExperienceLevel'] !== '0') {
 			$constraints[] = $query->equals('experienceLevel', $filters['filterExperienceLevel']);
 		}
 
-- 
GitLab