You've already forked Epicnabbo-Catalogus-Updated-Daily
🆙 More fixes 🆙
This commit is contained in:
+24
-10
@@ -23,6 +23,7 @@ use Filament\Tables\Filters\SelectFilter;
|
||||
use Filament\Tables\Filters\TernaryFilter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use App\Models\Game\Furniture\CatalogItem;
|
||||
|
||||
class CatalogItemsRelationManager extends RelationManager
|
||||
{
|
||||
@@ -227,7 +228,10 @@ class CatalogItemsRelationManager extends RelationManager
|
||||
->recordTitleAttribute('catalog_name')
|
||||
->columns([
|
||||
ImageColumn::make('icon')
|
||||
->getStateUsing(fn ($record) => url($record->itemBase?->icon()))
|
||||
->getStateUsing(function (CatalogItem $record): string {
|
||||
$icon = $record->itemBase?->icon();
|
||||
return is_string($icon) && $icon !== '' ? url($icon) : '';
|
||||
})
|
||||
->size('25px')
|
||||
|
||||
->label('Icon')
|
||||
@@ -278,11 +282,16 @@ class CatalogItemsRelationManager extends RelationManager
|
||||
])
|
||||
->filters([
|
||||
SelectFilter::make('type')
|
||||
->query(fn (Builder $query, array $data): Builder => empty($data['values'])
|
||||
? $query
|
||||
: $query->whereHas('itemBase', function (Builder $query) use ($data): void {
|
||||
$query->whereIn('type', $data['values']);
|
||||
}))
|
||||
->query(function (Builder $query, array $data): Builder {
|
||||
$values = $data['values'] ?? null;
|
||||
if (! is_array($values) || $values === []) {
|
||||
return $query;
|
||||
}
|
||||
|
||||
return $query->whereHas('itemBase', function (Builder $query) use ($values): void {
|
||||
$query->whereIn('type', $values);
|
||||
});
|
||||
})
|
||||
->options(
|
||||
fn () => ItemBase::query()
|
||||
->select('type')
|
||||
@@ -313,7 +322,7 @@ class CatalogItemsRelationManager extends RelationManager
|
||||
->icon('heroicon-m-cube')
|
||||
->modalWidth('3xl')
|
||||
->modalHeading('Edit Item Base')
|
||||
->fillForm(function ($record) {
|
||||
->fillForm(function (CatalogItem $record): array {
|
||||
$itemBase = $record->itemBase;
|
||||
if (! $itemBase) {
|
||||
return [];
|
||||
@@ -440,7 +449,7 @@ class CatalogItemsRelationManager extends RelationManager
|
||||
->nullable()
|
||||
->dehydrateStateUsing(fn ($state) => $state ?? ''),
|
||||
])
|
||||
->action(function (array $data, $record): void {
|
||||
->action(function (array $data, CatalogItem $record): void {
|
||||
// Transform any null or empty values to empty strings
|
||||
$data = collect($data)->map(function ($value) {
|
||||
if ($value === null || $value === '') {
|
||||
@@ -453,9 +462,14 @@ class CatalogItemsRelationManager extends RelationManager
|
||||
return $value;
|
||||
})->toArray();
|
||||
|
||||
$record->itemBase->forceFill($data)->save();
|
||||
$itemBase = $record->itemBase;
|
||||
if ($itemBase) {
|
||||
$itemBase->forceFill($data)->save();
|
||||
}
|
||||
})
|
||||
->visible(fn ($record) => $record->itemBase !== null),
|
||||
->visible(function (CatalogItem $record): bool {
|
||||
return $record->itemBase !== null;
|
||||
}),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->toolbarActions([
|
||||
|
||||
Reference in New Issue
Block a user