var apx = apx || {};
apx.form = {};
/**
* Data form schema
* {}
*
* Will produce a html expected:
*
*
* .. any other data field
*
*
*
*/
apx.form.build = (elt,schema,data)=>{
// Build in html a form with all prerequest and prefill by data into a DOM element elt
};
apx.form.submit = (elt,cb)
/**
* To install in html input onclick=apx.form.enter to simulate a senddata
* @param {*} elt
* @param {*} event
*/
apx.form.enter = (elt, event) => {
if (event.keyCode === 13) {
const getform = elt.closest(".contactform");
event.preventDefault();
getform.querySelector(".sendregister").click();
}
};
// apx.sendform(this,{route:'actions/contact',order:'registercontact',srckey:'teasingwebpage',mlist:'getinform'},fctregisteremail)
registerlist.check = {
email:
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
telephone: /^0[1-9][0-9]{8}$/,
profil: /^(seeker|recruiter)$/,
};
registerlist.msg = {
email: "Vérifier votre email ",
telephone: "Verifier votre téléphone ",
profil: "Choisir votre profil ",
serverissue:
"Désolé, un probléme empeche votre inscription, réessayer plus tard",
register: "Vous êtes bien inscrits",
alreadysent: "Vous avez déjà envoyé votre email ",
};
registerlist.send = async (elt) => {
const formdata = {};
// formdata.uuid = (localStorage.getItem('xuuid')) ? localStorage.getItem('xuuid'):"uuidunknown";
const form = elt.closest(".contactform");
form.querySelector(".answer").innerHTML = "";
var valid = true;
form.querySelectorAll("input,textarea,option:checked").forEach((e) => {
if (!e.name) e.name = info.getAttribute("name");
if (e.name == "email") formdata.typekey = "email";
if (e.name == "telephone") formdata.typekey = "telephone";
if (!e.type || e.type !== "radio" || (e.type == "radio" && e.checked)) {
//check value
if (
registerlist.check[e.name] &&
!registerlist.check[e.name].test(e.value)
) {
form.querySelector(".answer").innerHTML +=
registerlist.msg[e.name] + " ";
form.querySelector(".answer").classList.remove("d-none");
valid = false;
}
if (!formdata[e.name]) {
formdata[e.name] = e.value;
} else {
// array case multi input with same name
formdata[e.name] = [formdata[e.name]];
formdata[e.name].push(e.value);
}
}
});
formdata.tribe=apxtri.headers.xtribe
if (!formdata.profil || formdata.profil == "") {
// Pas de choix
formdata.profil = "both";
//form.querySelector(".answer").innerHTML = registerlist.msg.profil;
//form.querySelector(".answer").classList.remove("d-none");
}
//add phil
formdata.mlist += formdata.profil;
console.log(formdata);
if (
valid &&
formdata.profil &&
formdata.srckey &&
(formdata.email || formdata.telephone)
) {
form.querySelector(".submitbtn").classList.add("d-none");
form.querySelector(".loaderbtn").classList.remove("d-none");
const datasent = await axios.post(
"/api/apxtri/notifications/registeranonymous",
formdata,
{ headers: apx.data.headers }
);
//console.log(datasent)
if (datasent.data.status == 200) {
form.querySelector(".answer").innerHTML = registerlist.msg.register;
form.querySelector(".answer").classList.remove("d-none");
form.querySelector(".loaderbtn").classList.add("d-none");
elt.setAttribute(
"onclick",
`"alert('${registerlist.msg.alreadysent}');"`
);
//document.location.href = "thank-you.html";
} else {
form.querySelector(".answer").innerHTML = registerlist.msg.serverissue;
form.querySelector(".answer").classList.remove("d-none");
}
} else {
console.log(
"Check your form it miss something profil or srckey or email or telephone"
);
}
};