|
|
@@ -45,11 +45,12 @@
|
|
|
:rules="[validateEmail]"
|
|
|
label="Email*"
|
|
|
required
|
|
|
+
|
|
|
/>
|
|
|
|
|
|
<v-file-input
|
|
|
id="jobApplicationResume"
|
|
|
- v-model="jobApplication.resume"
|
|
|
+ v-model="resumeUpload"
|
|
|
label="Dépôt de CV*"
|
|
|
accept=".pdf, .jpeg, .png"
|
|
|
required
|
|
|
@@ -57,7 +58,7 @@
|
|
|
|
|
|
<v-file-input
|
|
|
id="jobApplicationMotivationLetter"
|
|
|
- v-model="jobApplication.motivationLetter"
|
|
|
+ v-model="motivationLetterUpload"
|
|
|
label="Dépôt de lettre de motivation"
|
|
|
accept=".pdf, .jpeg, .png"
|
|
|
/>
|
|
|
@@ -93,6 +94,7 @@
|
|
|
import ContactRequest from "~/models/Maestro/ContactRequest";
|
|
|
import { useEntityManager } from "~/composables/data/useEntityManager";
|
|
|
import JobApplication from "~/models/Maestro/JobApplication";
|
|
|
+import FileUtils from "~/services/utils/FileUtils";
|
|
|
|
|
|
const { em } = useEntityManager()
|
|
|
|
|
|
@@ -105,6 +107,10 @@ const emit = defineEmits(['submit'])
|
|
|
//@ts-ignore
|
|
|
const jobApplication: ContactRequest = reactive(em.newInstance(JobApplication))
|
|
|
|
|
|
+const resumeUpload = ref(null)
|
|
|
+
|
|
|
+const motivationLetterUpload = ref(null)
|
|
|
+
|
|
|
// --- Validation ---
|
|
|
const maxMessageLength = 2000
|
|
|
|
|
|
@@ -126,7 +132,7 @@ const validateNonEmptyMessage = (message: string | null) =>
|
|
|
(!!message && message.length > 0) ||
|
|
|
"Le message ne peut pas être vide";
|
|
|
|
|
|
-const validateMessageLength = (message: string | null) =>
|
|
|
+const validateMessageLength = async (message: string | null) =>
|
|
|
(!!message && message.length <= maxMessageLength) ||
|
|
|
"Le message ne doit pas dépasser " + maxMessageLength + " caractères";
|
|
|
|
|
|
@@ -141,6 +147,20 @@ const submit = async () => {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ jobApplication.resume = (resumeUpload.value !== null && resumeUpload.value[0] !== null) ?
|
|
|
+ {
|
|
|
+ //@ts-ignore
|
|
|
+ 'name': resumeUpload.value[0].name,
|
|
|
+ 'content': await FileUtils.blobToBase64(resumeUpload.value[0])
|
|
|
+ } : null
|
|
|
+
|
|
|
+ jobApplication.motivationLetter = (motivationLetterUpload.value !== null && motivationLetterUpload.value[0] !== null) ?
|
|
|
+ {
|
|
|
+ //@ts-ignore
|
|
|
+ 'name': motivationLetterUpload.value[0].name,
|
|
|
+ 'content': await FileUtils.blobToBase64(motivationLetterUpload.value[0])
|
|
|
+ } : null
|
|
|
+
|
|
|
await em.persist(JobApplication, jobApplication)
|
|
|
|
|
|
jobApplicationSent.value = true;
|