Added filter in sticker detail page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 17s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 13s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 13s
Laravel Pint / pint (pull_request) Successful in 2m37s
Laravel Larastan / larastan (pull_request) Failing after 7m33s

This commit is contained in:
dhanabalan
2026-09-08 11:46:00 +05:30
parent df3ecef3ab
commit 6a611f60f1

View File

@@ -6,7 +6,9 @@ use App\Filament\Exports\StickerDetailExporter;
use App\Filament\Imports\StickerDetailImporter;
use App\Filament\Resources\StickerDetailResource\Pages;
use App\Filament\Resources\StickerDetailResource\RelationManagers;
use App\Models\Item;
use App\Models\ItemCharacteristic;
use App\Models\Plant;
use App\Models\StickerDetail;
use App\Models\StickerStructureDetail;
use Filament\Tables\Actions\ExportAction;
@@ -22,6 +24,10 @@ use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Facades\Schema;
use Closure;
use Illuminate\Support\Facades\File;
use Filament\Tables\Filters\Filter;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\TextInput;
class StickerDetailResource extends Resource
{
@@ -396,7 +402,49 @@ class StickerDetailResource extends Resource
])
->filters([
Tables\Filters\TrashedFilter::make(),
Filter::make('advanced_filters')
->label('Advanced Filters')
->form([
Select::make('sticker_id')
->label('Sticker ID')
->reactive()
->options(
StickerStructureDetail::query()
->pluck('sticker_id', 'id')
->toArray()
)
->searchable()
->afterStateUpdated(function ($state, callable $set, callable $get) {
$set('process_order', null);
}),
])
->query(function ($query, array $data) {
// Hide all records initially if no filters are applied
if (empty($data['sticker_id'])) {
return $query->whereRaw('1 = 0');
}
if (! empty($data['sticker_id'])) {
$stickerDetail = StickerStructureDetail::find($data['sticker_id']);
if ($stickerDetail) {
$query->where('sticker_structure_detail_id',$stickerDetail->id);
}
}
// $query->orderBy('created_at', 'asc');
})
->indicateUsing(function (array $data) {
$indicators = [];
if (!empty($data['sticker_id'])) {
$indicators[] = 'Sticker ID: ' . StickerStructureDetail::where('id',$data['sticker_id'])->value('sticker_id');
}
return $indicators;
}),
])
->filtersFormMaxHeight('280px')
->actions([
Tables\Actions\ViewAction::make(),
Tables\Actions\EditAction::make(),