From d5d0f73d285ea06d0f55bc0597735b852b7ba345 Mon Sep 17 00:00:00 2001 From: Elsevar Date: Thu, 22 Feb 2024 08:09:07 +0000 Subject: [PATCH 1/5] Create 2024_02_22_120000_add_all_users_to_announcements_table.php --- ...0_add_all_users_to_announcements_table.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php diff --git a/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php b/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php new file mode 100644 index 0000000..6f65c2f --- /dev/null +++ b/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php @@ -0,0 +1,23 @@ +boolean('all_users') + ->default(false) + ->after('users'); + }); + } + + public function down(): void + { + Schema::table('announcements', function (Blueprint $table) { + // + }); + } +}; From ebd55c93c83f36246010cb50e77daa6aaaa7b0e3 Mon Sep 17 00:00:00 2001 From: Elsevar Date: Thu, 22 Feb 2024 08:09:23 +0000 Subject: [PATCH 2/5] Update Announcement.php --- src/Models/Announcement.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Models/Announcement.php b/src/Models/Announcement.php index f07b11f..a667149 100644 --- a/src/Models/Announcement.php +++ b/src/Models/Announcement.php @@ -17,6 +17,7 @@ class Announcement extends Model 'body', 'icon', 'users', + 'all_users' ]; protected $casts = [ From 3c3d131c3006c0086a06b6aaeb178fd72deb8046 Mon Sep 17 00:00:00 2001 From: Elsevar Date: Thu, 22 Feb 2024 08:09:48 +0000 Subject: [PATCH 3/5] Update CreateAnnouncement.php --- .../AnnouncementResource/Pages/CreateAnnouncement.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Resources/AnnouncementResource/Pages/CreateAnnouncement.php b/src/Resources/AnnouncementResource/Pages/CreateAnnouncement.php index b6fc280..97dd7d7 100644 --- a/src/Resources/AnnouncementResource/Pages/CreateAnnouncement.php +++ b/src/Resources/AnnouncementResource/Pages/CreateAnnouncement.php @@ -26,10 +26,9 @@ public function afterCreate() $icon = $record->icon; $title = $record->title; $body = $record->body; - - $isNotifyToAll = in_array('all', $record->users); - - $users = $isNotifyToAll ? User::all() : User::query()->whereIn('id', $record->users)->get(); + $isForAll = $record->all_users; + + $users = $isForAll ? User::all() : User::query()->whereIn('id', $record->users)->get(); $announce = Announce::make(); From 00f96f9770e728c40f65fb397594386f8cb9f63a Mon Sep 17 00:00:00 2001 From: Elsevar Date: Thu, 22 Feb 2024 08:10:11 +0000 Subject: [PATCH 4/5] Update AnnouncementResource.php --- src/Resources/AnnouncementResource.php | 63 +++++++++++++++----------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/src/Resources/AnnouncementResource.php b/src/Resources/AnnouncementResource.php index 2c404f1..e6cc187 100644 --- a/src/Resources/AnnouncementResource.php +++ b/src/Resources/AnnouncementResource.php @@ -4,9 +4,12 @@ use App\Models\User; use Filament\Forms\Components\ColorPicker; +use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; +use Filament\Forms\Components\Checkbox; +use Filament\Forms\Components\Toggle; use Filament\Forms\Form; use Filament\Forms\Get; use Filament\Resources\Resource; @@ -29,34 +32,40 @@ public static function form(Form $form): Form { return $form ->schema([ - TextInput::make('name') - ->minLength(5) - ->required(), - TextInput::make('title') - ->minLength(5) - ->required(), - Textarea::make('body') - ->minLength(20) - ->required(), - IconPicker::make('icon'), - Select::make('color') - ->options([ - ...collect(FilamentColor::getColors())->map(fn ($value, $key) => ucfirst($key))->toArray(), - 'custom' => 'Custom', - ]) - ->live(), - ColorPicker::make('custom_color') - ->hidden(fn (Get $get) => $get('color') != 'custom') - ->requiredIf('color', 'custom') - ->rgb(), + Section::make() + ->schema([ + TextInput::make('name') + ->minLength(5) + ->required(), + TextInput::make('title') + ->minLength(5) + ->required(), + Textarea::make('body') + ->minLength(20) + ->required(), + IconPicker::make('icon'), + Select::make('color') + ->options([ + ...collect(FilamentColor::getColors())->map(fn($value, $key) => ucfirst($key))->toArray(), + 'custom' => 'Custom', + ]) + ->live(), + ColorPicker::make('custom_color') + ->hidden(fn(Get $get) => $get('color') != 'custom') + ->requiredIf('color', 'custom') + ->rgb(), - Select::make('users') - ->options([ - 'all' => 'all', - ...User::all()->pluck('name', 'id'), - ]) - ->multiple() - ->required(), + Select::make('users') + ->options(User::pluck('name', 'id')->toArray()) + ->hidden(fn(Get $get) => $get('all_users')) + ->multiple() + ->required(), + ])->columns(2), + + Toggle::make('all_users') + ->live() + ->label('All users') + ->default(false), ]); } From 032e05611d62a84b047ec318ced37304b2ed098c Mon Sep 17 00:00:00 2001 From: Elsevar Date: Thu, 22 Feb 2024 09:19:50 +0000 Subject: [PATCH 5/5] Update 2024_02_22_120000_add_all_users_to_announcements_table.php --- .../2024_02_22_120000_add_all_users_to_announcements_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php b/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php index 6f65c2f..32272a5 100644 --- a/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php +++ b/database/migrations/2024_02_22_120000_add_all_users_to_announcements_table.php @@ -17,7 +17,7 @@ public function up(): void public function down(): void { Schema::table('announcements', function (Blueprint $table) { - // + $table->dropColumn('all_users'); }); } };