diff --git a/app/Filament/Admin/Widgets/CanaryWidget.php b/app/Filament/Admin/Widgets/CanaryWidget.php index 80e4c07f8..de3b8cc2c 100644 --- a/app/Filament/Admin/Widgets/CanaryWidget.php +++ b/app/Filament/Admin/Widgets/CanaryWidget.php @@ -2,15 +2,13 @@ namespace App\Filament\Admin\Widgets; -use Filament\Actions\CreateAction; -use Filament\Widgets\Widget; +use Filament\Forms\Components\Actions\Action; +use Filament\Forms\Components\Placeholder; +use Filament\Forms\Components\Section; +use Filament\Forms\Form; -class CanaryWidget extends Widget +class CanaryWidget extends FormWidget { - protected static string $view = 'filament.admin.widgets.canary-widget'; - - protected static bool $isLazy = false; - protected static ?int $sort = 1; public static function canView(): bool @@ -18,15 +16,28 @@ class CanaryWidget extends Widget return config('app.version') === 'canary'; } - public function getViewData(): array + public function form(Form $form): Form { - return [ - 'actions' => [ - CreateAction::make() - ->label(trans('admin/dashboard.sections.intro-developers.button_issues')) - ->icon('tabler-brand-github') - ->url('https://github.com/pelican-dev/panel/issues', true), - ], - ]; + return $form + ->schema([ + Section::make(trans('admin/dashboard.sections.intro-developers.heading')) + ->icon('tabler-code') + ->iconColor('primary') + ->collapsible() + ->collapsed() + ->persistCollapsed() + ->schema([ + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-developers.content')), + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-developers.extra_note')), + ]) + ->headerActions([ + Action::make('issues') + ->label(trans('admin/dashboard.sections.intro-developers.button_issues')) + ->icon('tabler-brand-github') + ->url('https://github.com/pelican-dev/panel/issues', true), + ]), + ]); } } diff --git a/app/Filament/Admin/Widgets/FormWidget.php b/app/Filament/Admin/Widgets/FormWidget.php new file mode 100644 index 000000000..844d37918 --- /dev/null +++ b/app/Filament/Admin/Widgets/FormWidget.php @@ -0,0 +1,16 @@ + [ - CreateAction::make() - ->label(trans('admin/dashboard.sections.intro-help.button_docs')) - ->icon('tabler-speedboat') - ->url('https://pelican.dev/docs', true), - ], - ]; + return $form + ->schema([ + Section::make(trans('admin/dashboard.sections.intro-help.heading')) + ->icon('tabler-question-mark') + ->iconColor('info') + ->collapsible() + ->persistCollapsed() + ->schema([ + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-help.content')), + ]) + ->headerActions([ + Action::make('docs') + ->label(trans('admin/dashboard.sections.intro-help.button_docs')) + ->icon('tabler-speedboat') + ->url('https://pelican.dev/docs', true), + ]), + ]); } } diff --git a/app/Filament/Admin/Widgets/NoNodesWidget.php b/app/Filament/Admin/Widgets/NoNodesWidget.php index bf4e75dbc..40751870f 100644 --- a/app/Filament/Admin/Widgets/NoNodesWidget.php +++ b/app/Filament/Admin/Widgets/NoNodesWidget.php @@ -4,15 +4,13 @@ namespace App\Filament\Admin\Widgets; use App\Filament\Admin\Resources\NodeResource\Pages\CreateNode; use App\Models\Node; -use Filament\Actions\CreateAction; -use Filament\Widgets\Widget; +use Filament\Forms\Components\Actions\Action; +use Filament\Forms\Components\Placeholder; +use Filament\Forms\Components\Section; +use Filament\Forms\Form; -class NoNodesWidget extends Widget +class NoNodesWidget extends FormWidget { - protected static string $view = 'filament.admin.widgets.no-nodes-widget'; - - protected static bool $isLazy = false; - protected static ?int $sort = 2; public static function canView(): bool @@ -20,15 +18,25 @@ class NoNodesWidget extends Widget return Node::count() <= 0; } - public function getViewData(): array + public function form(Form $form): Form { - return [ - 'actions' => [ - CreateAction::make() - ->label(trans('admin/dashboard.sections.intro-first-node.button_label')) + return $form + ->schema([ + Section::make(trans('admin/dashboard.sections.intro-first-node.heading')) ->icon('tabler-server-2') - ->url(CreateNode::getUrl()), - ], - ]; + ->iconColor('primary') + ->collapsible() + ->persistCollapsed() + ->schema([ + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-first-node.content')), + ]) + ->headerActions([ + Action::make('create-node') + ->label(trans('admin/dashboard.sections.intro-first-node.button_label')) + ->icon('tabler-server-2') + ->url(CreateNode::getUrl()), + ]), + ]); } } diff --git a/app/Filament/Admin/Widgets/SupportWidget.php b/app/Filament/Admin/Widgets/SupportWidget.php index c9eff0b7c..ce42762f7 100644 --- a/app/Filament/Admin/Widgets/SupportWidget.php +++ b/app/Filament/Admin/Widgets/SupportWidget.php @@ -2,27 +2,37 @@ namespace App\Filament\Admin\Widgets; -use Filament\Actions\CreateAction; -use Filament\Widgets\Widget; +use Filament\Forms\Components\Actions\Action; +use Filament\Forms\Components\Placeholder; +use Filament\Forms\Components\Section; +use Filament\Forms\Form; -class SupportWidget extends Widget +class SupportWidget extends FormWidget { - protected static string $view = 'filament.admin.widgets.support-widget'; - - protected static bool $isLazy = false; - protected static ?int $sort = 3; - public function getViewData(): array + public function form(Form $form): Form { - return [ - 'actions' => [ - CreateAction::make() - ->label(trans('admin/dashboard.sections.intro-support.button_donate')) - ->icon('tabler-cash') - ->url('https://pelican.dev/donate', true) - ->color('success'), - ], - ]; + return $form + ->schema([ + Section::make(trans('admin/dashboard.sections.intro-support.heading')) + ->icon('tabler-heart-filled') + ->iconColor('danger') + ->collapsible() + ->persistCollapsed() + ->schema([ + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-support.content')), + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-support.extra_note')), + ]) + ->headerActions([ + Action::make('donate') + ->label(trans('admin/dashboard.sections.intro-support.button_donate')) + ->icon('tabler-cash') + ->url('https://pelican.dev/donate', true) + ->color('success'), + ]), + ]); } } diff --git a/app/Filament/Admin/Widgets/UpdateWidget.php b/app/Filament/Admin/Widgets/UpdateWidget.php index 95ad87e61..95e7db4a9 100644 --- a/app/Filament/Admin/Widgets/UpdateWidget.php +++ b/app/Filament/Admin/Widgets/UpdateWidget.php @@ -3,15 +3,13 @@ namespace App\Filament\Admin\Widgets; use App\Services\Helpers\SoftwareVersionService; -use Filament\Actions\CreateAction; -use Filament\Widgets\Widget; +use Filament\Forms\Components\Actions\Action; +use Filament\Forms\Components\Placeholder; +use Filament\Forms\Components\Section; +use Filament\Forms\Form; -class UpdateWidget extends Widget +class UpdateWidget extends FormWidget { - protected static string $view = 'filament.admin.widgets.update-widget'; - - protected static bool $isLazy = false; - protected static ?int $sort = 0; private SoftwareVersionService $softwareVersionService; @@ -21,19 +19,34 @@ class UpdateWidget extends Widget $this->softwareVersionService = $softwareVersionService; } - public function getViewData(): array + public function form(Form $form): Form { - return [ - 'version' => $this->softwareVersionService->currentPanelVersion(), - 'latestVersion' => $this->softwareVersionService->latestPanelVersion(), - 'isLatest' => $this->softwareVersionService->isLatestPanel(), - 'actions' => [ - CreateAction::make() - ->label(trans('admin/dashboard.sections.intro-update-available.heading')) - ->icon('tabler-clipboard-text') - ->url('https://pelican.dev/docs/panel/update', true) - ->color('warning'), - ], - ]; + $isLatest = $this->softwareVersionService->isLatestPanel(); + + return $form + ->schema([ + $isLatest + ? Section::make(trans('admin/dashboard.sections.intro-no-update.heading')) + ->icon('tabler-checkbox') + ->iconColor('success') + ->schema([ + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-no-update.content', ['version' => $this->softwareVersionService->currentPanelVersion()])), + ]) + : Section::make(trans('admin/dashboard.sections.intro-update-available.heading')) + ->icon('tabler-info-circle') + ->iconColor('warning') + ->schema([ + Placeholder::make('') + ->content(trans('admin/dashboard.sections.intro-update-available.content', ['latestVersion' => $this->softwareVersionService->latestPanelVersion()])), + ]) + ->headerActions([ + Action::make('update') + ->label(trans('admin/dashboard.sections.intro-update-available.heading')) + ->icon('tabler-clipboard-text') + ->url('https://pelican.dev/docs/panel/update', true) + ->color('warning'), + ]), + ]); } } diff --git a/resources/views/filament/admin/widgets/canary-widget.blade.php b/resources/views/filament/admin/widgets/canary-widget.blade.php deleted file mode 100644 index d05fc589c..000000000 --- a/resources/views/filament/admin/widgets/canary-widget.blade.php +++ /dev/null @@ -1,19 +0,0 @@ - - - {{ trans('admin/dashboard.sections.intro-developers.heading') }} - -

{{ trans('admin/dashboard.sections.intro-developers.content') }}

- -


- -

{{ trans('admin/dashboard.sections.intro-developers.extra_note') }}

-
-
diff --git a/resources/views/filament/admin/widgets/form-widget.blade.php b/resources/views/filament/admin/widgets/form-widget.blade.php new file mode 100644 index 000000000..642f88749 --- /dev/null +++ b/resources/views/filament/admin/widgets/form-widget.blade.php @@ -0,0 +1,3 @@ + + {{ $this->form }} + diff --git a/resources/views/filament/admin/widgets/help-widget.blade.php b/resources/views/filament/admin/widgets/help-widget.blade.php deleted file mode 100644 index 3b33b0b7d..000000000 --- a/resources/views/filament/admin/widgets/help-widget.blade.php +++ /dev/null @@ -1,14 +0,0 @@ - - - {{ trans('admin/dashboard.sections.intro-help.heading') }} - -

{{ trans('admin/dashboard.sections.intro-help.content') }}

-
-
diff --git a/resources/views/filament/admin/widgets/no-nodes-widget.blade.php b/resources/views/filament/admin/widgets/no-nodes-widget.blade.php deleted file mode 100644 index 47904b891..000000000 --- a/resources/views/filament/admin/widgets/no-nodes-widget.blade.php +++ /dev/null @@ -1,14 +0,0 @@ - - - {{ trans('admin/dashboard.sections.intro-first-node.heading') }} - -

{{ trans('admin/dashboard.sections.intro-first-node.content') }}

-
-
diff --git a/resources/views/filament/admin/widgets/support-widget.blade.php b/resources/views/filament/admin/widgets/support-widget.blade.php deleted file mode 100644 index a45f0849c..000000000 --- a/resources/views/filament/admin/widgets/support-widget.blade.php +++ /dev/null @@ -1,18 +0,0 @@ - - - {{ trans('admin/dashboard.sections.intro-support.heading') }} - -

{{ trans('admin/dashboard.sections.intro-support.content') }}

- -


- -

{{ trans('admin/dashboard.sections.intro-support.extra_note') }}

-
-
diff --git a/resources/views/filament/admin/widgets/update-widget.blade.php b/resources/views/filament/admin/widgets/update-widget.blade.php deleted file mode 100644 index 9dd757514..000000000 --- a/resources/views/filament/admin/widgets/update-widget.blade.php +++ /dev/null @@ -1,25 +0,0 @@ - - @if (!$isLatest) - - {{ trans('admin/dashboard.sections.intro-update-available.heading') }} - -

{{ trans('admin/dashboard.sections.intro-update-available.content', ['latestVersion' => $latestVersion]) }}

- -
- @else - - {{ trans('admin/dashboard.sections.intro-no-update.heading') }} - -

{{ trans('admin/dashboard.sections.intro-no-update.content', ['version' => $version]) }}

-
- @endif -