Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/awcodes/filament-badgeable-column
A custom table column that supports prefixed and suffixed badges to the column content.
https://github.com/awcodes/filament-badgeable-column
filament filament-plugin
Last synced: about 15 hours ago
JSON representation
A custom table column that supports prefixed and suffixed badges to the column content.
- Host: GitHub
- URL: https://github.com/awcodes/filament-badgeable-column
- Owner: awcodes
- License: mit
- Created: 2022-11-22T21:57:31.000Z (about 2 years ago)
- Default Branch: 2.x
- Last Pushed: 2024-08-06T16:04:51.000Z (5 months ago)
- Last Synced: 2024-10-29T11:58:20.487Z (about 2 months ago)
- Topics: filament, filament-plugin
- Language: PHP
- Homepage:
- Size: 469 KB
- Stars: 123
- Watchers: 3
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
- awesome-filament - awcodes/filament-badgeable-column - Allows to append badges to Filament columns. (UI)
README
# Filament Badgeable Column
[![Latest Version on Packagist](https://img.shields.io/packagist/v/awcodes/filament-badgeable-column.svg?style=flat-square)](https://packagist.org/packages/awcodes/filament-badgeable-column)
[![Total Downloads](https://img.shields.io/packagist/dt/awcodes/filament-badgeable-column.svg?style=flat-square)](https://packagist.org/packages/awcodes/filament-badgeable-column)![badgeable-column-og](https://res.cloudinary.com/aw-codes/image/upload/w_1200,f_auto,q_auto/plugins/badgeable-column/awcodes-badgeable-column.jpg)
With Filament Badgeable Column you prepend and append badges to your columns.
## Installation
You can install the package via composer:
```bash
composer require awcodes/filament-badgeable-column
```In an effort to align with Filament's theming methodology you will need to use a custom theme to use this plugin.
> **Note**
> If you have not set up a custom theme and are using a Panel follow the instructions in the [Filament Docs](https://filamentphp.com/docs/3.x/panels/themes#creating-a-custom-theme) first. The following applies to both the Panels Package and the standalone Forms package.Add the plugin's views to your `tailwind.config.js` file.
```js
content: [
'/awcodes/filament-badgeable-column/resources/**/*.blade.php',
]
```## Usage
```php
use Awcodes\FilamentBadgeableColumn\Components\Badge;
use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn;return $table
->columns([
BadgeableColumn::make('name')
->suffixBadges([
Badge::make('hot')
->label('Hot')
->color('danger')
->visible(fn(Model $record) => $record->qty < 5),
])
->prefixBadges([
Badge::make('brand_name')
->label(fn(Model $record) => $record->status)
->color(function(Model $record) {
return match ($record->status) {
'active' => 'success',
'inactive' => 'danger',
default => 'warning',
};
})
])
]);
```You can also define the array of badges via a closure, if you want the array of badges to be based on dynamic data. The closure should return an array of `Badge` objects, similar to above.
The example below assumes the records have a `BelongsToMany` relationship called `topics`, and shows how to display each topic name as a badge.
```php
use Awcodes\FilamentBadgeableColumn\Components\Badge;
use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn;return $table
->columns([
BadgeableColumn::make('title')
->suffixBadges(function($record) {
return $record->topics->map(function($topic) {
return Badge::make($topic->name)->color($topic->color);
});
})
->searchable()
->sortable(),
]);
```## Badgeable Tags Column
> **Warning**
> The Badgeable Tags Column has been deprecated please use the `TextColumn` `badge()` method instead.## Badge Shape
If you prefer to have a more "rounded" shape you can use the `asPills()`
method to set the shape of the badges.```php
use Awcodes\FilamentBadgeableColumn\Components\Badge;
use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn;return $table
->columns([
BadgeableColumn::make('name')
->asPills()
]);
```## Separator
The default separator between the column text and the badges is '—'.
If you would like to use a different separator, use the `separator()`
method to set character to be used as a separator.```php
use Awcodes\FilamentBadgeableColumn\Components\Badge;
use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn;return $table
->columns([
BadgeableColumn::make('name')
->separator(':')
]);
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.
## Security Vulnerabilities
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
## Credits
- [awcodes](https://github.com/awcodes)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.