Plugins
Announce
An easy way to shout your exceptional offerings to the potential users
Panel Builder
Dark theme support
No
Multi language support
No
Not compatible with v5
Supported versions: 3.x
Documentation

Latest Version on Packagist GitHub Tests Action Status Total Downloads

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

  • [x] Can add actions to every announcement
  • [x] 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.

Rupadana

Rupadana is full-stack web developer from Indonesian. He embarked on his journey in late 2019, and currently active on Filament Community.

5
Plugins
257
Stars
More from this author
Featured Plugins