ldc-legaulois/resources/js/pages/traceability.js
2021-03-09 10:47:23 +01:00

163 lines
7.4 KiB
JavaScript
Vendored

if (document.querySelector(".traceability")) {
let route = require("../modules/route").default.methods.route;
document.addEventListener("DOMContentLoaded", function(event) {
let hash = window.location.hash;
if (hash !== undefined) {
if (hash === "#finder") {
window.scrollTo(0, document.getElementById("finder").offsetTop);
}
}
});
document
.querySelector(".btnTracaHowTo")
.addEventListener("click", function(event) {
document.getElementById("img-traca").style.opacity = 0;
document.getElementById("img-etiquette").style.opacity = 1;
document.getElementById("img-etiquette").style.top = "5%";
});
document
.querySelector(".btnTracaCloseHowTo")
.addEventListener("click", function(event) {
document.getElementById("img-etiquette").style.top = "10%";
document.getElementById("img-etiquette").style.opacity = 0;
document.getElementById("img-traca").style.opacity = 1;
});
// Appel AJAX et traitement de la réponse pour la traçabilité
document
.querySelector(".btnTracaBreeder")
.addEventListener("click", function(event) {
if (
document.getElementById("code_traceability").value.length === 10
) {
document.getElementById("erreur-traca").style.transform =
"scaleY(0)";
let xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState === 4) {
if (this.status === 200) {
// Code a mettre dans la vue
let res = JSON.parse(this.responseText);
switch (res.code) {
case 200:
// Cas OK
if (typeof res.redirect !== "undefined") {
let url =
'{{ route("ocb.breeders", ":slug") }}';
url = url.replace(
":slug",
res.redirect
);
window.location.href(url);
}
document.getElementById(
"how-to"
).style.opacity = 0;
document.getElementById(
"result-traca"
).style.opacity = 1;
document.getElementById(
"result-traca"
).style.top = 0;
document.getElementById(
"icon-traca"
).className = "icon-eleveur";
document.getElementById(
"traca-title"
).innerHTML = "Votre éleveur :";
document.getElementById(
"traca-name"
).innerHTML =
res.breeder.nom_eleveur +
" " +
res.breeder.prenom;
document.getElementById(
"traca-desc"
).innerHTML =
"Éleveur de volailles Le Gaulois à " +
res.breeder.ville +
" (" +
res.breeder.code_postal.substring(
0,
2
) +
")";
break;
default:
document.getElementById(
"how-to"
).style.opacity = 0;
document.getElementById(
"result-traca"
).style.opacity = 1;
document.getElementById(
"result-traca"
).style.top = 0;
document.getElementById(
"icon-traca"
).className = "icon-close";
document.getElementById(
"traca-title"
).innerHTML = "Oups !";
document.getElementById(
"traca-name"
).innerHTML =
"Le numéro de ce produit ne correspond pas à un produit Le Gaulois";
document.getElementById(
"traca-desc"
).innerHTML = "";
break;
}
} else {
document.getElementById("how-to").style.opacity = 0;
document.getElementById(
"result-traca"
).style.opacity = 1;
document.getElementById(
"result-traca"
).style.top = 0;
document.getElementById("icon-traca").className =
"icon-close";
document.getElementById("traca-title").innerHTML =
"Oups !";
document.getElementById("traca-name").innerHTML =
"Le numéro de ce produit ne correspond pas à un produit Le Gaulois";
document.getElementById("traca-desc").innerHTML =
"";
}
}
};
xhttp.open(
"GET",
route("brand.traceability-search") +
"?code=" +
document.getElementById("code_traceability").value,
true
);
xhttp.send();
} else {
document.getElementById("erreur-traca").style.transform =
"scaleY(1)";
}
});
document
.querySelector(".btnCloseTracaBreeder")
.addEventListener("click", function(event) {
document.getElementById("result-traca").style.opacity = 0;
document.getElementById("result-traca").style.top = "20%";
document.getElementById("how-to").style.opacity = 1;
});
}