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