Skip to content

Commit beb8a4d

Browse files
committed
add unpublish action
1 parent daa961c commit beb8a4d

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

app/Filament/Resources/ArticleResource.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use App\Filament\Resources\ArticleResource\Actions\PublishAction;
66
use App\Filament\Resources\ArticleResource\Actions\ScheduleAction;
7+
use App\Filament\Resources\ArticleResource\Actions\UnpublishAction;
78
use App\Filament\Resources\ArticleResource\Pages;
89
use App\Models\Article;
910
use Filament\Forms\Components\MarkdownEditor;
@@ -86,6 +87,7 @@ public static function table(Table $table): Table
8687
->actions([
8788
ActionGroup::make([
8889
Tables\Actions\EditAction::make()->url(fn ($record) => static::getUrl('edit', ['record' => $record->id])),
90+
UnpublishAction::make('unpublish'),
8991
PublishAction::make('publish'),
9092
ScheduleAction::make('schedule'),
9193
]),
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace App\Filament\Resources\ArticleResource\Actions;
4+
5+
use App\Models\Article;
6+
use Filament\Tables\Actions\Action;
7+
8+
class UnpublishAction extends Action
9+
{
10+
protected function setUp(): void
11+
{
12+
$this
13+
->label('Unpublish')
14+
->icon('heroicon-o-archive-box-x-mark')
15+
->action(fn (Article $article) => $article->unpublish())
16+
->visible(fn (Article $article) => $article->isPublished())
17+
->requiresConfirmation();
18+
}
19+
}

app/Models/Article.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ public function publish(?DateTime $on = null)
7373
]);
7474
}
7575

76+
public function unpublish()
77+
{
78+
$this->update([
79+
'published_at' => null,
80+
]);
81+
}
82+
7683
/*
7784
|--------------------------------------------------------------------------
7885
| Listeners

0 commit comments

Comments
 (0)