First Commit
This commit is contained in:
+75
@@ -0,0 +1,75 @@
|
||||
@php
|
||||
$cookieAccepted = false;
|
||||
|
||||
if (Auth::check()) {
|
||||
$user = Auth::user();
|
||||
$latestConsent = $user->consents()->orderByDesc('accepted_at')->first();
|
||||
$currentVersions = config('legal', []);
|
||||
if ($latestConsent &&
|
||||
$latestConsent->terms_version === ($currentVersions['terms_version'] ?? '1.0.0') &&
|
||||
$latestConsent->privacy_version === ($currentVersions['privacy_version'] ?? '1.0.0') &&
|
||||
$latestConsent->cookie_version === ($currentVersions['cookie_version'] ?? '1.0.0')
|
||||
) {
|
||||
$cookieAccepted = true;
|
||||
}
|
||||
} else {
|
||||
$cookieAccepted = request()->cookie('cookie_consent_accepted') === '1.0.0';
|
||||
}
|
||||
@endphp
|
||||
|
||||
@if(!$cookieAccepted)
|
||||
<div id="cookie-banner" class="fixed bottom-0 left-0 right-0 bg-gray-900 text-white p-4 shadow-lg z-50">
|
||||
<div class="max-w-7xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-4">
|
||||
<div class="flex-1">
|
||||
<p class="text-sm sm:text-base">
|
||||
<strong>{{ __('legal.cookie_banner_title') }}</strong>
|
||||
{{ __('legal.cookie_banner_text') }}
|
||||
<a href="{{ route('legal.terms') }}" class="underline hover:text-indigo-300">{{ __('legal.terms_of_use') }}</a>
|
||||
|
|
||||
<a href="{{ route('legal.privacy') }}" class="underline hover:text-indigo-300">{{ __('legal.privacy_policy') }}</a>
|
||||
|
|
||||
<a href="{{ route('legal.cookies') }}" class="underline hover:text-indigo-300">{{ __('legal.cookie_policy') }}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex gap-3">
|
||||
<button onclick="acceptCookies()" class="bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors">
|
||||
{{ __('legal.cookie_banner_accept') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function acceptCookies() {
|
||||
@if(Auth::check())
|
||||
const formData = new URLSearchParams();
|
||||
formData.append('terms_version', '{{ config('legal.terms_version', '1.0.0') }}');
|
||||
formData.append('privacy_version', '{{ config('legal.privacy_version', '1.0.0') }}');
|
||||
formData.append('cookie_version', '{{ config('legal.cookie_version', '1.0.0') }}');
|
||||
|
||||
fetch('{{ route('legal.cookie-banner.accept') }}', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
body: formData
|
||||
}).then(() => {
|
||||
document.getElementById('cookie-banner').style.display = 'none';
|
||||
});
|
||||
@else
|
||||
document.cookie = 'cookie_consent_accepted=1.0.0; path=/; max-age=' + (60 * 60 * 24 * 365) + '; SameSite=Lax';
|
||||
document.getElementById('cookie-banner').style.display = 'none';
|
||||
@endif
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', function(event) {
|
||||
if (event.key === 'Escape') {
|
||||
const banner = document.getElementById('cookie-banner');
|
||||
if (banner) {
|
||||
banner.style.display = 'none';
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
Reference in New Issue
Block a user