diff --git a/app/Http/Requests/Front/Contact/ContactRequest.php b/app/Http/Requests/Front/Contact/ContactRequest.php index 68e1747a..db74b3f5 100644 --- a/app/Http/Requests/Front/Contact/ContactRequest.php +++ b/app/Http/Requests/Front/Contact/ContactRequest.php @@ -21,7 +21,7 @@ class ContactRequest extends FormRequest */ public function rules(): array { - // ToolboxHelper::validateRecaptcha($this, \config('services.google.recaptcha.version')); + ToolboxHelper::validateRecaptcha($this, \config('services.google.recaptcha.version')); $typeContactForm = $this->input('enumType'); diff --git a/config/services.php b/config/services.php index 5f52757a..01329e5f 100644 --- a/config/services.php +++ b/config/services.php @@ -37,6 +37,11 @@ return [ 'google' => [ 'maps' => env('GOOGLE_MAPS_KEY'), + 'recaptcha' => [ + 'public' => env('GOOGLE_RECAPTCHA_PUBLIC'), + 'private' => env('GOOGLE_RECAPTCHA_PRIVATE'), + 'version' => env('GOOGLE_RECAPTCHA_VERSION', "3") === "3" ? true : false + ] ], 'matomo' => [ diff --git a/resources/sass/front/base/_common.scss b/resources/sass/front/base/_common.scss index 013bbd5e..ea9d0a50 100644 --- a/resources/sass/front/base/_common.scss +++ b/resources/sass/front/base/_common.scss @@ -13,3 +13,43 @@ display: none; } } + +#r_captcha { + display: flex; + justify-content: center; + margin-bottom: 30px; +} + +.error-recaptcha { + color: red; + text-align: center; + padding-bottom: 5px; +} + +.custom-alert-danger { + background: #ffe5e5; + border: 1px solid #ffb3b3; + border-left: 5px solid #dc3545; + color: #842029; + padding: 15px 20px; + border-radius: 10px; + margin-bottom: 20px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); + animation: fadeIn 0.3s ease-in-out; + + .alert-title { + font-weight: 700; + margin-bottom: 10px; + display: flex; + align-items: center; + gap: 8px; + } + li { + margin-bottom: 5px; + font-size: 0.95rem; + } + ul { + margin: 0; + padding-left: 20px; + } +} diff --git a/resources/views/components/front/pages/contact/contact-form-script.blade.php b/resources/views/components/front/pages/contact/contact-form-script.blade.php new file mode 100644 index 00000000..e5f57ef5 --- /dev/null +++ b/resources/views/components/front/pages/contact/contact-form-script.blade.php @@ -0,0 +1,30 @@ +@push('scripts') + +@endpush diff --git a/resources/views/components/front/pages/contact/form-wrapper.blade.php b/resources/views/components/front/pages/contact/form-wrapper.blade.php index 95d4719e..9e1837d5 100644 --- a/resources/views/components/front/pages/contact/form-wrapper.blade.php +++ b/resources/views/components/front/pages/contact/form-wrapper.blade.php @@ -1,5 +1,10 @@
@csrf + +
+ @include('modules.flash-messages') +
+ {{ $slot }}
diff --git a/resources/views/front/pages/contact/partials/form-footer.blade.php b/resources/views/front/pages/contact/partials/form-footer.blade.php index ea9703cd..1fd75cce 100644 --- a/resources/views/front/pages/contact/partials/form-footer.blade.php +++ b/resources/views/front/pages/contact/partials/form-footer.blade.php @@ -1,29 +1,39 @@ - -
- @if (\App\Enums\Contact\ContactFormType::press->equals($contactFormType)) -
- -
- @endif - - +
+ @if (\App\Enums\Contact\ContactFormType::press->equals($contactFormType))
- {{ __('front.contact.info_personal_data') }} -
{{ __('front.contact.confidentiality') }}
+
+ @endif -
-
* {{ ucfirst(__('front.required_field')) }}
-
+ +
+ {{ __('front.contact.info_personal_data') }} +
{{ __('front.contact.confidentiality') }}
+
+
* {{ ucfirst(__('front.required_field')) }}
+
+
+ +{{-- RECAPTCHA --}} +
+ @if ($errors->has('g-recaptcha-response')) +
+ {{ $errors->first('g-recaptcha-response') }} +
+ @endif +
+ +
- +
diff --git a/resources/views/front/pages/contact/partials/form-index.blade.php b/resources/views/front/pages/contact/partials/form-index.blade.php index 0e1e0414..54fbec2d 100644 --- a/resources/views/front/pages/contact/partials/form-index.blade.php +++ b/resources/views/front/pages/contact/partials/form-index.blade.php @@ -28,7 +28,10 @@ @endif @include('front.pages.contact.partials.form-footer') +
+ + diff --git a/resources/views/front/pages/contact/partials/press.blade.php b/resources/views/front/pages/contact/partials/press.blade.php index 5a6c0f3b..2c288ed0 100644 --- a/resources/views/front/pages/contact/partials/press.blade.php +++ b/resources/views/front/pages/contact/partials/press.blade.php @@ -58,3 +58,5 @@ + + diff --git a/resources/views/modules/flash-messages.blade.php b/resources/views/modules/flash-messages.blade.php new file mode 100644 index 00000000..66505f51 --- /dev/null +++ b/resources/views/modules/flash-messages.blade.php @@ -0,0 +1,58 @@ +@if (!request()->routeIs('login')) + @if ($message = session()->get('success', session()->get('bo.success'))) + + @endif + + @if ($message = session()->get('error', session()->get('bo.error'))) + + @endif + + @if ($message = session()->get('warning', session()->get('bo.warning'))) + + @endif + + @if ($message = session()->get('status', session()->get('bo.status'))) + + @endif + + @if ($message = session()->get('info', session()->get('bo.info'))) + + @endif + + @if (isset($errors) && $errors->any()) + + @endif +@endif