This package inspired by nova-filterable-cards
Add custom filters to your Laravel Nova metrics.
You can install the package in to a Laravel app that uses Nova via composer:
composer require nemrutco/nova-filterable-metrics
To add the filter ability to your Laravel Nova metric cards, you need to add one of the Filterable
traits to your metrics.
Depending on your metric type, these are the available traits:
FilterableValue
FilterableTrend
FilterablePartition
For example, within your custom Nova value metric card:
// in your Nova value metric card class:
use Nemrutco\Filterable\FilterableValue;
use FilterableValue;
The available filters for your cards can be defined, by adding filters
method which returns array of Nova Filters to your metrics. You can use any Nova Filters you defined in your application.
Example:
// in your filterable Nova metric:
use App\Nova\Filters\Date;
use App\Nova\Filters\Store;
public function filters()
{
return [
new Store,
new Date,
];
}
By default, this package supports all of the Nova Filter types. For Date type filters it uses flatpicker.
if you want to enable date range, simply add
public function range()
{
return $this->withMeta(['mode' => 'range']);
}
in your DateFilter filter, and make sure to call it in your use case as:
public function filters(Request $request)
{
return [
(new Date)->range(),
]
}
In that case you don't need to use Nova's default ranges
. Instead you can use a date filter. If you use ranges and a date filter, your date filter will be applied only within the selected Nova's range. So try to not use ranges and a date filter at same time.
The MIT License (MIT). Please see License File for more information.