label(__('filament.actions.models.wiki.attach_image.name')); $this->icon('heroicon-o-photo'); $this->authorize('create', Image::class); } /** * Get the fields available on the action. * * @param Form $form * @return Form */ public function getForm(Form $form): Form { $fields = []; $model = $form->getRecord(); if ($model instanceof Anime || $model instanceof Artist || $model instanceof Studio) { foreach ($this->facets as $facet) { $images = $model->images(); if ($images->where(Image::ATTRIBUTE_FACET, $facet->value)->exists()) continue; $fields[] = FileUpload::make($facet->name) ->label($facet->localize()) ->image() ->imageEditor() ->imageEditorAspectRatios([null, '2:3']) ->storeFiles(false); } } return $form ->schema($fields); } /** * Get the facets available for the action. * * @param ImageFacet[] $facets * @return static */ public function facets(array $facets): static { $this->facets = $facets; return $this; } }