This commit is contained in:
2025-12-09 00:54:13 +05:00
parent 88fdc3aa7f
commit 967501d58f
5 changed files with 265 additions and 18 deletions

View File

@@ -147,10 +147,15 @@ class VisaMasterPaymentOrderForm
->columnSpanFull()
->columns(2)
->schema([
SpatieMediaLibraryFileUpload::make('sender_passport_local')
AdvancedFileUpload::make('sender_passport_local')
->collection('sender_passport_local')
->label(__('Ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi'))
->required(),
->spatieMediaLibrary()
->multiple(),
// SpatieMediaLibraryFileUpload::make('sender_passport_local')
// ->collection('sender_passport_local')
// ->label(__('Ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi'))
// ->required(),
SpatieMediaLibraryFileUpload::make('sender_passport_international')
->collection('sender_passport_international')

View File

@@ -7,7 +7,7 @@ use App\Modules\Region\Repositories\RegionRepository;
use App\Modules\TurkmenPassport\Repositories\TurkmenPassportRepository;
use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
use Filament\Infolists\Components\IconEntry;
use Filament\Infolists\Components\SpatieMediaLibraryImageEntry;
use App\Filament\Infolists\Components\SpatieMediaLibraryFileEntry;
use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Components\Fieldset;
use Filament\Schemas\Components\Section;
@@ -114,27 +114,27 @@ class VisaMasterPaymentOrderInfolist
->columnSpanFull()
->columns(2)
->schema([
SpatieMediaLibraryImageEntry::make('sender_passport_local')
SpatieMediaLibraryFileEntry::make('sender_passport_local')
->collection('sender_passport_local')
->label(__('Ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_passport_international')
SpatieMediaLibraryFileEntry::make('sender_passport_international')
->collection('sender_passport_international')
->label(__('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportynyň asyl görnüşi we göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_travel_stamp_on_passport')
SpatieMediaLibraryFileEntry::make('sender_travel_stamp_on_passport')
->collection('sender_travel_stamp_on_passport')
->label(__('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary döwletine gidendigi we daşary döwlete barandygy baradaky (ştampyň) bellenen sahypasynyň göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_proof_of_kinship')
SpatieMediaLibraryFileEntry::make('sender_proof_of_kinship')
->collection('sender_proof_of_kinship')
->label(__('Ugradyjynyň we kabul edijiniň (talybyň) özara garyndaşlyk derejesini tassyklaýjy resminamalarynyň göçürmesi')),
SpatieMediaLibraryImageEntry::make('sender_passport_local_old')
SpatieMediaLibraryFileEntry::make('sender_passport_local_old')
->collection('sender_passport_local_old')
->label(__('Ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alan bolsa, onda birinji gezek alan pasportynyň seriýasy baradaky maglumat')),
SpatieMediaLibraryImageEntry::make('sender_passport_local_old_replacement')
SpatieMediaLibraryFileEntry::make('sender_passport_local_old_replacement')
->collection('sender_passport_local_old_replacement')
->label(__('Ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alandan soňra birinji gezek alan pasportynyň seriýasy baradaky maglumaty bilmeýän ,bolsa onda polisiýanyň degişli edaralaryndan birinji alan pasportynyň seriýasy baradaky güwänamasy')),
]),
@@ -163,42 +163,42 @@ class VisaMasterPaymentOrderInfolist
->columnSpanFull()
->columns(2)
->schema([
SpatieMediaLibraryImageEntry::make('receiver_requisite')
SpatieMediaLibraryFileEntry::make('receiver_requisite')
->collection('receiver_requisite')
->label(__('Talyba degişli walýuta "VISA" kartyň rekwizitleri'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_document_stating_he_is_studying')
SpatieMediaLibraryFileEntry::make('receiver_document_stating_he_is_studying')
->collection('receiver_document_stating_he_is_studying')
->label(__('Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasy'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_ticket')
SpatieMediaLibraryFileEntry::make('receiver_ticket')
->collection('receiver_ticket')
->label(__('Talybyň bilediniň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_passport_local')
SpatieMediaLibraryFileEntry::make('receiver_passport_local')
->collection('receiver_passport_local')
->label(__('Talyba degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_passport_international')
SpatieMediaLibraryFileEntry::make('receiver_passport_international')
->collection('receiver_passport_international')
->label(__('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin (zagran) pasportynyň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_visa')
SpatieMediaLibraryFileEntry::make('receiver_visa')
->collection('receiver_visa')
->label(__('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary ýurtda galyp okap bilýändigi baradaky berlen möhleti hereket edýän rugsatnamasynyň (wizasynyň) bellenen sahypasynyň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_travel_stamp_on_passport')
SpatieMediaLibraryFileEntry::make('receiver_travel_stamp_on_passport')
->collection('receiver_travel_stamp_on_passport')
->label(__('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky Türkmenistandan çykandygy we daşary ýurt döwletine girendigi baradaky ştamplaryň (seneli ştampyň) bellenen sahypasynyň göçürmesi'))
->columnSpan(1),
SpatieMediaLibraryImageEntry::make('receiver_document_stating_he_is_studying_2')
SpatieMediaLibraryFileEntry::make('receiver_document_stating_he_is_studying_2')
->collection('receiver_document_stating_he_is_studying_2')
->label(__('Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasyndaky maglumatyň doly takyk däl ýagdaýynda takyk däl maglumatyň sebäpleri baradaky daşary ýurt döwletiniň ýokary okuw mekdebinden haty'))
->columnSpan(1),

View File

@@ -0,0 +1,149 @@
<?php
namespace App\Filament\Infolists\Components;
use Closure;
use Filament\Infolists\Components\Entry;
use Filament\Support\Concerns\HasMediaFilter;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Spatie\MediaLibrary\MediaCollections\Models\Collections\MediaCollection;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Throwable;
class SpatieMediaLibraryFileEntry extends Entry
{
use HasMediaFilter;
protected string $view = 'filament.infolists.components.spatie-media-library-file-entry';
protected string | Closure | null $collection = null;
protected string | Closure | null $conversion = null;
protected string | Closure $visibility = 'private';
protected bool | Closure $isDownloadable = true;
protected bool | Closure $isPreviewable = true;
public function collection(string | Closure | null $collection): static
{
$this->collection = $collection;
return $this;
}
public function conversion(string | Closure | null $conversion): static
{
$this->conversion = $conversion;
return $this;
}
public function visibility(string | Closure $visibility): static
{
$this->visibility = $visibility;
return $this;
}
public function downloadable(bool | Closure $condition = true): static
{
$this->isDownloadable = $condition;
return $this;
}
public function previewable(bool | Closure $condition = true): static
{
$this->isPreviewable = $condition;
return $this;
}
public function getCollection(): ?string
{
return $this->evaluate($this->collection);
}
public function getConversion(): ?string
{
return $this->evaluate($this->conversion);
}
public function getVisibility(): string
{
return $this->evaluate($this->visibility);
}
public function isDownloadable(): bool
{
return (bool) $this->evaluate($this->isDownloadable);
}
public function isPreviewable(): bool
{
return (bool) $this->evaluate($this->isPreviewable);
}
public function getMediaUrl(Media $media, ?string $conversion = null): string
{
if ($this->getVisibility() === 'private') {
try {
return $media->getTemporaryUrl(
now()->addMinutes(30)->endOfHour(),
$conversion ?? '',
);
} catch (Throwable $exception) {
// This driver does not support creating temporary URLs.
}
}
return $media->getUrl($conversion ?? '');
}
public function getMedia(): Collection
{
$record = $this->getRecord();
if (! $record) {
return collect([]);
}
if ($this->hasStateRelationship($record)) {
$record = $this->getStateRelationshipResults($record);
}
$records = Arr::wrap($record);
$allMedia = collect([]);
$collection = $this->getCollection() ?? 'default';
foreach ($records as $record) {
/** @var Model $record */
$media = $record->getRelationValue('media');
if (! $media) {
continue;
}
$filteredMedia = $media
->when(
is_string($collection),
fn (MediaCollection $mediaCollection) => $mediaCollection->filter(fn (Media $media): bool => $media->getAttributeValue('collection_name') === $collection),
)
->when(
$this->hasMediaFilter(),
fn (Collection $media) => $this->filterMedia($media)
)
->sortBy('order_column');
$allMedia = $allMedia->merge($filteredMedia);
}
return $allMedia;
}
}

View File

@@ -22,6 +22,7 @@ use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
use Joaopaulolndev\FilamentEditProfile\FilamentEditProfilePlugin;
use RalphJSmit\Filament\Upload\FilamentUpload;
class WorkPanelProvider extends PanelProvider
{
@@ -71,6 +72,8 @@ class WorkPanelProvider extends PanelProvider
->customProfileComponents([
UserProfileFields::class,
]),
FilamentUpload::make(),
])
->authMiddleware([
Authenticate::class,