wip: article AI polish, category SEO fields, cover generator, membership plan seeder
This commit is contained in:
@@ -10,8 +10,10 @@ use BackedEnum;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Pages\Page;
|
||||
use Filament\Support\Enums\Alignment;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
use UnitEnum;
|
||||
use Illuminate\Contracts\View\View;
|
||||
|
||||
class ManagePlugins extends Page
|
||||
{
|
||||
@@ -69,19 +71,45 @@ class ManagePlugins extends Page
|
||||
|
||||
public function showDocs(string $name, PluginManager $manager): void
|
||||
{
|
||||
$docs = $manager->readDocs($name);
|
||||
if ($docs === null || trim($docs) === '') {
|
||||
if ($manager->readDocs($name) === null) {
|
||||
Notification::make()->title(__('admin.messages.plugin_docs_missing'))->warning()->send();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Notification::make()
|
||||
->title(__('admin.pages.plugin_docs'))
|
||||
->body(str($docs)->limit(1800)->toString())
|
||||
->persistent()
|
||||
->info()
|
||||
->send();
|
||||
$this->mountAction('viewDocs', ['name' => $name]);
|
||||
}
|
||||
|
||||
public function viewDocsAction(): Action
|
||||
{
|
||||
return Action::make('viewDocs')
|
||||
->label(__('admin.pages.plugin_docs'))
|
||||
->modalHeading(function (array $arguments): string {
|
||||
$name = (string) ($arguments['name'] ?? '');
|
||||
$plugin = collect($this->plugins)->firstWhere('name', $name);
|
||||
$title = is_array($plugin) ? (string) ($plugin['title'] ?? $name) : $name;
|
||||
|
||||
return __('admin.pages.plugin_docs').($title !== '' ? ' · '.$title : '');
|
||||
})
|
||||
->modalContent(function (array $arguments): View {
|
||||
return view('filament.partials.plugin-docs', [
|
||||
'html' => app(PluginManager::class)->readDocsHtml((string) ($arguments['name'] ?? '')) ?? '',
|
||||
]);
|
||||
})
|
||||
->modalAlignment(Alignment::Center)
|
||||
->modalWidth(Width::FiveExtraLarge)
|
||||
->modalSubmitAction(false)
|
||||
->modalCancelAction(fn (Action $action): Action => $action
|
||||
->label(__('admin.actions.close'))
|
||||
->color('primary')
|
||||
->close()
|
||||
)
|
||||
->modalFooterActionsAlignment(Alignment::End)
|
||||
->closeModalByClickingAway()
|
||||
->closeModalByEscaping()
|
||||
->stickyModalHeader()
|
||||
->stickyModalFooter()
|
||||
->extraModalWindowAttributes(['class' => 'lb-plugin-docs-modal']);
|
||||
}
|
||||
|
||||
protected function reload(PluginManager $manager): void
|
||||
|
||||
@@ -22,4 +22,10 @@ class MembershipPluginPage extends PluginSkeletonPage
|
||||
{
|
||||
return 'membership';
|
||||
}
|
||||
|
||||
public static function shouldRegisterNavigation(): bool
|
||||
{
|
||||
// UI is owned by plugins/larablog/membership Filament resources.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user