Skip to content
Snippets Groups Projects
Commit 835adf6c authored by Stefan Galinski's avatar Stefan Galinski :video_game:
Browse files

[TASK] Try harder

parent 1cbf3515
No related branches found
No related tags found
No related merge requests found
......@@ -164,17 +164,9 @@ class JoblistController extends ActionController {
->setTypeConverterOptions(UploadedFileReferenceConverter::class, $uploadConfiguration);
$propertyMappingConfiguration->forProperty('cv')
->setTypeConverterOptions(UploadedFileReferenceConverter::class, $uploadConfiguration);
$propertyMappingConfiguration->forProperty('certificates')
$propertyMappingConfiguration->forProperty('certificates.0')
->setTypeConverterOptions(UploadedFileReferenceConverter::class, $uploadConfiguration);
// try {
// $this->handleFileUpload('coverLetter', $uniqueFolderName);
// $this->handleFileUpload('cv', $uniqueFolderName);
// $this->handleFileUpload('certificates', $uniqueFolderName);
// } catch (\Exception $exception) {
// $this->redirect('applyForm', NULL, NULL, ['error' => $exception->getMessage()]);
// }
$uploadedFiles = $this->getExistingApplicationFiles($uniqueFolderName);
$this->request->setArgument('uploadedFiles', $uploadedFiles);
$this->request->setArgument('folderName', $uniqueFolderName);
......
......@@ -108,14 +108,14 @@ class UploadedFileReferenceConverter extends AbstractTypeConverter {
* Actually convert from $source to $targetType, taking into account the fully
* built $convertedChildProperties and $configuration.
*
* @param string|int $source
* @param array $source
* @param string $targetType
* @param array $convertedChildProperties
* @param \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration
* @return null|\TYPO3\CMS\Core\Resource\FileInterface|FileReference|Error
* @throws \TYPO3\CMS\Extbase\Security\Exception\InvalidHashException
* @throws \TYPO3\CMS\Extbase\Security\Exception\InvalidArgumentForHashGenerationException
* @throws \TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException
* @return \TYPO3\CMS\Extbase\Domain\Model\AbstractFileFolder
* @api
* @throws \TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException
*/
......@@ -165,7 +165,9 @@ class UploadedFileReferenceConverter extends AbstractTypeConverter {
}
try {
$resource = $this->importUploadedResource($source, $configuration);
if ($configuration) {
$resource = $this->importUploadedResource($source, $configuration);
}
} catch (\Exception $e) {
return new Error($e->getMessage(), $e->getCode());
}
......@@ -184,7 +186,8 @@ class UploadedFileReferenceConverter extends AbstractTypeConverter {
* @throws \TYPO3\CMS\Extbase\Security\Exception\InvalidArgumentForHashGenerationException
* @throws \TYPO3\CMS\Extbase\Security\Exception\InvalidHashException
*/
protected function importUploadedResource(array $uploadInfo, PropertyMappingConfigurationInterface $configuration) {
protected function importUploadedResource(array $uploadInfo, PropertyMappingConfigurationInterface $configuration
): FileReference {
if (!GeneralUtility::verifyFilenameAgainstDenyPattern($uploadInfo['name'])) {
throw new TypeConverterException('Uploading files with PHP file extensions is not allowed!', 1399312430);
}
......@@ -204,9 +207,7 @@ class UploadedFileReferenceConverter extends AbstractTypeConverter {
$uploadFolderId = $configuration->getConfigurationValue(
UploadedFileReferenceConverter::class, self::CONFIGURATION_UPLOAD_FOLDER
) ?: $this->defaultUploadFolder;
if (class_exists(DuplicationBehavior::class)) {
$defaultConflictMode = \TYPO3\CMS\Core\Resource\DuplicationBehavior::RENAME;
}
$defaultConflictMode = DuplicationBehavior::RENAME;
$conflictMode = $configuration->getConfigurationValue(
UploadedFileReferenceConverter::class, self::CONFIGURATION_UPLOAD_CONFLICT_MODE
......@@ -230,7 +231,8 @@ class UploadedFileReferenceConverter extends AbstractTypeConverter {
* @param int $resourcePointer
* @return \SGalinski\SgJobs\Domain\Model\FileReference
*/
protected function createFileReferenceFromFalFileObject(FalFile $file, $resourcePointer = NULL) {
protected function createFileReferenceFromFalFileObject(FalFile $file, $resourcePointer = NULL
): \SGalinski\SgJobs\Domain\Model\FileReference {
$fileReference = $this->resourceFactory->createFileReferenceObject(
[
'uid_local' => $file->getUid(),
......@@ -251,6 +253,7 @@ class UploadedFileReferenceConverter extends AbstractTypeConverter {
FalFileReference $falFileReference, $resourcePointer = NULL
) {
if ($resourcePointer === NULL) {
/** @var \SGalinski\SgJobs\Domain\Model\FileReference $fileReference */
$fileReference = $this->objectManager->get(FileReference::class);
} else {
$fileReference = $this->persistenceManager->getObjectByIdentifier(
......
......@@ -164,7 +164,7 @@
<p>
<label for="apply-email"><f:translate key="frontend.apply.email" /></label>
<f:form.textfield type="email" property="email" id="apply-email" data="{}" />
<f:form.textfield type="email" property="email" id="apply-email" />
<f:form.validationResults for="applyData.email">
<f:for each="{validationResults.errors}" as="error">
<div class="sg-jobs-validation-error">
......@@ -229,6 +229,13 @@
<a href="#" filetype="certificates" class="remove-file">(remove)</a>
</div>
</f:for>
<f:form.validationResults for="applyData.certificates">
<f:for each="{validationResults.errors}" as="error">
<div class="sg-jobs-validation-error">
{error.message}
</div>
</f:for>
</f:form.validationResults>
</p>
<p>
......
config.tx_extbase {
persistence {
classes {
SGalinski\SgJobs\Domain\Model\FileReference {
mapping {
tableName = sys_file_reference
columns {
uid_local.mapOnProperty = originalFileIdentifier
}
}
}
}
}
objects {
TYPO3\CMS\Extbase\Domain\Model\FileReference.className = SGalinski\SgJobs\Domain\Model\FileReference
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment