@extends('admin.layouts.app') @section('title', __('campaigns.title')) @section('header', __('campaigns.title')) @section('breadcrumb') / {{ __('campaigns.title') }} @endsection @section('content') @php $statusMap = [ 'draft' => ['label' => __('campaigns.status_draft'), 'style' => 'background:#f3f4f6;color:#6b7280;'], 'sending' => ['label' => __('campaigns.status_sending'), 'style' => 'background:rgba(245,158,11,0.1);color:#d97706;'], 'sent' => ['label' => __('campaigns.status_sent'), 'style' => 'background:rgba(10,179,156,0.1);color:#0ab39c;'], 'failed' => ['label' => __('campaigns.status_failed'), 'style' => 'background:rgba(240,101,72,0.1);color:#f06548;'], ]; $allStatuses = ['prospect','supporter','member','volunteer','donor','vip','inactive']; @endphp {{-- Resend key warning --}} @if(empty(config('services.resend.key')))
RESEND_KEY nincs beállítva. Kampányt nem lehet küldeni. → Regisztrálj a resend.com oldalon, másold be az API kulcsot a .env fájlba: RESEND_KEY=re_xxxxxxxxxx majd állítsd: MAIL_MAILER=resend
@endif
{{ __('campaigns.title') }}
{{ __('campaigns.tpl_library') }}
@if($campaigns->isEmpty())

{{ __('campaigns.empty') }}

@else @foreach($campaigns as $c) @php $seg = $c->segment_filters ?? []; $segType = $seg['type'] ?? 'all'; @endphp @endforeach
{{ __('campaigns.name_label') }} {{ __('campaigns.subject_label') }} {{ __('common.status') }} {{ __('campaigns.seg_label') }} {{ __('campaigns.sent_count') }} {{ __('campaigns.stat_opens') }} {{ __('campaigns.stat_clicks') }} {{ __('campaigns.sent_at') }}
{{ $c->name }} {{ $c->subject }} {{ $statusMap[$c->status]['label'] ?? $c->status }} @if($segType === 'group') @php $ids = $seg['group_ids'] ?? []; @endphp {{ __('campaigns.seg_group') }} @if($ids) {{ $groups->whereIn('id', $ids)->pluck('name')->join(', ') }} @endif @elseif($segType === 'tag') @php $ids = $seg['tag_ids'] ?? []; @endphp {{ __('campaigns.seg_tag') }} @if($ids) {{ $tags->whereIn('id', $ids)->pluck('name')->join(', ') }} @endif @elseif($segType === 'status') @php $sts = $seg['statuses'] ?? []; @endphp {{ __('campaigns.seg_status') }} @if($sts) {{ collect($sts)->map(fn($s) => __('people.statuses.'.$s))->join(', ') }} @endif @else {{ __('campaigns.seg_all') }} @endif @if($c->isSent()) {{ $c->sent_count }} @if($c->failed_count > 0) ({{ $c->failed_count }} ✗) @endif @else — @endif @if($c->isSent() && $c->sent_count > 0) @php $openRate = round($c->opened_count / $c->sent_count * 100); @endphp {{ $c->opened_count }} {{ $openRate }}% @else @endif @if($c->isSent() && $c->sent_count > 0) @php $clickRate = round($c->clicked_count / $c->sent_count * 100); @endphp {{ $c->clicked_count }} {{ $clickRate }}% @else @endif {{ $c->sent_at?->format('Y.m.d H:i') ?? '—' }} @if($c->isDraft())
@csrf
@endif
@csrf @method('DELETE')
@endif
{{-- ===================== CREATE MODAL ===================== --}} {{-- ===================== EDIT MODAL ===================== --}} {{-- ===================== TEMPLATE PICKER MODAL ===================== --}} @endsection @push('scripts') @endpush