Skip to content

Commit

Permalink
Update ItemResource.php
Browse files Browse the repository at this point in the history
  • Loading branch information
adrolli committed Oct 23, 2024
1 parent 6c9bdcd commit c98d862
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions packages/builder/src/Resources/ItemResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,9 @@ public static function table(Table $table): Table
->visible(! empty(config('builder.types')))
->formatStateUsing(fn ($record): string => config('builder.types')[$record->type] ?? ucfirst($record->type))
->sortable(),

...static::getTaxonomyColumns(),

TextColumn::make('status')
->label(__('core::core.status'))
->alignment('center')
Expand Down Expand Up @@ -437,4 +440,40 @@ public static function getResourceName(): string
{
return static::getModel()::getResourceName();
}

protected static function getTaxonomyColumns(): array
{
$taxonomyService = static::getTaxonomyService();
$taxonomies = $taxonomyService->getTaxonomies();

return collect($taxonomies)->map(function ($settings, $taxonomy) {
return TextColumn::make($taxonomy)
->label($settings['label'] ?? ucfirst($taxonomy))
->formatStateUsing(function ($record) use ($taxonomy, $settings) {
$relationshipName = $settings['relationship'] ?? $taxonomy;
if ($record->relationLoaded($relationshipName)) {
return $record->$relationshipName->pluck('title')->implode(', ');
}

return $record->$relationshipName()->pluck('title')->implode(', ');
})
->toggleable()
->searchable(false)
->sortable(false);
})->toArray();
}

public static function getEloquentQuery(): Builder
{
$query = parent::getEloquentQuery();
$taxonomyService = static::getTaxonomyService();
$taxonomies = $taxonomyService->getTaxonomies();

foreach ($taxonomies as $taxonomy => $settings) {
$relationshipName = $settings['relationship'] ?? $taxonomy;
$query->with($relationshipName);
}

return $query;
}
}

0 comments on commit c98d862

Please sign in to comment.