First Commit

This commit is contained in:
marco
2026-09-01 07:49:48 -03:00
commit 28b1044038
399 changed files with 41659 additions and 0 deletions
+75
View File
@@ -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>
&nbsp;|&nbsp;
<a href="{{ route('legal.privacy') }}" class="underline hover:text-indigo-300">{{ __('legal.privacy_policy') }}</a>
&nbsp;|&nbsp;
<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