SYNC 20 participate InstantWin Ok

This commit is contained in:
Jérémy Munsch 2023-12-12 12:25:21 +01:00
parent 1b0e275fd4
commit 07b6691c36
No known key found for this signature in database
GPG key ID: 18361AF3BFEC0FEC
5 changed files with 171 additions and 44 deletions

View file

@ -20,3 +20,4 @@
@import "./pages/static_page";
@import "./pages/products";
@import "./pages/won";
@import "./pages/participate";

View file

@ -0,0 +1,23 @@
.participate-page {
.br-and-arrow {
position: relative;
text-align: center;
img {
width: 9rem;
}
&::after {
position: relative;
display: inline-block;
width: 3rem;
height: 4rem;
background-image: url('@Theme/images/arrow-code.png');
background-position: center;
background-repeat: no-repeat;
background-size: contain;
content: ' ';
transform: translateY(100%);
}
}
}

View file

@ -11,11 +11,13 @@
<li class="nav-item">
<a class="fs-4 fw-bold nav-link" href="{{ route('fo.homepage') }}/#gifts">{{ __('Les cadeaux') }}</a>
</li>
<li class="nav-item">
<a class="fs-4 fw-bold nav-link link-tertiary @if (request()->routeIs('fo.participate')) active @endif"
href="{{ route('fo.participate') }}"
@if (request()->routeIs('fo.participate')) aria-current="page" @endif>{{ __('Jouer !') }}</a>
</li>
@can('fo.gameEnabled')
<li class="nav-item">
<a class="fs-4 fw-bold nav-link link-tertiary @if (request()->routeIs('fo.participate')) active @endif"
href="{{ route('fo.participate') }}"
@if (request()->routeIs('fo.participate')) aria-current="page" @endif>{{ __('Jouer !') }}</a>
</li>
@endcan
@can('fo.showProducts')
<li class="nav-item">
<a class="fs-4 fw-bold nav-link @if (request()->routeIs('fo.produits-porteurs')) active @endif"

View file

@ -1,2 +0,0 @@
<p>Bonjour,</p>
<p>{{ $msg }}</p>

View file

@ -1,47 +1,150 @@
@extends('theme::layout')
@section('title', 'Saisie du code')
@section('title', __('Je participe'))
@section('description', __('Je participe au jeu en soumettant mon code unique de participation'))
@section('main-class', 'participate-page')
@section('content')
<div class="code connect floating grid">
<div class="head-bloc"></div>
<section class="main--bloc container">
<div class="edit-code grid">
<h1 class="post-title">Saisissez votre code</h1>
<p class="pre--text">Pour participer au jeu, munissez-vous du sticker présent sur les produits Le Gaulois participant à
l'opération.</p>
<p class="post--text"><span class="underlined">Attention :</span>&nbsp;<strong>en cas de gain du coffret Wonderbox,</strong>
gardez précieusement <strong>le sticker utilisé ainsi que votre ticket de caisse.</strong> Ils vous seront demandés comme
preuves de gain pour valider votre lot.</p>
<div class="code--img">
<img src="{{ Vite::asset('resources/theme/mounted/assets/images/br.png') }}" alt="Sticker jeu 100% gagnant">
<div class="container pb-5 pt-5">
{{-- TITLE --}}
<div class="row mb-3">
<div class="col text-center">
<h1 class="text-tertiary text-uppercase fw-bold">{{ __('Saisissez votre code') }}</h1>
</div>
</div>
{{-- TEXT --}}
<div class="row mb-5">
<div class="col position-relative">
<p class="fs-4 mb-5 text-center">
{{ __('Pour participer au jeu, munissez-vous du sticker présent sur les produits Le Gaulois participant à l\'opération.') }}
</p>
<p class="fs-4 mb-5 text-center">
<span class="text-decoration-underline">{{ __('Attention') }} :</span>&nbsp;{!! __(
':strong en cas de gain du coffret Wonderbox,:endStrong gardez précieusement :strong le sticker utilisé ainsi que votre ticket de caisse. :endStrong',
[
'strong' => '<strong>',
'endStrong' => '</strong>',
],
) !!}
{{ __('Ils vous seront demandés comme preuves de gain pour valider votre lot.') }}
</p>
<div class="br-and-arrow">
<img class="img-fluid" data-bs-toggle="tooltip" src="{{ Vite::asset('resources/theme/mounted/assets/images/br.png') }}"
title="{{ __('Le sticker présent sur le produit que vous avez acheté.') }}" alt="{{ __('Votre sticker') }}">
</div>
<form class="flex" id="code--form" method="POST" action="{{ route('fo.participate') }}">
<div class="code--edit flex">
@csrf
<input name="code" type="text" maxlength="9" size="9" placeholder="Code unique (9 caractères)*" required>
<input name="code_ean" type="text" maxlength="13" size="13" placeholder="Code Barre (13 caractères)*" required>
<div class="rules">
<input id="accept_rules" name="accept_rules" type="checkbox" required>
<label for="accept_rules">J'ai lu et j'accepte le <a href="{{ route('fo.reglement') }}">règlement</a> du
jeu*</label>
</div>
</div>
{{-- FORM --}}
<div class="row">
<div class="col">
<form class="container" action="{{ route('fo.participate-submit') }}" method="POST">
@csrf
<div class="row justify-content-center mb-2">
{{-- UNIQUE_CODE --}}
<div class="col col-sm-10 col-md-6 col-lg-5 col-xl-4 mb-3 py-2">
<div class="input-group has-validation">
<div class="form-floating @error('unique_code') is-invalid @enderror">
<input id="unique-code" name="unique_code" type="text" value="{{ old('unique_code') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.custom.unique_code'),
]) }}"
@class([
'form-control',
'mx-auto',
'is-invalid' => $errors->has('unique_code'),
]) autocomplete="off" @required(true) />
<label for="unique-code">
{{ Str::ucfirst(
__('Votre :attribute', [
'attribute' => __('validation.custom.unique_code'),
]),
) }}*
</label>
</div>
@error('unique_code')
<div class="invalid-feedback" role="alert">
<strong>{{ implode(',', $errors->get('unique_code')) }}</strong>
</div>
@enderror
</div>
<small>{{ __('Comporte :length caractères, trouvable au dos du sticker', ['length' => config('codes.codeLength')]) }}</small>
</div>
<span>* Champs obligatoires</span>
</div>
<input class="btn btn-success" type="submit" value="Je valide">
</form>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
</div>
</section>
{{-- Force next columns to break to new line --}}
<div class="w-100"></div>
@if ($settingsGlobal->use_ean_codes)
{{-- EAN_CODE --}}
<div class="col col-sm-10 col-md-6 col-lg-5 col-xl-4 mb-3 py-2">
<div class="input-group has-validation">
<div class="form-floating @error('ean_code') is-invalid @enderror">
<input id="ean-code" name="ean_code" type="text" value="{{ old('ean_code') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.custom.ean_code'),
]) }}"
@class([
'form-control',
'mx-auto',
'is-invalid' => $errors->has('ean_code'),
]) autocomplete="off" @required(true) />
<label for="ean-code">
{{ Str::ucfirst(
__('Votre :attribute', [
'attribute' => __('validation.custom.ean_code'),
]),
) }}*
</label>
</div>
@error('ean_code')
<div class="invalid-feedback" role="alert">
<strong>{{ implode(',', $errors->get('ean_code')) }}</strong>
</div>
@enderror
</div>
<small>{{ __('Comporte :length caractères, trouvable au dos du produit que vous avez acheté', ['length' => 13]) }}</small>
</div>
@endif
{{-- Force next columns to break to new line --}}
<div class="w-100"></div>
{{-- CGV --}}
<div class="col col-sm-10 col-md-6 col-lg-5 col-xl-4 py-2">
<div class="form-check">
<input id="participate-game-rules" name="game_rules" type="checkbox" @class([
'form-check-input',
'me-1',
'is-invalid' => $errors->has('game_rules'),
]) required />
<label class="form-check-label fw-bold w-fit" for="participate-game-rules">
{!! clean(
__('J\'ai lu et accepte le :a :game_rules :enda', [
'a' => '<a href="' . route('fo.reglement') . '" target="_blank">',
'game_rules' => __('validation.custom.game_rules'),
'enda' => '</a>',
]),
) !!}
</label>
</div>
@foreach ($errors->get('game_rules') as $message)
<div class="invalid-feedback d-block">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row justify-content-center mb-5">
<div class="col col-sm-10 col-md-6 col-lg-5 col-xl-4 text-end">
<span class="text-secondary">*&nbsp;{{ __('Champs obligatoires') }}</span>
</div>
</div>
<div class="row justify-content-center mb-5">
<div class="col col-sm-10 col-md-6 col-lg-5 col-xl-4 text-center">
<button class="btn btn-lg btn-tertiary fw-bold text-uppercase px-3 py-2" data-bs-toggle="tooltip" type="submit"
title="{{ __('Soumettre ma participation et découvrir mon éventuel gain') }}">{{ __('Je valide') }}</button>
</div>
</div>
</form>
</div>
</div>
</div>
@endsection