Merge branch 'debrief_01' into develop

This commit is contained in:
Olivier Legat 2022-03-02 12:08:22 +01:00
commit 4c2ecadabc
26 changed files with 489 additions and 268 deletions

View file

@ -61,7 +61,7 @@ class GammesController extends Controller
if (!$gamme->saveOrFail()) {
return redirect()->route('bo.gammes.edit', $gamme->id)->with('error', 'L\'actualité n\'a pas été créee');
}
return redirect()->route('bo.gammes.edit', $gamme->id)->with('success', 'Actualité créée !');
return redirect()->route('bo.gammes.edit', $gamme->id)->with('success', 'Gamme créée !');
}
/**

View file

@ -197,8 +197,10 @@ class ProductsController extends Controller
if ($uploadfile) {
$plus->url = Utils::storeImage($uploadfile, $product->getTable());
} else {
//reprise de l'ancienne valeur
$plus->url = $dbplusproduit[$plus->id]->url;
if (isset($dbplusproduit[$plus->id])) {
//reprise de l'ancienne valeur
$plus->url = $dbplusproduit[$plus->id]->url;
}
}
}
//encodage avant save

View file

@ -44,8 +44,7 @@ class StorePostRequest extends FormRequest
'date_start' => [
'required',
'date_format:Y-m-d H:i:s',
'before:' . Carbon::now()->parse('2037-12-31'),
'after:' . Carbon::now()->format('Y-m-d')
'before:' . Carbon::now()->parse('2037-12-31')
],
'date_end' => [
'required',

View file

@ -50,8 +50,7 @@ class StoreSlideRequest extends FormRequest
'date_start' => [
'nullable',
'date_format:Y-m-d H:i:s',
'before:' . Carbon::now()->parse('2037-12-31'),
'after:' . Carbon::now()->format('Y-m-d')
'before:' . Carbon::now()->parse('2037-12-31')
],
'date_end' => [
'nullable',

View file

@ -35,14 +35,13 @@ class Gamme extends Model
'alt_text_banner',
];
protected static function boot()
{
static::creating(function (Gamme $gamme) {
if (is_a($gamme->picture,"SplFileInfo")) {
if (is_a($gamme->picture, "SplFileInfo")) {
$gamme->picture = Utils::storeImage($gamme->picture, $gamme->getTable());
}
if (is_a($gamme->banner,"SplFileInfo")) {
if (is_a($gamme->banner, "SplFileInfo")) {
$gamme->banner = Utils::storeImage($gamme->banner, $gamme->getTable());
}
@ -53,10 +52,10 @@ class Gamme extends Model
});
static::updating(function (Gamme $gamme) {
if (is_a($gamme->picture,"SplFileInfo")) {
if (is_a($gamme->picture, "SplFileInfo")) {
$gamme->picture = Utils::storeImage($gamme->picture, $gamme->getTable());
}
if (is_a($gamme->banner,"SplFileInfo")) {
if (is_a($gamme->banner, "SplFileInfo")) {
$gamme->banner = Utils::storeImage($gamme->banner, $gamme->getTable());
}
if ($gamme->parent_gamme_id === null) {
@ -118,7 +117,7 @@ class Gamme extends Model
}
list($r, $g, $b) = array_map("hexdec", str_split($color, (strlen($color) / 3)));
return "rgba($r,$g,$b,.8)";
return "rgba($r,$g,$b,1)";
}
public function childGammes()

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -4176,9 +4176,9 @@ img{
}
#search{
width:28px;
height:28px;
margin-left:25px;
width:24px;
height:24px;
margin-left:15px;
}
.product ul.more li{
@ -4193,6 +4193,25 @@ img{
top:30px;
}
.product .img-bloc{
position:relative;
}
.product .img-bloc::after{
content:"";
display:none;
background-image:url(/assets/images/picto_halal.png?5690b4b09d272bb18d472947f3baefc6);
background-size:contain;
background-repeat:no-repeat;
position:absolute;
right:0;
bottom:0;
width:25%;
height:25%;
}
.product .img-bloc.view-halal::after{
display:block;
}
ul.more{
margin-top:50px;
}
@ -4225,10 +4244,13 @@ ul.more li .label img{
ul.infos{
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
}
ul.infos li{
justify-content:center;
width:110px;
padding:10px;
text-align:center;
color:#222f5c;
font-family:"barlow-bold", arial, sans-serif;
@ -4261,7 +4283,19 @@ ul.infos span{
bottom:0;
}
@media screen and (min-width: 480px){
ul.infos{
flex-direction:row;
align-items:initial;
}
}
@media screen and (min-width: 800px){
#search{
width:28px;
height:28px;
margin-left:25px;
}
main{
padding-top:100px;
}
@ -4287,10 +4321,16 @@ ul.infos span{
}
.container{
padding-top:60px;
padding-bottom:60px;
padding-top:30px;
padding-bottom:30px;
}
@media screen and (min-width: 768px){
.container{
padding-top:60px;
padding-bottom:60px;
}
}
@media screen and (min-width: 1200px){
.wrapper,
.wrapper-m{
@ -4363,6 +4403,9 @@ ul.infos span{
.is-flex.space-between{
justify-content:space-between;
}
.is-flex.flex-center{
justify-content:center;
}
.is-flex.flex-col{
flex-direction:column;
}
@ -4431,7 +4474,7 @@ ul.infos span{
margin-left:35px;
}
}
@media screen and (max-width: 799px){
@media screen and (max-width: 1024px){
.is-flex{
flex-direction:column;
}
@ -4450,7 +4493,8 @@ p{
}
h1,
.page-subtitle{
.page-subtitle,
.header-title{
margin-bottom:25px;
}
@ -4466,7 +4510,7 @@ h1,
font-size:38px;
}
h1:not(.maintitle):after,
.header-title:after,
.sectiontitle:after,
.page-subtitle:after{
content:"";
@ -4481,6 +4525,10 @@ h1:not(.maintitle):after,
background-color:#fccf1d;
}
.header-title h1{
margin-bottom:0;
}
h1.blue-line:not(.maintitle):after,
.sectiontitle.blue-line:after,
.page-subtitle.blue-line:after{
@ -4511,6 +4559,7 @@ h1:not(.maintitle){
.mascotte:before{
content:url(/assets/images/coq.png?2c2ffbd44b298f35a5b6247e137d2593);
display:none;
position:absolute;
left:-450px;
bottom:0;
@ -4538,6 +4587,11 @@ h3.product-card__title{
font-family:"cocon-regular", arial, sans-serif;
}
@media screen and (min-width: 1024px){
.mascotte:before{
display:block;
}
}
@media screen and (min-width: 800px){
h1:not(.title_page),
.page-subtitle,
@ -4678,6 +4732,9 @@ h3:not(.item__title, .product-card__title){
.site-header nav a:hover{
color:#ff0400;
}
.site-header nav a.menu__item--current{
color:#ff0400;
}
.site-header .traduction{
display:flex;
}
@ -4685,6 +4742,7 @@ h3:not(.item__title, .product-card__title){
margin-right:15px;
}
.site-header .traduction li a{
font-size:14px;
color:#222f5c;
text-transform:uppercase;
text-decoration:none;
@ -4695,8 +4753,17 @@ h3:not(.item__title, .product-card__title){
.site-header .traduction li:last-of-type{
margin-right:0;
}
.site-header.blue-bg .traduction li a{
color:#fccf1d;
}
.site-header.blue-bg .traduction li.current a{
color:#ff0400;
}
@media screen and (min-width: 800px){
.site-header .traduction li a{
font-size:18px;
}
.site-header .wrapper{
justify-content:space-between;
height:100px;
@ -5228,7 +5295,7 @@ input[type=text]{
.gamme-card{
display:flex;
position:relative;
height:375px;
height:300px;
margin-bottom:20px;
overflow:hidden;
}
@ -5258,6 +5325,11 @@ input[type=text]{
transition:bottom 0.4s;
}
.product-card > img{
-o-object-fit:contain;
object-fit:contain;
}
.product-card .product-card__title,
.product-card a{
position:absolute;
@ -5301,6 +5373,7 @@ input[type=text]{
color:#fff;
font-size:30px;
font-family:"barlow-bold", arial, sans-serif;
padding-bottom:50px;
}
.gamme-card:hover .overlay{
bottom:50px;
@ -5311,7 +5384,7 @@ input[type=text]{
}
#list .title{
color:#fff;
font-size:calc(18px * 3.25);
font-size:calc(18px * 2);
}
#list .is-flex{
margin-bottom:60px;
@ -5366,6 +5439,10 @@ input[type=text]{
}
@media (min-width: 769px){
#list .title{
font-size:calc(18px * 3.25);
}
.product-card{
width:32%;
max-width:32%;
@ -5953,6 +6030,7 @@ input[type=text]{
}
.jumbotron .maintitle{
position:absolute;
max-width:100%;
color:#fff;
text-align:center;
text-shadow:0 2px 8px rgba(12, 20, 23, 0.6);
@ -6006,7 +6084,7 @@ input[type=text]{
align-items:center;
flex:1;
margin-right:60px;
transition:transform 0.2s;
transition:transform 0.7s;
}
#products .product-item:last-child{
margin-right:0;
@ -6021,11 +6099,17 @@ input[type=text]{
margin-top:20px;
}
#product-food .sectiontitle:after{
content:"";
background-color:#0c1417;
}
#values .sectiontitle:after{
content:"";
background-color:#0c1417;
}
#values .sectiontitle.white-line:after{
#values .sectiontitle.white-line:after,
#values .header-title.white-line:after{
background-color:white;
}
#values > img{
@ -6049,6 +6133,7 @@ input[type=text]{
justify-content:center;
align-items:center;
flex:1;
padding:10px;
font-family:"barlow-bold", arial, sans-serif;
}
#values .values-list .item img{
@ -6088,6 +6173,7 @@ input[type=text]{
}
.cuisto{
display:none;
position:absolute;
left:0;
top:0;
@ -6289,6 +6375,10 @@ input[type=text]{
margin-top:50px;
}
.desk-mb-50{
margin-bottom:50px !important;
}
.desk-mb-80{
margin-bottom:80px !important;
}
@ -6320,6 +6410,11 @@ input[type=text]{
margin-top:-100px;
}
}
@media screen and (min-width: 1024px){
.cuisto{
display:block;
}
}
@media screen and (min-width: 1200px){
.best span:first-of-type{
font-size:90px;
@ -6330,7 +6425,7 @@ input[type=text]{
}
@media screen and (max-width: 799px){
.jumbotron .maintitle{
font-size:calc(18px * 1.8);
font-size:calc(18px * 1.6);
}
.blue > .menu .menu__item a{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -337,26 +337,20 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__);
// let isPass = false;
// let heightOfsset = 0;
// let heightElt = 0;
var app = {
init: function init() {
window.onscroll = function () {
app.scrollFunction();
};
app.scroll();
},
scroll: function scroll() {
document.getElementById("backtotop").addEventListener("click", function () {
window.scrollTo({
top: 0,
behavior: "smooth"
});
});
},
scrollFunction: function scrollFunction() {
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
// call on next available tick
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
docReady(function () {
// DOM is loaded and ready for manipulation here
window.onscroll = function () {
var imgZoom = document.querySelectorAll('.img-zoom');
var index = 0;
@ -373,41 +367,57 @@ var app = {
imgZoom[index].classList.remove('zoomed');
}
}
}
}; // FONCTION PERMETTANT DE FAIRE UN EFFET ANIMATION AU DEFILEMENT
};
var ratio = 0.1; // 10% du div revelé pour rendre visible
document.getElementById("backtotop").addEventListener("click", function () {
window.scrollTo({
top: 0,
behavior: "smooth"
});
});
var eltsTitle = document.getElementsByClassName("menu__link");
var options = {
root: null,
// Zone d'affichage : null = le viewport
rootMargin: "0px",
threshold: ratio
};
var animArray = ["bounce", "flash", "pulse", "rubberBand", "shakeX", "shakeY", "headShake", "swing", "tada", "wobble", "jello", "heartBeat", "backInDown", "backInLeft", "backInRight", "backInUp", "backOutDown", "backOutLeft", "backOutRight", "backOutUp", "bounceIn", "bounceInDown", "bounceInLeft", "bounceInRight", "bounceInUp", "bounceOut", "bounceOutDown", "bounceOutLeft", "bounceOutRight", "bounceOutUp", "fadeIn", "fadeInDown", "fadeInDownBig", "fadeInLeft", "fadeInLeftBig", "fadeInRight", "fadeInRightBig", "fadeInUp", "fadeInUpBig", "fadeInTopLeft", "fadeInTopRight", "fadeInBottomLeft", "fadeInBottomRight", "fadeOut", "fadeOutDown", "fadeOutDownBig", "fadeOutLeft", "fadeOutLeftBig", "fadeOutRight", "fadeOutRightBig", "fadeOutUp", "fadeOutUpBig", "fadeOutTopLeft", "fadeOutTopRight", "fadeOutBottomRight", "fadeOutBottomLeft", "flip", "flipInX", "flipInY", "flipOutX", "flipOutY", "lightSpeedInRight", "lightSpeedInLeft", "lightSpeedOutRight", "lightSpeedOutLeft", "rotateIn", "rotateInDownLeft", "rotateInDownRight", "rotateInUpLeft", "rotateInUpRight", "rotateOut", "rotateOutDownLeft", "rotateOutDownRight", "rotateOutUpLeft", "rotateOutUpRight", "hinge", "jackInTheBox", "rollIn", "rollOut", "zoomIn", "zoomInDown", "zoomInLeft", "zoomInRight", "zoomInUp", "zoomOut", "zoomOutDown", "zoomOutLeft", "zoomOutRight", "zoomOutUp", "slideInDown", "slideInLeft", "slideInRight", "slideInUp", "slideOutDown", "slideOutLeft", "slideOutRight", "slideOutUp"];
/**
*
* @param {IntersectionObserverEntry[]} entries
* @param {IntersectionObserver} observer
*/
for (var ii = 0; ii < eltsTitle.length; ii++) {
// eltsTitle[ii].classList.remove('red-color');
eltsTitle[ii].addEventListener("click", function () {
this.classList.add('red-color');
});
} // FONCTION PERMETTANT DE FAIRE UN EFFET ANIMATION AU DEFILEMENT
var handleIntersect = function handleIntersect(entries, observer) {
entries.forEach(function (entry) {
if (entry.intersectionRatio > ratio) {
for (var i = 0; i < animArray.length; i++) {
if (entry.target.classList.contains(animArray[i])) {
entry.target.classList.add("animate__" + animArray[i]);
entry.target.classList.add("reveal-visible");
observer.unobserve(entry.target);
var ratio = 0.1; // 10% du div revelé pour rendre visible
var options = {
root: null,
// Zone d'affichage : null = le viewport
rootMargin: "0px",
threshold: ratio
};
var animArray = ["bounce", "flash", "pulse", "rubberBand", "shakeX", "shakeY", "headShake", "swing", "tada", "wobble", "jello", "heartBeat", "backInDown", "backInLeft", "backInRight", "backInUp", "backOutDown", "backOutLeft", "backOutRight", "backOutUp", "bounceIn", "bounceInDown", "bounceInLeft", "bounceInRight", "bounceInUp", "bounceOut", "bounceOutDown", "bounceOutLeft", "bounceOutRight", "bounceOutUp", "fadeIn", "fadeInDown", "fadeInDownBig", "fadeInLeft", "fadeInLeftBig", "fadeInRight", "fadeInRightBig", "fadeInUp", "fadeInUpBig", "fadeInTopLeft", "fadeInTopRight", "fadeInBottomLeft", "fadeInBottomRight", "fadeOut", "fadeOutDown", "fadeOutDownBig", "fadeOutLeft", "fadeOutLeftBig", "fadeOutRight", "fadeOutRightBig", "fadeOutUp", "fadeOutUpBig", "fadeOutTopLeft", "fadeOutTopRight", "fadeOutBottomRight", "fadeOutBottomLeft", "flip", "flipInX", "flipInY", "flipOutX", "flipOutY", "lightSpeedInRight", "lightSpeedInLeft", "lightSpeedOutRight", "lightSpeedOutLeft", "rotateIn", "rotateInDownLeft", "rotateInDownRight", "rotateInUpLeft", "rotateInUpRight", "rotateOut", "rotateOutDownLeft", "rotateOutDownRight", "rotateOutUpLeft", "rotateOutUpRight", "hinge", "jackInTheBox", "rollIn", "rollOut", "zoomIn", "zoomInDown", "zoomInLeft", "zoomInRight", "zoomInUp", "zoomOut", "zoomOutDown", "zoomOutLeft", "zoomOutRight", "zoomOutUp", "slideInDown", "slideInLeft", "slideInRight", "slideInUp", "slideOutDown", "slideOutLeft", "slideOutRight", "slideOutUp"];
/**
*
* @param {IntersectionObserverEntry[]} entries
* @param {IntersectionObserver} observer
*/
var handleIntersect = function handleIntersect(entries, observer) {
entries.forEach(function (entry) {
if (entry.intersectionRatio > ratio) {
for (var i = 0; i < animArray.length; i++) {
if (entry.target.classList.contains(animArray[i])) {
entry.target.classList.add("animate__" + animArray[i]);
entry.target.classList.add("reveal-visible");
observer.unobserve(entry.target);
}
}
}
}
});
};
});
};
var observer = new IntersectionObserver(handleIntersect, options);
document.querySelectorAll(".animate__animated").forEach(function (r) {
observer.observe(r);
var observer = new IntersectionObserver(handleIntersect, options);
document.querySelectorAll(".animate__animated").forEach(function (r) {
observer.observe(r);
});
});
/***/ }),

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -1,29 +1,17 @@
// let isPass = false;
// let heightOfsset = 0;
// let heightElt = 0;
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
// call on next available tick
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
var app = {
init: () => {
window.onscroll = function () {
app.scrollFunction();
};
docReady(function () {
// DOM is loaded and ready for manipulation here
app.scroll();
},
scroll: () => {
document
.getElementById("backtotop")
.addEventListener("click", function () {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
},
scrollFunction: () => {
window.onscroll = function () {
let imgZoom = document.querySelectorAll('.img-zoom');
let index = 0;
if (
@ -40,134 +28,151 @@ var app = {
imgZoom[index].classList.remove('zoomed');
}
}
},
};
};
// FONCTION PERMETTANT DE FAIRE UN EFFET ANIMATION AU DEFILEMENT
const ratio = 0.1; // 10% du div revelé pour rendre visible
const options = {
root: null, // Zone d'affichage : null = le viewport
rootMargin: "0px",
threshold: ratio,
};
var animArray = [
"bounce",
"flash",
"pulse",
"rubberBand",
"shakeX",
"shakeY",
"headShake",
"swing",
"tada",
"wobble",
"jello",
"heartBeat",
"backInDown",
"backInLeft",
"backInRight",
"backInUp",
"backOutDown",
"backOutLeft",
"backOutRight",
"backOutUp",
"bounceIn",
"bounceInDown",
"bounceInLeft",
"bounceInRight",
"bounceInUp",
"bounceOut",
"bounceOutDown",
"bounceOutLeft",
"bounceOutRight",
"bounceOutUp",
"fadeIn",
"fadeInDown",
"fadeInDownBig",
"fadeInLeft",
"fadeInLeftBig",
"fadeInRight",
"fadeInRightBig",
"fadeInUp",
"fadeInUpBig",
"fadeInTopLeft",
"fadeInTopRight",
"fadeInBottomLeft",
"fadeInBottomRight",
"fadeOut",
"fadeOutDown",
"fadeOutDownBig",
"fadeOutLeft",
"fadeOutLeftBig",
"fadeOutRight",
"fadeOutRightBig",
"fadeOutUp",
"fadeOutUpBig",
"fadeOutTopLeft",
"fadeOutTopRight",
"fadeOutBottomRight",
"fadeOutBottomLeft",
"flip",
"flipInX",
"flipInY",
"flipOutX",
"flipOutY",
"lightSpeedInRight",
"lightSpeedInLeft",
"lightSpeedOutRight",
"lightSpeedOutLeft",
"rotateIn",
"rotateInDownLeft",
"rotateInDownRight",
"rotateInUpLeft",
"rotateInUpRight",
"rotateOut",
"rotateOutDownLeft",
"rotateOutDownRight",
"rotateOutUpLeft",
"rotateOutUpRight",
"hinge",
"jackInTheBox",
"rollIn",
"rollOut",
"zoomIn",
"zoomInDown",
"zoomInLeft",
"zoomInRight",
"zoomInUp",
"zoomOut",
"zoomOutDown",
"zoomOutLeft",
"zoomOutRight",
"zoomOutUp",
"slideInDown",
"slideInLeft",
"slideInRight",
"slideInUp",
"slideOutDown",
"slideOutLeft",
"slideOutRight",
"slideOutUp",
];
/**
*
* @param {IntersectionObserverEntry[]} entries
* @param {IntersectionObserver} observer
*/
const handleIntersect = function (entries, observer) {
entries.forEach(function (entry) {
if (entry.intersectionRatio > ratio) {
for (var i = 0; i < animArray.length; i++) {
if (entry.target.classList.contains(animArray[i])) {
entry.target.classList.add("animate__" + animArray[i]);
entry.target.classList.add("reveal-visible");
observer.unobserve(entry.target);
document
.getElementById("backtotop")
.addEventListener("click", function () {
window.scrollTo({
top: 0,
behavior: "smooth",
});
});
let eltsTitle = document.getElementsByClassName("menu__link");
for (let ii = 0; ii < eltsTitle.length; ii++) {
// eltsTitle[ii].classList.remove('red-color');
eltsTitle[ii].addEventListener("click", function () {
this.classList.add('red-color');
});
}
// FONCTION PERMETTANT DE FAIRE UN EFFET ANIMATION AU DEFILEMENT
const ratio = 0.1; // 10% du div revelé pour rendre visible
const options = {
root: null, // Zone d'affichage : null = le viewport
rootMargin: "0px",
threshold: ratio,
};
var animArray = [
"bounce",
"flash",
"pulse",
"rubberBand",
"shakeX",
"shakeY",
"headShake",
"swing",
"tada",
"wobble",
"jello",
"heartBeat",
"backInDown",
"backInLeft",
"backInRight",
"backInUp",
"backOutDown",
"backOutLeft",
"backOutRight",
"backOutUp",
"bounceIn",
"bounceInDown",
"bounceInLeft",
"bounceInRight",
"bounceInUp",
"bounceOut",
"bounceOutDown",
"bounceOutLeft",
"bounceOutRight",
"bounceOutUp",
"fadeIn",
"fadeInDown",
"fadeInDownBig",
"fadeInLeft",
"fadeInLeftBig",
"fadeInRight",
"fadeInRightBig",
"fadeInUp",
"fadeInUpBig",
"fadeInTopLeft",
"fadeInTopRight",
"fadeInBottomLeft",
"fadeInBottomRight",
"fadeOut",
"fadeOutDown",
"fadeOutDownBig",
"fadeOutLeft",
"fadeOutLeftBig",
"fadeOutRight",
"fadeOutRightBig",
"fadeOutUp",
"fadeOutUpBig",
"fadeOutTopLeft",
"fadeOutTopRight",
"fadeOutBottomRight",
"fadeOutBottomLeft",
"flip",
"flipInX",
"flipInY",
"flipOutX",
"flipOutY",
"lightSpeedInRight",
"lightSpeedInLeft",
"lightSpeedOutRight",
"lightSpeedOutLeft",
"rotateIn",
"rotateInDownLeft",
"rotateInDownRight",
"rotateInUpLeft",
"rotateInUpRight",
"rotateOut",
"rotateOutDownLeft",
"rotateOutDownRight",
"rotateOutUpLeft",
"rotateOutUpRight",
"hinge",
"jackInTheBox",
"rollIn",
"rollOut",
"zoomIn",
"zoomInDown",
"zoomInLeft",
"zoomInRight",
"zoomInUp",
"zoomOut",
"zoomOutDown",
"zoomOutLeft",
"zoomOutRight",
"zoomOutUp",
"slideInDown",
"slideInLeft",
"slideInRight",
"slideInUp",
"slideOutDown",
"slideOutLeft",
"slideOutRight",
"slideOutUp",
];
/**
*
* @param {IntersectionObserverEntry[]} entries
* @param {IntersectionObserver} observer
*/
const handleIntersect = function (entries, observer) {
entries.forEach(function (entry) {
if (entry.intersectionRatio > ratio) {
for (var i = 0; i < animArray.length; i++) {
if (entry.target.classList.contains(animArray[i])) {
entry.target.classList.add("animate__" + animArray[i]);
entry.target.classList.add("reveal-visible");
observer.unobserve(entry.target);
}
}
}
}
});
};
const observer = new IntersectionObserver(handleIntersect, options);
document.querySelectorAll(".animate__animated").forEach(function (r) {
observer.observe(r);
});
};
const observer = new IntersectionObserver(handleIntersect, options);
document.querySelectorAll(".animate__animated").forEach(function (r) {
observer.observe(r);
});

View file

@ -5,7 +5,7 @@ $topNavHeight: 3rem;
$body-bg: #f8fafc;
// Typography
$font-family-sans-serif: 'Nunito', sans-serif;
$font-family-sans-serif: "Nunito", sans-serif;
$font-size-base: 0.9rem;
$line-height-base: 1.6;

View file

@ -5,6 +5,7 @@
justify-content: center;
.maintitle {
position: absolute;
max-width: 100%;
color: $color-light;
text-align: center;
text-shadow: 0 2px 8px rgba($color-dark, 0.6);
@ -58,7 +59,7 @@
align-items: center;
flex: 1;
margin-right: 60px;
transition: transform 0.2s; /* Animation */
transition: transform 0.7s; /* Animation */
&:last-child {
margin-right: 0;
@ -74,13 +75,19 @@
margin-top: 20px;
}
}
#product-food {
.sectiontitle:after {
content: "";
background-color: $color-dark;
}
}
#values {
.sectiontitle:after {
content: "";
background-color: $color-dark;
}
.sectiontitle.white-line:after {
.sectiontitle.white-line:after,
.header-title.white-line:after {
background-color: white;
}
> img {
@ -103,7 +110,9 @@
justify-content: center;
align-items: center;
flex: 1;
padding: 10px;
font-family: $fontbarlow-bold;
img {
width: 70px;
height: 70px;
@ -144,6 +153,7 @@
}
.cuisto {
display: none;
position: absolute;
left: 0;
top: 0;
@ -372,6 +382,9 @@
.desk-mt50 {
margin-top: 50px;
}
.desk-mb-50 {
margin-bottom: 50px !important;
}
.desk-mb-80 {
margin-bottom: 80px !important;
}
@ -402,6 +415,12 @@
}
}
@media screen and (min-width: 1024px) {
.cuisto {
display: block;
}
}
@media screen and (min-width: 1200px) {
.best {
span:first-of-type {
@ -415,7 +434,7 @@
@media screen and (max-width: 799px) {
.jumbotron .maintitle {
font-size: calc(#{$globalfont} * 1.8);
font-size: calc(#{$globalfont} * 1.6);
}
.blue {
> .menu .menu__item a {

View file

@ -72,9 +72,9 @@ img {
}
#search {
width: 28px;
height: 28px;
margin-left: 25px;
width: 24px;
height: 24px;
margin-left: 15px;
}
.product ul.more li {
@ -87,6 +87,25 @@ img {
top: 30px;
}
}
.product .img-bloc {
position: relative;
&::after {
content: "";
display: none;
background-image: url(~@/images/picto_halal.png);
background-size: contain;
background-repeat: no-repeat;
position: absolute;
right: 0;
bottom: 0;
width: 25%;
height: 25%;
}
&.view-halal::after {
display: block;
}
}
ul.more {
margin-top: 50px;
@ -122,9 +141,13 @@ ul.more {
ul.infos {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
li {
justify-content: center;
width: 110px;
padding: 10px;
text-align: center;
color: $color-blue;
font-family: $fontbarlow-bold;
@ -157,7 +180,19 @@ ul.infos {
}
}
@media screen and (min-width: 480px) {
ul.infos {
flex-direction: row;
align-items: initial;
}
}
@media screen and (min-width: 800px) {
#search {
width: 28px;
height: 28px;
margin-left: 25px;
}
main {
padding-top: 100px;
}

View file

@ -55,6 +55,9 @@
&:hover {
color: $color-second;
}
&.menu__item--current {
color: $color-second;
}
}
.traduction {
@ -62,6 +65,7 @@
li {
margin-right: 15px;
a {
font-size: 14px;
color: $color-blue;
text-transform: uppercase;
text-decoration: none;
@ -74,10 +78,19 @@
}
}
}
&.blue-bg .traduction li a {
color: $color-main;
}
&.blue-bg .traduction li.current a {
color: $color-second;
}
}
@media screen and (min-width: 800px) {
.site-header {
.traduction li a {
font-size: 18px;
}
.wrapper {
justify-content: space-between;
height: 100px;

View file

@ -8,8 +8,15 @@
}
}
.container {
padding-top: 60px;
padding-bottom: 60px;
padding-top: 30px;
padding-bottom: 30px;
}
@media screen and (min-width: 768px) {
.container {
padding-top: 60px;
padding-bottom: 60px;
}
}
@media screen and (min-width: 1200px) {

View file

@ -2,7 +2,7 @@
.gamme-card {
display: flex;
position: relative;
height: 375px;
height: 300px;
margin-bottom: 20px;
overflow: hidden;
> img {
@ -27,6 +27,9 @@
transition: bottom 0.4s;
}
}
.product-card > img {
object-fit: contain;
}
.product-card {
.product-card__title,
a {
@ -72,6 +75,7 @@
color: $color-light;
font-size: 30px;
font-family: $fontbarlow-bold;
padding-bottom: 50px;
}
}
&:hover .overlay {
@ -85,7 +89,7 @@
}
.title {
color: $color-light;
font-size: calc(#{$globalfont} * 3.25);
font-size: calc(#{$globalfont} * 2);
}
.is-flex {
margin-bottom: 60px;
@ -261,6 +265,9 @@
}
@media (min-width: 769px) {
#list .title {
font-size: calc(#{$globalfont} * 3.25);
}
.product-card {
width: 32%;
max-width: 32%;

View file

@ -3,7 +3,8 @@ p {
}
h1,
.page-subtitle {
.page-subtitle,
.header-title {
margin-bottom: 25px;
}
@ -19,7 +20,8 @@ h1,
font-size: 38px;
}
h1:not(.maintitle):after,
// h1:not(.maintitle):after,
.header-title:after,
.sectiontitle:after,
.page-subtitle:after {
content: "";
@ -33,6 +35,9 @@ h1:not(.maintitle):after,
margin-right: auto;
background-color: $color-main;
}
.header-title h1 {
margin-bottom: 0;
}
h1.blue-line:not(.maintitle):after,
.sectiontitle.blue-line:after,
.page-subtitle.blue-line:after {
@ -62,6 +67,7 @@ h1:not(.maintitle) {
.mascotte:before {
content: url(~@/images/coq.png);
display: none;
position: absolute;
left: -450px;
bottom: 0;
@ -89,7 +95,11 @@ h3 {
h3.product-card__title {
font-family: $fontcocon-regular;
}
@media screen and (min-width: 1024px) {
.mascotte:before {
display: block;
}
}
@media screen and (min-width: 800px) {
h1:not(.title_page),
.page-subtitle,

View file

@ -39,6 +39,9 @@
&.space-between {
justify-content: space-between;
}
&.flex-center {
justify-content: center;
}
&.flex-col {
flex-direction: column;
}
@ -105,7 +108,7 @@
}
}
@media screen and (max-width: 799px) {
@media screen and (max-width: 1024px) {
.is-flex {
flex-direction: column;
}

View file

@ -34,7 +34,7 @@
</div>
<?php if(!$encart->page->equals(Page::marqueHeader())) { ?>
<div class="form-group">
<label for="picture">{{ __('Image') }} <small class="text-muted">- JPEG/PNG, 2Mo max. Dimensions {{ Config::get('bo.encart_image_maxwidth') }} px par {{ Config::get('bo.encart_image_maxheight') }} px</small></label></br>
<label for="picture">{{ __('Image') }} <small class="text-muted">- JPEG/PNG, 2Mo max.</small></label></br>
<input type="file" id="picture" name="picture" accept="image/png, image/jpeg">
@if (!empty($encart->picture))
<br />

View file

@ -29,8 +29,8 @@
{{-- BLOC 1 - ENCART DE PRESENTATION --}}
<section class="container">
<div class="wrapper">
<div class="header-title align-center animate__animated fadeInUp animate__slow">
<h1 class="align-center"><i class="mascotte"></i>{{ $encart_marqueHeader->title}}</h1>
<div class="header-title align-center p-rel">
<h1 class="align-center animate__animated fadeInUp animate__slow"><i class="mascotte"></i>{{ $encart_marqueHeader->title}}</h1>
</div>
<h2 class="align-center">{{ $encart_marqueHeader->subtitle}}</h2>
<span class="align-center">{!! $encart_marqueHeader->text !!}</span>
@ -55,7 +55,9 @@
{{-- BLOC 2 - NOS VALEURS --}}
<section id="values" class="container">
<div class="values-content wrapper align-center">
<h2 class="sectiontitle animate__animated fadeInUp animate__slow">{{ $title_marqueBloc2->title}}</h2>
<div class="header-title sectiontitle align-center p-rel">
<h2 class="punchline-module__title animate__animated fadeInUp animate__slow">{{ $title_marqueBloc2->title}}</h2>
</div>
<p>{{ $title_marqueBloc2->text}}</p>
<ul class="values-list">
@foreach ($pictos_marqueBloc2 as $picto)
@ -73,8 +75,9 @@
<section class="container">
<span id="notre-histoire" class="offset-anchor"></span>
<div class="wrapper">
<h2 class="sectiontitle align-center animate__animated fadeInUp animate__slow">{{ __('Notre Histoire') }}</h2>
<div class="header-title sectiontitle align-center p-rel">
<h2 class="punchline-module__title align-center animate__animated fadeInUp animate__slow">{{ __('Notre Histoire') }}</h2>
</div>
<div class="timeline">
<div id="frise-autoscroll">
<div class="img-frise">
@ -160,7 +163,9 @@
{{-- BLOC 4 - NOS ENGAGEMENTS --}}
<section class="container">
<div class="wrapper">
<h2 class="sectiontitle align-center has-label-bis desk-mb-80 animate__animated fadeInUp animate__slow">{{ $title_marqueBloc4->title}}</h2>
<div class="header-title sectiontitle align-center p-rel desk-mt50 desk-mb-50">
<h2 class="punchline-module__title align-center has-label-bis animate__animated fadeInUp animate__slow">{{ $title_marqueBloc4->title}}</h2>
</div>
<div class="is-flex">
<div class="w50 smrt-mb-100">
<img src="{{ asset($encart_marqueBloc4l->picture) }}" alt="{{ $encart_marqueBloc4l->alt_text_picture}}" class="animate__animated fadeInLeft animate__slow">
@ -182,7 +187,9 @@
{{-- BLOC 5 - BAS DE PAGE --}}
<section class="container">
<div class="wrapper">
<h2 class="sectiontitle align-center animate__animated fadeInUp animate__slow">{{ $encart_marqueFooter->title}}</h2>
<div class="header-title sectiontitle align-center p-rel desk-mb-50">
<h2 class="punchline-module__title align-center animate__animated fadeInUp animate__slow">{{ $encart_marqueFooter->title}}</h2>
</div>
<div class="is-flex">
<div class="w50 animate__animated fadeInLeft animate__slow">
<h3 class="color-yellow">{{ $encart_marqueFooter->subtitle}}</h3>

View file

@ -6,7 +6,7 @@
<div class="blue">
<section class="jumbotron">
<h1 class="maintitle ttu animate__animated fadeIn animate__slow">{{ __('Food service') }}</h1>
<p class="maintitle ttu animate__animated fadeIn animate__slow">{{ __('Food service') }}</p>
<img class="img-zoom" src="{{ asset('assets/images/entete_food.jpg') }}" alt="Cuisine de chef">
<div class="banner">
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1919.76 59.99">
@ -49,7 +49,9 @@
<section id="values" class="container">
<div class="values-content wrapper align-center">
<h2 class="sectiontitle animate__animated fadeInUp animate__slow white-line">{{ $title_foodBloc2->title}}</h2>
<div class="header-title align-center p-rel sectiontitle white-line">
<h2 class="punchline-module__title animate__animated fadeInUp animate__slow">{{ $title_foodBloc2->title}}</h2>
</div>
<p class="align-justify">{{ $title_foodBloc2->text}}</p>
<ul class="values-list">
@foreach ($pictos_food as $picto)
@ -63,13 +65,15 @@
<img src="{{ asset('assets/images/frise-blue.jpg') }}" alt="Frise">
</section>
<section class="container">
<section id="product-food" class="container">
@if($products_food->count() > 0)
<div class="wrapper">
<h2 class="sectiontitle align-center animate__animated fadeInUp animate__slow blue-line">{{ __('Les produits') }}</h2>
<div class="header-title sectiontitle align-center p-rel">
<h2 class="punchline-module__title align-center animate__animated fadeInUp animate__slow blue-line">{{ __('Les produits') }}</h2>
</div>
<p class="align-center">{{ __('Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleur qualité') }}</p>
<div class="blue-products is-flex wrap space-between desk-mt50">
<div class="blue-products is-flex wrap flex-center desk-mt50">
@foreach ($products_food as $product)
<div class="product-card align-center">
<img src="{{ asset($product->picture) }}" alt="{{ $product->alt_text_picture}}">

View file

@ -68,7 +68,7 @@
<div class="sectiontitle">
<h2 class="animate__animated fadeInUp animate__slow">{{ __("Poulet, Cordon bleu ou Wing's ?") }}</h2>
</div>
<h3 class="h2 align-left">
<h3 class="h2 animate__animated fadeInUp animate__slow">
{{ __('Découvrez tous nos produits à base de volaille.') }}
</h3>
<p class="align-left">{{ __('home.products.text')}}</p>
@ -77,7 +77,9 @@
<div class="products-list is-flex">
@foreach ($products_home as $product)
<div class="product-item">
<img src="{{ asset($product->picture) }}" alt="{{ $product->alt_text_picture}}" />
<a href="{{ route($routeprefixer . 'product.show', ['gammeSlug' => $product->gamme->slug , 'productSlug' => $product->slug]) }}">
<img src="{{ asset($product->picture) }}" alt="{{ $product->alt_text_picture}}" />
</a>
</div>
@endforeach
</div>

View file

@ -28,8 +28,8 @@
<div class="container">
<div class="wrapper">
<div class="header-title align-center animate__animated fadeInUp animate__slow">
<h1 class="align-center"><i class="mascotte"></i>Nos conseils ...</h1>
<div class="header-title align-center p-rel">
<h1 class="align-center animate__animated fadeInDown animate__slow"><i class="mascotte"></i>Nos conseils ...</h1>
</div>
<div class="is-flex desk-mt50">
<div class="w100 has-chicken-path animate__animated fadeInLeft animate__slow">
@ -81,7 +81,9 @@
<div id="posts" class="container">
<div class="posts-content wrapper">
<h2 class="sectiontitle align-center animate__animated fadeInUp animate__slow">{{ $title_newsPosts->title}}</h2>
<div class="sectiontitle align-center p-rel">
<h2 class="align-center punchline-module__title animate__animated fadeInUp animate__slow">{{ $title_newsPosts->title}}</h2>
</div>
<h3 class="h2 align-center">{{ $title_newsPosts->text}}</h3>
<div class="posts-list is-flex">
@foreach ($posts as $post)
@ -97,7 +99,9 @@
</div>
<div class="wrapper align-center">
<h2 class="sectiontitle align-center animate__animated fadeInUp animate__slow">Nos nouveautés</h2>
<div class="header-title sectiontitle align-center p-rel">
<h2 class="align-center punchline-module__title animate__animated fadeInUp animate__slow">Nos nouveautés</h2>
</div>
<p class="h2">Nous travaillons toujours pour améliorer nos recettes et proposer des produits de meilleure qualité</p>
<div id="carrousel2">

View file

@ -5,8 +5,7 @@
@section('content')
<section class="jumbotron">
<p class="maintitle ttu animate__animated fadeIn animate__slow">{{ $gamme->title}}
</p>
<p class="maintitle ttu animate__animated fadeIn animate__slow">{{ $gamme->title}}</p>
<img class="img-zoom" src="{{ asset($gamme->banner) }}" alt="{{ $gamme->alt_text_banner }}">
{{-- <img class="img-zoom" src="{{ asset('assets/images/volailles.jpg') }}" alt=""> --}}
<div class="banner">
@ -39,10 +38,12 @@
</div>
<div class="is-flex mt-5">
<div class="w50 align-center">
<img src="{{ asset($product->picture) }}" alt="{{ $product->alt_text_picture }}" class="animate__animated fadeInLeft animate__slow">
@php
$pictos = json_decode($product->pictos);
@endphp
<div class="img-bloc animate__animated fadeInLeft animate__slow @if ($product->is_halal) view-halal @endif">
<img src="{{ asset($product->picture) }}" alt="{{ $product->alt_text_picture }}">
</div>
@if (isset($pictos))
<ul class="infos animate__animated fadeInLeft animate__slow">
@foreach ($pictos as $picto)

View file

@ -14,8 +14,8 @@
<div class="menu-overlay__icon"></div>
</label>
<ul class="menu__list">
<a href="{{ route($routeprefixer . 'wasup') }}" class="scroller menu__link">
<li class="menu__item menu__item--current">
<a href="{{ route($routeprefixer . 'wasup') }}" class="scroller menu__link @if (Route::current()->getName() == 'wasup') menu__item--current @endif">
<li class="menu__item">
{{ __('Marque') }}
</li>
<svg id="menu_arrow" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 19">
@ -34,7 +34,7 @@
<path class="cnt" d="M.85,16.34,7.34,9.17.82,2.07C4.21.91,5.86,2.13,11,9.15,5.8,16.53,3.87,18,.85,16.34Z" />
</svg>
</a>
<a href="{{ route($routeprefixer . 'gammes.index') }}" class="scroller menu__link">
<a href="{{ route($routeprefixer . 'gammes.index') }}" class="scroller menu__link @if (Route::current()->getName() == 'gammes.index') menu__item--current @endif">
<li class="menu__item">
{{ __('Produits') }}
</li>
@ -54,7 +54,7 @@
<path class="cnt" d="M.85,16.34,7.34,9.17.82,2.07C4.21.91,5.86,2.13,11,9.15,5.8,16.53,3.87,18,.85,16.34Z" />
</svg>
</a>
<a href="{{ route($routeprefixer . 'news') }}" class="scroller menu__link">
<a href="{{ route($routeprefixer . 'news') }}" class="scroller menu__link @if (Route::current()->getName() == 'news') menu__item--current @endif">
<li class="menu__item">
{{ __('Actualités') }}
</li>