ldc-bogt/resources/js/pages/poultry-show.js
2022-10-21 10:19:22 +02:00

93 lines
4.2 KiB
JavaScript
Vendored

import Glider from '@lighting-beetle/glider-js'
import axios from 'axios'
document.addEventListener('DOMContentLoaded', () => {
const labelSlider = document.querySelector('.container.poultryShow .glider-container.labels > .glider'),
linksSlider = document.querySelector('.container.poultryShow .glider-container.links > .glider'),
orderNum = document.getElementById('order_num'),
orderVal = document.getElementById('order_val'),
orderInvalid = document.getElementById('order_num_invalid'),
orderExp = document.getElementById('order_exp'),
distriSign = document.getElementById('distriSign'),
distriPicture = document.getElementById('distriPicture'),
distriDate = document.getElementById('distriDate');
if (labelSlider) {
new Glider(labelSlider, {
slidesToShow: 1,
draggable: true,
arrows: {
prev: labelSlider.parentElement.querySelector('.glider-prev'),
next: labelSlider.parentElement.querySelector('.glider-next')
},
responsive: [
{ breakpoint: 325, settings: { slidesToShow: 2.5 } },
{ breakpoint: 400, settings: { slidesToShow: 2.8 } },
{ breakpoint: 500, settings: { slidesToShow: 3 } },
{ breakpoint: 600, settings: { slidesToShow: 3.4 } },
{ breakpoint: 1200, settings: { slidesToShow: 4 } },
{ breakpoint: 1400, settings: { slidesToShow: 4.5 } }
]
})
}
if (linksSlider) {
new Glider(linksSlider, {
slidesToShow: 1.5,
draggable: true,
arrows: {
prev: linksSlider.parentElement.querySelector('.glider-prev'),
next: linksSlider.parentElement.querySelector('.glider-next')
},
responsive: [
{ breakpoint: 440, settings: { slidesToShow: 2 } },
{ breakpoint: 535, settings: { slidesToShow: 2.5 } },
{ breakpoint: 575, settings: { slidesToShow: 2 } },
{ breakpoint: 625, settings: { slidesToShow: 2.5 } },
{ breakpoint: 1200, settings: { slidesToShow: 3 } },
{ breakpoint: 1400, settings: { slidesToShow: 3.5 } }
]
})
}
// * Distribution
if (orderNum && orderVal && orderExp && orderInvalid && distriPicture && distriDate) {
orderVal.addEventListener('click', (e) => {
e.preventDefault()
const scrollToIdWithOffset = (idContent, headerOffset) => {
const element = document.getElementById(idContent),
elementPosition = element.getBoundingClientRect().top,
offsetPosition = window.pageYOffset + elementPosition - headerOffset
scrollTo({
top: offsetPosition,
behavior: "smooth"
})
}
axios.get(
`/tracabilite/volaille/distribution?codelot=${orderNum.dataset.codeLot}&ordernum=${orderNum.imask.value.slice(0, -5)}`
).then((response) => {
const date = new Date(response.data.exp_date);
distriDate.textContent = new Intl.DateTimeFormat('fr-FR', { dateStyle: 'full'}).format(date);
distriSign.querySelector('span').textContent = response.data.sign;
if (response.data.picture) {
distriPicture.querySelector('img').classList.remove('d-none');
distriPicture.querySelector('img').src = `/assets/images/signs/${response.data.picture}`;
} else {
distriPicture.querySelector('img').classList.add('d-none');
}
orderInvalid.classList.remove('d-block');
orderExp.classList.remove('d-none');
orderNum.imask.masked.reset();
scrollToIdWithOffset(orderExp.id, 50);
}).catch((e) => {
orderInvalid.classList.add('d-block');
orderExp.classList.add('d-none');
orderNum.imask.masked.reset();
scrollToIdWithOffset('order_num_invalid', 50);
});
})
} else {
throw new Error('Missing Dom elements');
}
})