resetPage(); } public function updatedPrecheck(): void { $this->resetPage(); } public function updatedState(): void { $this->resetPage(); } public function with(): array { $query = PressReleaseImage::query() ->with([ 'pressRelease' => fn ($q) => $q->withoutGlobalScope(PortalScope::class)->select(['id', 'title', 'status', 'portal', 'company_id', 'published_at'])->with('company:id,name'), 'latestRightsConfirmation', 'precheckReviewer:id,name', ]) ->orderByDesc('id'); if ($this->search !== '') { $term = trim($this->search); $query->where(function ($q) use ($term): void { if (ctype_digit($term)) { $q->where('id', (int) $term)->orWhere('press_release_id', (int) $term); } $q->orWhereHas('pressRelease', fn ($pr) => $pr->withoutGlobalScope(PortalScope::class)->where('title', 'like', '%'.$term.'%')) ->orWhere('copyright', 'like', '%'.$term.'%'); }); } if ($this->precheck !== '') { $this->precheck === 'none' ? $query->whereNull('precheck_outcome') : $query->where('precheck_outcome', $this->precheck); } match ($this->state) { 'review' => $query->awaitingPrecheckReview(), 'withheld' => $query->where(fn ($inner) => $inner->whereNotNull('withheld_at')->orWhereNotNull('precheck_withheld_at')), 'unconfirmed' => $query->whereNotNull('rules_version')->whereNull('rights_confirmed_at'), 'legacy' => $query->whereNull('rules_version'), 'published' => $query->whereNotNull('published_ever_at'), default => null, }; return [ 'images' => $query->paginate(40), 'outcomes' => ImagePrecheckOutcome::cases(), 'openReviews' => PressReleaseImage::query()->awaitingPrecheckReview()->count(), 'precheckEnabled' => (bool) config('images.precheck.enabled'), ]; } }; ?>
| {{ __('Bild') }} | {{ __('Pressemitteilung') }} | {{ __('Nachweis und Kennzeichnung') }} | {{ __('Bestätigung') }} | {{ __('KI-Vorab-Check') }} | {{ __('Hochgeladen') }} |
|---|---|---|---|---|---|
|
@if ($thumb)
#{{ $image->id }}
@if ($image->width && $image->height)
{{ $image->width }}×{{ $image->height }}
@endif
@if ($image->isWithheld())
|
@if ($image->pressRelease)
{{ \Illuminate\Support\Str::limit($image->pressRelease->title, 70) }}
PM #{{ $image->press_release_id }} · {{ $image->pressRelease->status->label() }}
@if ($image->pressRelease->company)
· {{ $image->pressRelease->company->name }}
@endif
@else
PM #{{ $image->press_release_id }} ({{ __('gelöscht') }})
@endif
|
{{ $image->copyright ?: '–' }}
@if ($image->ai_declaration)
{{ $image->ai_declaration->label() }}
@if ($image->ai_declaration_source)
({{ $image->ai_declaration_source->publicLabel() }})
@endif
@if ($image->ai_declaration_locked)
· {{ __('gesperrt') }}
@endif
@else
{{ __('keine Kennzeichnung') }}
@endif
@if ($image->provenance_status)
{{ __('Herkunft: :status', ['status' => $image->provenance_status->value]) }}
@endif
|
@if ($confirmation)
{{ $confirmation->confirmed_at->format('d.m.Y H:i') }} · {{ $confirmation->legal_text_key }} · {{ $confirmation->channel->value }}
@elseif ($image->awaitsCustomerConfirmation())
|
@if ($image->precheck_outcome)
{{ __('Sichtung offen') }}
@elseif ($image->precheck_reviewed_at)
{{ __('Entschieden :date von :name: :note', ['date' => $image->precheck_reviewed_at->format('d.m.Y H:i'), 'name' => $image->precheckReviewer?->name ?? '–', 'note' => $image->precheck_review_note]) }}
@endif
@if (! empty($image->precheck['model']))
{{ $image->precheck['model'] }}
@endif
@else
{{ __('nicht geprüft') }}
@endif
|
{{ $image->created_at?->format('d.m.Y H:i') }}
@if ($image->published_ever_at)
{{ __('veröffentlicht') }}
@endif
|
| {{ __('Keine Bilder gefunden.') }} | |||||