diff --git a/src/Resources/Resource.php b/src/Resources/Resource.php index cf31a2da1..b8a3ef101 100644 --- a/src/Resources/Resource.php +++ b/src/Resources/Resource.php @@ -17,6 +17,7 @@ use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Validator; use Leeto\MoonShine\Actions\Action; +use Leeto\MoonShine\Actions\FiltersAction; use Leeto\MoonShine\Contracts\Actions\ActionContract; use Leeto\MoonShine\Contracts\HtmlViewable; use Leeto\MoonShine\Contracts\Resources\ResourceContract; @@ -240,10 +241,23 @@ public function getActions(): Collection { $actions = collect(); + $hasFilters = false; + foreach ($this->actions() as $action) { + if($action instanceof FiltersAction) { + $hasFilters = true; + } + $actions->add($action->setResource($this)); } + if(!$hasFilters && !empty($this->filters())) { + $actions->add( + FiltersAction::make(trans('moonshine::ui.filters')) + ->setResource($this) + ); + } + return $actions; } diff --git a/src/Traits/Fields/FileTrait.php b/src/Traits/Fields/FileTrait.php index f2145b332..166a5961f 100644 --- a/src/Traits/Fields/FileTrait.php +++ b/src/Traits/Fields/FileTrait.php @@ -143,9 +143,9 @@ public function formViewValue(Model $item): mixed return $this->prefixedValue($item->{$this->field()}); } - protected function prefixedValue(string $value): string + protected function prefixedValue(?string $value): string { - return ltrim($value, $this->withPrefix); + return $value ? ltrim($value, $this->withPrefix) : ''; } public function exportViewValue(Model $item): string