diff --git a/Classes/Controller/JoblistController.php b/Classes/Controller/JoblistController.php index 050eba0b1028ae46a5747607df4526be259779da..335206204fe397d0a1c89e739a46cf9183ed7586 100644 --- a/Classes/Controller/JoblistController.php +++ b/Classes/Controller/JoblistController.php @@ -28,7 +28,6 @@ namespace SGalinski\SgJobs\Controller; use SGalinski\SgJobs\Domain\Model\JobApplication; use SGalinski\SgMail\Service\MailTemplateService; -use TYPO3\CMS\Core\Exception; use TYPO3\CMS\Core\Resource\DuplicationBehavior; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\File\ExtendedFileUtility; @@ -74,8 +73,10 @@ class JoblistController extends ActionController { /** * Renders the application form with an optional job + * + * @param JobApplication $applyData */ - public function applyFormAction() { + public function applyFormAction(JobApplication $applyData = NULL) { if ($this->request->getOriginalRequest()) { $uploadedFiles = $this->request->getOriginalRequest()->getArguments()['uploadedFiles']; $this->view->assign('uploadedFiles', $uploadedFiles); @@ -89,29 +90,18 @@ class JoblistController extends ActionController { $allowedMimeTypes = $this->settings['allowedMimeTypes']; $this->view->assign('allowedMimeTypes', $allowedMimeTypes); + $this->view->assign('jobApplication', $applyData); } /** * Saves the application send by the applyFormAction * * @param JobApplication $applyData - * @return void - * @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException - * @throws \TYPO3\CMS\Core\Resource\Exception\InvalidTargetFolderException - * @throws \TYPO3\CMS\Core\Resource\Exception\IllegalFileExtensionException - * @throws \TYPO3\CMS\Core\Exception - * @throws \RuntimeException - * @throws \BadFunctionCallException - * @throws \TYPO3\CMS\Core\Resource\Exception\InsufficientFolderWritePermissionsException - * @throws \TYPO3\CMS\Core\Resource\Exception\InsufficientFolderAccessPermissionsException - * @throws \TYPO3\CMS\Core\Resource\Exception\ExistingTargetFolderException - * @throws \Exception - * @throws \InvalidArgumentException */ public function applyAction(JobApplication $applyData) { - $this->submitApplicationFiles($GLOBALS['TSFE']->fe_user->id, $applyData); - try { + $this->submitApplicationFiles($GLOBALS['TSFE']->fe_user->id, $applyData); + /** @noinspection PhpMethodParametersCountMismatchInspection */ $mailService = $this->objectManager->get( MailTemplateService::class, 'application_mail', 'sg_jobs', @@ -121,7 +111,7 @@ class JoblistController extends ActionController { $mailService->setToAddresses($this->settings['applicationEmail']); $mailService->sendEmail(); - } catch (Exception $exception) { + } catch (\Exception $exception) { // possible errors, because of wrong mails (maybe log that somewhere? Does this makes sense?) } } diff --git a/Classes/Domain/Model/JobApplication.php b/Classes/Domain/Model/JobApplication.php index 3436fbe756112b45ebb59e0f6cfd5983e01c8121..bb58f047ad30dad00cb68b420bc6c8dab30eb4a1 100644 --- a/Classes/Domain/Model/JobApplication.php +++ b/Classes/Domain/Model/JobApplication.php @@ -40,7 +40,7 @@ class JobApplication extends AbstractEntity { protected $jobTitle = ''; /** - * @var string $jobTitle + * @var \SGalinski\SgJobs\Domain\Model\Job */ protected $jobId = ''; @@ -160,16 +160,16 @@ class JobApplication extends AbstractEntity { } /** - * @return string + * @return \SGalinski\SgJobs\Domain\Model\Job */ public function getJobId() { return $this->jobId; } /** - * @param string $jobId + * @param \SGalinski\SgJobs\Domain\Model\Job $jobId */ - public function setJobId(string $jobId) { + public function setJobId(Job $jobId) { $this->jobId = $jobId; } diff --git a/Resources/Private/Templates/Joblist/ApplyForm.html b/Resources/Private/Templates/Joblist/ApplyForm.html index 8ab23e8efa94edac06e51daad8ca4be73d12bf9e..8300a5bda632a9d2e0f9f85a9cf379c1cbaedd9c 100644 --- a/Resources/Private/Templates/Joblist/ApplyForm.html +++ b/Resources/Private/Templates/Joblist/ApplyForm.html @@ -2,7 +2,7 @@ <f:section name="main"> <f:form action="apply" controller="Joblist" method="post" objectName="applyData" object="{applyData}" enctype="multipart/form-data"> - <f:form.hidden value="{job}" property="uid" /> + <f:form.hidden value="{job.uid}" property="jobId" /> <label for="apply-gender"><f:translate key="frontend.apply.gender" /></label> <f:form.select property="gender" id="apply-gender" class="" options="{None: '', Male: 'Male', Female: 'Female'}" />