From 766c6c08f48b0d651215e38a4e993c4ccc4446eb Mon Sep 17 00:00:00 2001 From: Lance Pioch Date: Sun, 31 Mar 2024 01:39:24 -0400 Subject: [PATCH] Easy to copy and paste --- .../Resources/NodeResource/Pages/EditNode.php | 24 +++++++- composer.json | 1 + composer.lock | 56 ++++++++++++++++++- 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/app/Filament/Resources/NodeResource/Pages/EditNode.php b/app/Filament/Resources/NodeResource/Pages/EditNode.php index 7be05ce3c..e508f7c30 100644 --- a/app/Filament/Resources/NodeResource/Pages/EditNode.php +++ b/app/Filament/Resources/NodeResource/Pages/EditNode.php @@ -3,10 +3,13 @@ namespace App\Filament\Resources\NodeResource\Pages; use App\Filament\Resources\NodeResource; +use App\Models\Node; use Filament\Actions; use Filament\Forms; use Filament\Forms\Components\Wizard; use Filament\Resources\Pages\EditRecord; +use Illuminate\Support\HtmlString; +use Webbingbrasil\FilamentCopyActions\Forms\Actions\CopyAction; class EditNode extends EditRecord { @@ -23,7 +26,17 @@ class EditNode extends EditRecord Forms\Components\Wizard\Step::make('Configuration') ->description('') ->schema([ - + Forms\Components\Placeholder::make('instructions') + ->columnSpanFull() + ->content(new HtmlString(' + This file should be placed in your daemon\'s root directory (usually /etc/pelican) in a file called config.yml. + ')), + Forms\Components\Textarea::make('config') + ->label('Configuration File') + ->disabled() + ->rows(19) + ->hintAction(CopyAction::make()) + ->columnSpanFull(), ]), ]) ->columns(4) @@ -36,6 +49,15 @@ class EditNode extends EditRecord ]); } + protected function mutateFormDataBeforeFill(array $data): array + { + $node = Node::findOrFail($data['id']); + + $data['config'] = $node->getYamlConfiguration(); + + return $data; + } + protected function getSteps(): array { return [ diff --git a/composer.json b/composer.json index 4fbc39fd6..e5cf3f9e0 100644 --- a/composer.json +++ b/composer.json @@ -35,6 +35,7 @@ "symfony/mailgun-mailer": "^7.0", "symfony/postmark-mailer": "^7.0", "symfony/yaml": "^7.0", + "webbingbrasil/filament-copyactions": "^3.0", "webmozart/assert": "~1.11.0" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 9adbea1aa..eb3d9fa05 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "27aa42f361104f415f248548d4667e43", + "content-hash": "bf147fbbb2f57777d6c6b137bc61bcda", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -9471,6 +9471,60 @@ ], "time": "2022-03-08T17:03:00+00:00" }, + { + "name": "webbingbrasil/filament-copyactions", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/webbingbrasil/filament-copyactions.git", + "reference": "363215d222de4127d81ea295c8a2163cd5c5a3f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webbingbrasil/filament-copyactions/zipball/363215d222de4127d81ea295c8a2163cd5c5a3f8", + "reference": "363215d222de4127d81ea295c8a2163cd5c5a3f8", + "shasum": "" + }, + "require": { + "filament/filament": "^3.0", + "php": "^8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Webbingbrasil\\FilamentCopyActions\\FilamentCopyActionsProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Webbingbrasil\\FilamentCopyActions\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Danilo Andrade", + "email": "danilo@webbingbrasil.com.br", + "role": "Developer" + } + ], + "description": "A easy-to-use copy actions for Filament Admin.", + "homepage": "https://github.com/webbingbrasil/filament-copyactions", + "keywords": [ + "filament", + "laravel" + ], + "support": { + "issues": "https://github.com/webbingbrasil/filament-copyactions/issues", + "source": "https://github.com/webbingbrasil/filament-copyactions/tree/3.0.0" + }, + "time": "2024-01-17T18:17:00+00:00" + }, { "name": "webmozart/assert", "version": "1.11.0",