{{ __('Admin') }} {{ __('Announcements') }}
{{ __('Admin · Marketing · Announcements') }}

{{ __('Marquee') }} {{ __('announcements') }}

Active rows chain together in a horizontal scroll above every authenticated page's header. Customers can dismiss individual rows when "Dismissible" is on.

@if (session('success'))
{{ session('success') }}
@endif
{{ __('Total') }}
{{ number_format($stats['total']) }}
{{ __('in catalog') }}
{{ __('Live now') }}
{{ number_format($stats['active']) }}
{{ __('scrolling in the marquee') }}
{{ __('Scheduled') }}
{{ number_format($stats['scheduled']) }}
{{ __('starts in the future') }}
{{ __('Expired') }}
{{ number_format($stats['expired']) }}
{{ __('past expiry') }}
@php $statusPills = ['all' => 'All', 'active' => 'Live now', 'inactive' => 'Disabled', 'expired' => 'Expired']; @endphp @foreach ($statusPills as $k => $label) @endforeach
@forelse ($announcements as $a) @php $tone = $a->toneClasses(); $expired = $a->expires_at && $a->expires_at->isPast(); $scheduled = $a->starts_at && $a->starts_at->isFuture(); @endphp @empty @endforelse
{{ __('Order') }} {{ __('Message') }} {{ __('Tone') }} {{ __('Window') }} {{ __('Active') }}
{{ $a->sort_order }}
{{ $a->text }}
@if ($a->link_url)
→ {{ $a->link_url }} @if ($a->link_label) ({{ $a->link_label }}) @endif
@endif
{{ ucfirst($a->tone) }} @if ($scheduled) starts {{ $a->starts_at->diffForHumans() }} @elseif ($expired) expired {{ $a->expires_at->diffForHumans() }} @elseif ($a->expires_at) until {{ $a->expires_at->format('M j, Y') }} @else{{ __('forever') }} @endif
@csrf
{{ __('No announcements yet') }}

{{ __('Create the first one →') }}

Showing {{ $announcements->firstItem() ?? 0 }}–{{ $announcements->lastItem() ?? 0 }} of {{ number_format($announcements->total()) }} {{ __('announcements') }}
{{ $announcements->onEachSide(1)->links() }}