@props([ 'documents', 'containerId' => 'sortable-documents', 'canDelete' => false, 'showDownload' => true, 'canEditType' => false, 'canEditName' => false, 'documentTypeEnum' => null, 'application' => null, 'program' => null, 'lot' => null, ])
@foreach($documents->sortBy('order') as $document) @php // Pour les documents de programmes, utiliser la route de prévisualisation avec déchiffrement SSE-C if ($document->documentable_type === 'App\Models\Program' && $application) { $programForUrl = $program ? $program : $document->documentable; $programToken = $programForUrl ? $programForUrl->token : null; $previewUrl = route('partner.program.document.preview', [ 'program' => $programToken, 'document' => $document->token ]); } elseif ($document->documentable_type === 'App\Models\Product' && $application && $program) { // Pour les documents de lots, utiliser la route de prévisualisation avec déchiffrement SSE-C // Si $lot n'est pas fourni, récupérer le lot depuis documentable $lotForUrl = $lot ? $lot : $document->documentable; $lotToken = $lotForUrl ? $lotForUrl->token : null; $previewUrl = route('partner.lot.document.preview', [ 'program' => $program->token, 'lot' => $lotToken, 'document' => $document->token ]); } elseif ($document->documentable_type === 'App\Models\Network') { // Pour les documents de réseaux, utiliser la route de prévisualisation avec déchiffrement SSE-C $network = $document->documentable; $previewUrl = route('partner.network.document.preview', [ 'network' => $network->token, 'document' => $document->token ]); } else { // Pour les autres types, utiliser l'URL directe $previewUrl = $document->file_url; } @endphp
documentable_type !== 'App\Models\Network') onclick="openDocumentFromGallery('{{ $containerId }}', {{ $loop->index }})" data-url="{{ $previewUrl }}" data-title="{{ $document->type_enum?->label() ?? $document->name }}" title="Cliquez pour ouvrir {{ $document->type_enum?->label() ?? $document->name }}" @endif>
{{ $document->order ?? 0 }}
@if($document->documentable_type !== 'App\Models\Network') @endif
@if($canEditType && $documentTypeEnum)
@else @if($document->type_enum)
{{ $document->type_enum->label() }}
@endif @endif @if($canEditName)
@else @if($document->name)
{{ $document->name }}
@endif @endif
{{ number_format($document->file_size / 1024, 2) }} KB
@if($showDownload)
@php // Pour les documents de programmes, utiliser la route de téléchargement avec déchiffrement SSE-C if ($document->documentable_type === 'App\Models\Program' && $application) { $programForUrl = $program ? $program : $document->documentable; $programToken = $programForUrl ? $programForUrl->token : null; $downloadUrl = route('partner.program.document.download', [ 'program' => $programToken, 'document' => $document->token ]); } elseif ($document->documentable_type === 'App\Models\Product' && $application && $program) { // Pour les documents de lots, utiliser la route de téléchargement avec déchiffrement SSE-C $lotForUrl = $lot ? $lot : $document->documentable; $lotToken = $lotForUrl ? $lotForUrl->token : null; $downloadUrl = route('partner.lot.document.download', [ 'program' => $program->token, 'lot' => $lotToken, 'document' => $document->token ]); } elseif ($document->documentable_type === 'App\Models\Network') { // Pour les documents de réseaux, utiliser la route de téléchargement avec déchiffrement SSE-C $network = $document->documentable; $downloadUrl = route('partner.network.document.download', [ 'network' => $network->token, 'document' => $document->token ]); } else { // Pour les autres types, utiliser l'URL directe $downloadUrl = $document->file_url; } @endphp documentable_type !== 'App\Models\Program' && $document->documentable_type !== 'App\Models\Product' && $document->documentable_type !== 'App\Models\Network') target="_blank" @endif class="btn btn-sm btn-outline-primary w-100"> Télécharger
@endif @if($canDelete)
@endif
@endforeach