ldc-tregalette/resources/views/fo/pages/contact.blade.php

335 lines
21 KiB
PHP

@extends('fo.layout')
@section('title', __($staticPageModel->seo_title))
@section('description', __($staticPageModel->seo_description))
@section('breadcrumb', request()->route()->getName())
@section('main-bg-class', 'has-banner')
{{-- No Flash messages on top --}}
@section('no-flash', 'true')
@section('banner')
<div class="container-fluid">
<div class="row">
<div class="col g-0">
<img class="img-fluid banner-picture object-fit-cover w-100"
src="{{ Vite::asset('resources/assets/images/contact/contact-bg.jpg') }}" alt="{{ __('Bannière de la page de contact') }}">
</div>
</div>
</div>
@endsection
@section('content')
<div class="bg-light-top-tear container-fluid mt-0 pb-1">
<div class="row">
<div class="col g-0">
<div class="container">
<div class="row justify-content-center">
<div class="col col-md-10 px-4 text-center">
<div class="contact-header d-flex">
<img class="img-fluid suzette d-none d-lg-inline"
src="{{ Vite::asset('resources/assets/images/contact/suzette-contact.png') }}"
title="{{ __('Personnage Suzette disant: "Envie de papoter ?"') }}" alt="{{ __('Envie de papoter ?') }}">
<div class="d-lg-flex align-items-end me-lg-5 pe-lg-5 mt-5 pb-5">
<span class="align-middle">
{{ __('Suzette est à votre écoute. N\'hésitez pas à lui envoyer vos questions, remarques ou suggestions.') }}
</span>
</div>
<img class="mouettes d-none d-lg-inline" src="{{ Vite::asset('resources/assets/images/global/mouettes.svg') }}"
alt="{{ __('Ombre de mouettes') }}">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container pb-5">
<div class="row justify-content-center mb-5">
<div class="col col-lg-8 rounded-4 text-bg-primary contact-form p-4 pt-5">
<div class="text-center">
<h1 class="fs-1 text-center">{{ __('Nous') }} <span class="text-tertiary">{{ __('contacter') }} !</span></h1>
<img class="img-fluid flex-shrink-1 mb-3 flex-grow-0"
src="{{ Vite::asset('resources/assets/images/global/underline-yellow.svg') }}" alt="{{ __('Trait souligné') }}">
<span class="d-block text-primary">{{ __('Inscrivez vous au Klub Tre Galette') }}</span>
</div>
@if ($message = Session::get('success', Session::get('bo.success')))
<div class="alert alert-success alert-dismissible fade show m-0 mb-3" role="alert">
<i class="fa-solid fa-circle-check"></i>
<strong>{!! nl2br(e($message)) !!}</strong>
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
</div>
@endif
@if ($errors->get('g-recaptcha-response'))
<div class="alert alert-danger alert-dismissible fade show m-0 mb-3" role="alert">
<p class="fw-bold m-0"><i class="fa-solid fa-circle-exclamation"></i>&nbsp;Liste des erreurs :</p>
@if ($errors->any())
<ul class="list-unstyled m-0">
@foreach ($errors->get('g-recaptcha-response') as $message)
<li>{{ $message }}</li>
@endforeach
</ul>
@endif
<button class="btn-close" data-bs-dismiss="alert" type="button" aria-label="{{ __('Fermer') }}"></button>
</div>
@endif
<x-fo.contact.need-recaptcha-banner :shouldBeDark="false" />
<form class="recaptcha-form" id="contact-page-form" data-recaptcha-key="{{ config('services.google.recaptcha.public') }}" inert
method="POST" action="{{ route('fo.contact-submit') }}" enctype="multipart/form-data">
@csrf
<fieldset class="container-fluid p-md-5 pt-md-1 pb-md-0">
<div class="row">
{{-- TYPE --}}
<div class="col-12 py-2">
<label class="form-label" for="first_name">{{ __('À quel sujet souhaitez-vous nous contacter ?') }}</label>
<select class="form-select" id="contact-type" name="type"
data-reclaim="{{ App\Enums\Contact\ObjectEnum::reclaim->value() }}" autocomplete="disabled">
@foreach (\App\Enums\Contact\ObjectEnum::all() as $type)
<option value="{{ $type->value() }}" @if (old('type') == $type->value()) selected @endif>
{{ $type->label() }}</option>
@endforeach
</select>
@foreach ($errors->get('first_name') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row">
{{-- FIRST_NAME --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="first_name">{{ Str::ucfirst(__('validation.attributes.first_name')) }}</label>
<input class="form-control @if ($errors->has('first_name')) is-invalid @endif mx-auto" id="first_name"
name="first_name" type="text" value="{{ old('first_name') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.attributes.first_name'),
]) }}"
autocomplete="given-name" />
@foreach ($errors->get('first_name') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
{{-- LAST_NAME --}}
<div class="col col-md-6 py-2">
<label class="form-label" for="last_name">{{ Str::ucfirst(__('validation.attributes.last_name')) }} *</label>
<input class="form-control @if ($errors->has('last_name')) is-invalid @endif mx-auto" id="last_name"
name="last_name" type="text" value="{{ old('last_name') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.attributes.last_name'),
]) }}"
autocomplete="family-name" required />
@foreach ($errors->get('last_name') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row">
{{-- PHONE --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="phone">{{ Str::ucfirst(__('validation.attributes.phone')) }}</label>
<input class="form-control @if ($errors->has('phone')) is-invalid @endif mx-auto" id="phone"
name="phone" type="tel" value="{{ old('phone') }}"
placeholder="{{ __('Votre n° de :attribute', [
'attribute' => __('validation.attributes.phone'),
]) }}"
autocomplete="tel" />
@foreach ($errors->get('phone') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
{{-- EMAIL --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="email">{{ Str::ucfirst(__('validation.attributes.email')) }} *</label>
<input class="form-control @if ($errors->has('email')) is-invalid @endif mx-auto" id="email"
name="email" type="email" value="{{ old('email') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.attributes.email'),
]) }}"
autocomplete="email" required />
@foreach ($errors->get('email') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row">
{{-- ADDRESS --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="address">{{ Str::ucfirst(__('validation.attributes.address')) }}</label>
<input class="form-control @if ($errors->has('address')) is-invalid @endif mx-auto" id="address"
name="address" type="text" value="{{ old('address') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.attributes.address'),
]) }}"
autocomplete="street-address" />
@foreach ($errors->get('address') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
{{-- CITY --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="city">{{ Str::ucfirst(__('validation.attributes.city')) }}</label>
<input class="form-control @if ($errors->has('city')) is-invalid @endif mx-auto" id="city"
name="city" type="text" value="{{ old('city') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.attributes.city'),
]) }}"
autocomplete="address-level2" />
@foreach ($errors->get('city') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row">
{{-- POSTAL_CODE --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label"
for="postal_code">{{ Str::ucfirst(__('validation.attributes.postal_code')) }}</label>
<input class="form-control @if ($errors->has('postal_code')) is-invalid @endif mx-auto" id="postal_code"
name="postal_code" type="text" value="{{ old('postal_code') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('validation.attributes.postal_code'),
]) }}"
autocomplete="postal-code" />
@foreach ($errors->get('postal_code') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row reclaim-fields d-none">
{{-- PRODUCT --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label"
for="product">{{ __(':model concerné', ['model' => Str::ucfirst(__('models.classes.product'))]) }}
*</label>
<select class="form-select @if ($errors->has('product')) is-invalid @endif mx-auto" id="product"
name="product" type="text" value="{{ old('product') }}"
placeholder="{{ __('Votre :attribute', [
'attribute' => __('models.classes.product'),
]) }}"
autocomplete="postal-code" required>
<option value="" @if (is_null(old('product'))) selected @endif>
{{ __('Sélectionnez un produit') }}</option>
@foreach ($products as $product)
<option value="{{ $product->id }}" @if (old('product') == $product->id) selected @endif>
{{ $product->label }}</option>
@endforeach
</select>
@foreach ($errors->get('product') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row reclaim-fields d-none">
{{-- BATCH_NUMBER --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="batch_number">{{ Str::ucfirst(__('validation.custom.batch_number')) }}</label>
<input class="form-control @if ($errors->has('batch_number')) is-invalid @endif mx-auto" id="batch_number"
name="batch_number" type="number" value="{{ old('batch_number') }}" placeholder="{{ __('N°') }}"
autocomplete="disabled" min="100" max="9999" step="1" />
@foreach ($errors->get('batch_number') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
{{-- EXPIRATION_DATE --}}
<div class="col-12 col-md-6 py-2">
<label class="form-label" for="expiration_date">{{ Str::ucfirst(__('validation.custom.expiration_date')) }}
({{ __('DLC') }})</label>
<input class="form-control @if ($errors->has('expiration_date')) is-invalid @endif mx-auto" id="expiration_date"
name="expiration_date" type="date" value="{{ old('expiration_date') }}" autocomplete="disabled" />
@foreach ($errors->get('expiration_date') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row">
{{-- MESSAGE --}}
<div class="col-12 py-2">
<label class="form-label" for="message">{{ Str::ucfirst(__('validation.attributes.message')) }} *</label>
<textarea class="form-control @if ($errors->has('message')) is-invalid @endif mx-auto" id="message" name="message"
placeholder="{{ __('Décrivez-nous votre demande') }}" autocomplete="disabled" min="100" max="9999" step="1"
required>{{ old('message') }}</textarea>
@foreach ($errors->get('message') as $message)
<div class="invalid-feedback">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row">
<p>
{{ __('Les informations recueillies à partir de ce formulaire sont traitées par le Responsable de Traitement pour donner suite à votre demande de contact. Pour connaître vos droits, vous pouvez consulter la') }}
<a class="text-white" href="{{ route('fo.policies.show') }}"
title="{{ __('Accéder à la Charte de confidentialité') }}">{{ __('Charte de confidentialité') }}</a>
</p>
{{-- FILE --}}
<div class="col-12 col-md-4 mx-auto py-2">
<div class="mb-3">
<label class="btn btn-lg btn-tertiary f-intro-head-b-base px-3 py-2" id="fileAddon" for="file"
role="button" tabindex="0">
{{ __('Ajouter une pièce jointe') }}
<input class="d-none mx-auto" id="file" name="file" type="file"
aria-label="{{ __('validation.custom.attachment') }}" accept=".jpg,.jpeg,.png,.pdf" />
</label>
<div class="mb-3">
<input class="form-control text-bg-primary text-truncate my-2 border-0" id="fileDescription"
type="text" aria-describedby="file" aria-label="Upload"
@if ($errors->has('file')) is-invalid @endif disabled>
</div>
</div>
@foreach ($errors->get('file') as $message)
<div class="invalid-feedback d-block">{{ $message }}</div>
@endforeach
</div>
</div>
<div class="row justify-content-center mb-3">
<div class="col col-md-8 text-primary lh-sm px-0 py-2 text-center">
<div class="text-secondary py-2 text-center">* {{ __('champs obligatoires') }}</div>
</div>
</div>
{{-- RECAPTCHA --}}
<div class="col-12 text-center">
<div class="d-flex flex-column justify-content-center align-items-center my-3">
<div class="r_captcha"></div>
@if ($errors->has('g-recaptcha-response'))
<div class="mb-6">
<span class="text-danger">{{ $errors->first('g-recaptcha-response') }}</span>
</div>
@endif
</div>
</div>
<div class="row" id="submit-btn-row">
<div class="col text-center">
<button class="btn btn-tertiary btn-lg rounded-0 fs-4 px-5 py-3" type="submit" render="explicit">
{{ __('Envoyer') }}
</button>
</div>
</div>
</fieldset>
</form>
<img class="form-ship d-none d-lg-inline" src="{{ Vite::asset('resources/assets/images/contact/ship.svg') }}"
title="{{ __('Une ombre de bateau avec deux mâts') }}" alt="{{ __('Un bateau 2 mâts') }}">
</div>
</div>
</div>
@endsection