rupadana / filament-announce
An easy way to shout your exceptional offerings to the potential users
Fund package maintenance!
rupadana
Installs: 4 965
Dependents: 0
Suggesters: 0
Security: 0
Stars: 46
Watchers: 1
Forks: 14
Open Issues: 4
Requires
- php: ^8.1
- filament/filament: ^3.0
- guava/filament-icon-picker: ^2.0
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpunit/phpunit: ^10.0.17
This package is auto-updated.
Last update: 2024-11-06 09:01:36 UTC
README
The easiest way to shout announcements in filament!
Installation
You can install the package via composer:
composer require rupadana/filament-announce
# Laravel 11 and higher php artisan make:notifications-table # Laravel 10 php artisan notifications:table
Run migration
php artisan migrate
Optionally, you can publish the views using
php artisan vendor:publish --tag="filament-announce-views"
publish config
php artisan vendor:publish --tag="filament-announce-config"
return [ 'navigation' => [ 'group' => '', 'sort' => 1 ], 'can_access' => [ 'role' => ['super_admin'] ] ];
Usage
You must enable Announce by adding FilamentAnnouncePlugin
class to your Filament Panel's plugin() or plugins([]) method:
use Rupadana\FilamentAnnounce\FilamentAnnouncePlugin; use Filament\Support\Colors\Color; class CustomersPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ... ->plugin( FilamentAnnouncePlugin::make() ->pollingInterval('30s') // optional, by default it is set to null ->defaultColor(Color::Blue) // optional, by default it is set to "primary" ) } }
To override the plugins announcementResource with your own custom resource, you should append usingResource
method when registering the plugin:
use Rupadana\FilamentAnnounce\FilamentAnnouncePlugin; use Filament\Support\Colors\Color; class CustomersPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ... ->plugin( FilamentAnnouncePlugin::make() ->usingResource(MyCustomAnnouncementResource::class) ->pollingInterval('30s') // optional, by default it is set to null ->defaultColor(Color::Blue) // optional, by default it is set to "primary" ) } }
Now you can announce whatever to users:
use App\Models\User; use Rupadana\FilamentAnnounce\Announce; Announce::make() ->title('Big News!') ->icon('heroicon-o-megaphone') ->body('Filament can now show very important message to specific users!') ->disableCloseButton() // Optional, if you want ur announcement discloseable ->announceTo(User::all());
Title and Body Alignment
By default, the alignments will be start
and you might want to adjust them:
use App\Models\User; use Filament\Support\Enums\Alignment; use Rupadana\FilamentAnnounce\Announce; Announce::make() ->title('Big News!') ->icon('heroicon-o-megaphone') ->body('Filament can now show very important message to specific users!') ->alignment(Alignment::Center) // this will set both title and body alignments (common alignment) ->titleAlignment(Alignment::Start) // this will set title alignment and take precedence over common alignment methods ->bodyAlignment(Alignment::Start) // this will set body alignment and take precedence over common alignment methods ->actions([ Action::make('view') ->button(), Action::make('undo') ->color('gray'), ]) ->announceTo(User::all());
You can also use alignStart()
, alignCenter()
, alignEnd()
, alignJustify()
, alignBetween()
, alignLeft()
and alignRight()
for your convenience.
Add Actions to Announce
Since Announce extends Filament Notification, you can add Filament Notification Actions to your announcements:
use App\Models\User; use Rupadana\FilamentAnnounce\Announce; Announce::make() ->title('Big News!') ->icon('heroicon-o-megaphone') ->body('Filament can now show very important message to specific users!') ->actions([ Action::make('view') ->button(), Action::make('undo') ->color('gray'), ]) ->announceTo(User::all());
Read more about Notification Action.
Announcement Resource
Todo
- Can add actions to every announcement
- Provide a resource/action to send announcement
- Add banner-like implementations for global announcement
- Set end date or time so it will disapear automaticly
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.