Enhance ListRecords pages with tab functionality and default sorting

- Added getTabs method to ListCardPinOrders, ListLoanOrders, and ListLoanOrderMobiles pages to display order statuses for system users.
- Implemented default sorting by 'created_at' in LoanOrdersTable and LoanOrderMobilesTable for improved data organization.
- Updated ManageCards page to ensure proper type declaration for getTitle method.
This commit is contained in:
Mekan1206
2025-12-21 05:21:53 +05:00
parent 5a53b90272
commit 5e37bd1a76
29 changed files with 111 additions and 28 deletions

View File

@@ -11,7 +11,7 @@ class ManageCards extends ManageRecords
{
protected static string $resource = CardResource::class;
public function getTitle(): string | Htmlable
public function getTitle(): string|Htmlable
{
return __('My cards');
}

View File

@@ -3,8 +3,10 @@
namespace App\Filament\Clusters\Cards\Resources\CardPinOrders\Pages;
use App\Filament\Clusters\Cards\Resources\CardPinOrders\CardPinOrderResource;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Tabs\Tab;
class ListCardPinOrders extends ListRecords
{
@@ -16,4 +18,23 @@ class ListCardPinOrders extends ListRecords
CreateAction::make(),
];
}
public function getTabs(): array
{
if (! user()->isSystemUser()) {
return [];
}
$data = [];
foreach (array_keys(OrderStatusRepository::statusClasses()) as $status) {
if ($status === '') {
$data[null] = Tab::make(__('All'));
} else {
$data[$status] = Tab::make(OrderStatusRepository::statusFormatted($status))->query(fn ($query) => $query->where('status', $status));
}
}
return $data;
}
}

View File

@@ -3,8 +3,10 @@
namespace App\Filament\Clusters\Loans\LoanOrders\Pages;
use App\Filament\Clusters\Loans\LoanOrders\LoanOrderResource;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Tabs\Tab;
class ListLoanOrders extends ListRecords
{
@@ -16,4 +18,23 @@ class ListLoanOrders extends ListRecords
CreateAction::make(),
];
}
public function getTabs(): array
{
if (! user()->isSystemUser()) {
return [];
}
$data = [];
foreach (array_keys(OrderStatusRepository::statusClasses()) as $status) {
if ($status === '') {
$data[null] = Tab::make(__('All'));
} else {
$data[$status] = Tab::make(OrderStatusRepository::statusFormatted($status))->query(fn ($query) => $query->where('status', $status));
}
}
return $data;
}
}

View File

@@ -25,6 +25,7 @@ class LoanOrdersTable
DefaultQueryForResourceIndexRepository::make($query);
})
->defaultSort('created_at', 'desc')
->columns([
TextColumn::make('id')
->label('ID')

View File

@@ -3,8 +3,10 @@
namespace App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Pages;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\LoanOrderMobileResource;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Tabs\Tab;
class ListLoanOrderMobiles extends ListRecords
{
@@ -16,4 +18,23 @@ class ListLoanOrderMobiles extends ListRecords
CreateAction::make(),
];
}
public function getTabs(): array
{
if (! user()->isSystemUser()) {
return [];
}
$data = [];
foreach (array_keys(OrderStatusRepository::statusClasses()) as $status) {
if ($status === '') {
$data[null] = Tab::make(__('All'));
} else {
$data[$status] = Tab::make(OrderStatusRepository::statusFormatted($status))->query(fn ($query) => $query->where('status', $status));
}
}
return $data;
}
}

View File

@@ -25,6 +25,7 @@ class LoanOrderMobilesTable
DefaultQueryForResourceIndexRepository::make($query);
})
->defaultSort('created_at', 'desc')
->columns([
TextColumn::make('id')
->label('ID')

View File

@@ -3,8 +3,10 @@
namespace App\Filament\Clusters\Loans\Resources\LoanPaidOffLetters\Pages;
use App\Filament\Clusters\Loans\Resources\LoanPaidOffLetters\LoanPaidOffLetterResource;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Tabs\Tab;
class ListLoanPaidOffLetters extends ListRecords
{
@@ -16,4 +18,23 @@ class ListLoanPaidOffLetters extends ListRecords
CreateAction::make(),
];
}
public function getTabs(): array
{
if (! user()->isSystemUser()) {
return [];
}
$data = [];
foreach (array_keys(OrderStatusRepository::statusClasses()) as $status) {
if ($status === '') {
$data[null] = Tab::make(__('All'));
} else {
$data[$status] = Tab::make(OrderStatusRepository::statusFormatted($status))->query(fn ($query) => $query->where('status', $status));
}
}
return $data;
}
}

View File

@@ -20,6 +20,7 @@ class LoanPaidOffLettersTable
->modifyQueryUsing(function (Builder $query) {
DefaultQueryForResourceIndexRepository::make($query);
})
->defaultSort('created_at', 'desc')
->columns([
TextColumn::make('id')
->label('ID')

View File

@@ -150,7 +150,7 @@ class VisaMasterPaymentOrderForm
AdvancedFileUpload::make('sender_passport_local')
->spatieMediaLibrary(collection: 'sender_passport_local')
->multiple(),
SpatieMediaLibraryFileUpload::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')),

View File

@@ -2,6 +2,7 @@
namespace App\Filament\Clusters\VisaMasterPayments\Resources\VisaMasterPaymentOrders\Tables;
use App\Modules\DefaultQueryForResourceIndex\Repositories\DefaultQueryForResourceIndexRepository;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use App\Modules\Region\Repositories\RegionRepository;
use Filament\Actions\BulkActionGroup;
@@ -14,6 +15,7 @@ use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\TrashedFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Str;
class VisaMasterPaymentOrdersTable
@@ -21,6 +23,9 @@ class VisaMasterPaymentOrdersTable
public static function configure(Table $table): Table
{
return $table
->modifyQueryUsing(function (Builder $query) {
DefaultQueryForResourceIndexRepository::make($query);
})
->defaultSort('created_at', direction: 'desc')
->columns([
TextColumn::make('id')