Skip to content
Snippets Groups Projects
Commit 71f1edb2 authored by Matthias Adrowski's avatar Matthias Adrowski
Browse files

[TASK] Basicly got all 3 different uploads working

parent 0bbda2a4
No related branches found
No related tags found
1 merge request!37Feature new uploadhandling
......@@ -54,13 +54,40 @@ class UploadController extends AbstractAjaxController {
}
/**
* Uploads a new image.
* Uploads a new coverletter.
*
* @return void
* @throws \TYPO3\CMS\Core\Resource\Exception\ExistingTargetFileNameException
* @throws \InvalidArgumentException
*/
public function uploadCoverletterAction() {
$this->handleAnyDropZoneUpload();
}
/**
* Uploads a new cd.
*
* @return void
* @throws \TYPO3\CMS\Core\Resource\Exception\ExistingTargetFileNameException
* @throws \InvalidArgumentException
*/
public function uploadCvAction() {
$this->handleAnyDropZoneUpload();
}
/**
* Uploads a new cd.
*
* @return void
* @throws \TYPO3\CMS\Core\Resource\Exception\ExistingTargetFileNameException
* @throws \InvalidArgumentException
*/
public function uploadCertificateAction() {
$this->handleAnyDropZoneUpload();
}
private function handleAnyDropZoneUpload(){
$success = FALSE;
$filePath = '';
if (\count($_FILES) > 0) {
......
......@@ -345,6 +345,9 @@
<trans-unit id="frontend.CancelUpload">
<source><![CDATA[Stop upload]]></source>
</trans-unit>
<trans-unit id="frontend.RemoveFile">
<source><![CDATA[Remove file]]></source>
</trans-unit>
<trans-unit id="frontend.FileType">
<source><![CDATA[Filetype]]></source>
</trans-unit>
......@@ -354,6 +357,9 @@
<trans-unit id="frontend.cvUplodadButton">
<source><![CDATA[Upload cv]]></source>
</trans-unit>
<trans-unit id="frontend.certificateUplodadButton">
<source><![CDATA[Upload certificate]]></source>
</trans-unit>
</body>
</file>
</xliff>
......@@ -481,10 +481,10 @@
<f:translate key="frontend.apply.allowed_file_extensions"/>
{allowedFileExtensions})
</label>
<button type="button" class="coverLetter-upload-button">
<button type="button" class="coverLetter-upload-button jobs-upload-button">
<span class="sr-only"><f:translate key="frontend.coverLetterUplodadButton"/></span>
</button>
<div class="coverLetter-upload hidden" data-max-file-amount="1"
<div class="coverLetter-upload hidden jobs-upload" data-max-file-amount="1"
data-valid-file-extensions="{settings.fileUpload.fileTypes}" data-max-file-size="{maxFileSize}"
data-pid="{storagePid}"
data-inner-text="{f:translate(key: 'frontend.DropFiles', extensionName: 'sg_jobs')}"
......@@ -536,6 +536,18 @@
{allowedFileExtensions})
</label>
<button type="button" class="cv-upload-button jobs-upload-button">
<span class="sr-only"><f:translate key="frontend.cvUplodadButton"/></span>
</button>
<div class="cv-upload hidden jobs-upload" data-max-file-amount="1"
data-valid-file-extensions="{settings.fileUpload.fileTypes}" data-max-file-size="{maxFileSize}"
data-pid="{storagePid}"
data-inner-text="{f:translate(key: 'frontend.DropFiles', extensionName: 'sg_jobs')}"
data-cancel-upload="{f:translate(key: 'frontend.CancelUpload', extensionName: 'sg_jobs')}"
data-remove-file="{f:translate(key: 'frontend.RemoveFile', extensionName: 'sg_jobs')}"
data-file-type-error="{f:translate(key: 'frontend.FileType', extensionName: 'sg_jobs')}"
data-upload-ajax="{sgajax:uri.ajax(extensionName: 'SgJobs', controller: 'Ajax\\Upload', action: 'uploadCv', format: 'json', parameters: '{pageId: storagePid}')}"
></div>
<f:if condition="{cv.name}">
<p class="help-block">
Aktuell: {cv.name}
......@@ -579,8 +591,18 @@
{allowedFileExtensions})
</label>
<h:form.upload property="certificate" resourceName="certificate" id="apply-certificate"
class="form-control" additionalAttributes="{accept: '{allowedMimeTypes}'}"/>
<button type="button" class="certificate-upload-button jobs-upload-button">
<span class="sr-only"><f:translate key="frontend.certificateUplodadButton"/></span>
</button>
<div class="certificate-upload hidden jobs-upload" data-max-file-amount="1"
data-valid-file-extensions="{settings.fileUpload.fileTypes}" data-max-file-size="{maxFileSize}"
data-pid="{storagePid}"
data-inner-text="{f:translate(key: 'frontend.DropFiles', extensionName: 'sg_jobs')}"
data-cancel-upload="{f:translate(key: 'frontend.CancelUpload', extensionName: 'sg_jobs')}"
data-remove-file="{f:translate(key: 'frontend.RemoveFile', extensionName: 'sg_jobs')}"
data-file-type-error="{f:translate(key: 'frontend.FileType', extensionName: 'sg_jobs')}"
data-upload-ajax="{sgajax:uri.ajax(extensionName: 'SgJobs', controller: 'Ajax\\Upload', action: 'uploadCv', format: 'json', parameters: '{pageId: storagePid}')}"
></div>
<f:if condition="{certificate.name}">
<p class="help-block">
Aktuell: {certificate.name}
......
......@@ -9,22 +9,19 @@ export default () => {
}
document.querySelectorAll('#apply').forEach((item) => {
console.log('init sg_jobs');
addFileUpload(item, 'coverLetter');
addFileUpload(item, 'cv');
addFileUpload(item, 'certificate');
});
function addFileUpload(item, uploadName) {
const uploadBox = item.querySelector('.' + uploadName + '-upload');
const uploadButton = item.querySelector('.' + uploadName + '-upload-button');
console.log(item);
console.log(uploadBox);
console.log(uploadButton);
if (!uploadBox || !uploadButton || !item) {
return;
}
console.log('all elements found');
const {
maxFileAmount,
validFileExtensions,
......@@ -36,8 +33,6 @@ export default () => {
uploadAjax
} = uploadBox.dataset;
console.log(uploadBox.dataset);
console.log(uploadAjax);
uploadBox.classList.add('dropzone');
uploadButton.addEventListener('click', () => {
......
......@@ -8,8 +8,6 @@ export default class SgJobs {
* Kicks things off
*/
constructor(_root = {}) {
console.log('sg_jobs js constructed');
Upload();
}
}
......@@ -71,7 +71,7 @@ call_user_func(
\SGalinski\SgAjax\Service\AjaxRegistration::configureAjaxFrontendPlugin(
'sg_jobs',
[
\SGalinski\SgJobs\Controller\Ajax\UploadController::class => 'uploadCoverletter',
\SGalinski\SgJobs\Controller\Ajax\UploadController::class => 'uploadCoverletter, uploadCv, uploadCertificate',
]
);
......
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