Menu Filter
Activate Filter
You can activate the filter by calling the MenuFilter::activate
method.
In the activate attribute you can define where the filter should be displayed.
Valid options are top
, bottom
or both
to display it on top and bottom.
use NormanHuth\NovaMenu\Services\MenuFilter; class NovaServiceProvider extends NovaApplicationServiceProvider{ /** * Bootstrap any application services. * * @return void */ public function boot(): void { parent::boot(); MenuFilter::activate('top');
Optional: Add Keywords To A Element
You can add keywords to a menu element for the filter by invoking the addKeywords
method when defining a menu element:
use NormanHuth\NovaMenu\MenuSection; use NormanHuth\NovaMenu\MenuGroup; use NormanHuth\NovaMenu\MenuItem; use NormanHuth\NovaMenu\MenuCard; Nova::mainMenu(function (Request $request) { return [ //.. MenuSection::make(__('Customers'), []) ->addKeywords(['Nature', 'Ocean']), MenuGroup::make(__('Licensing'), []) ->addKeywords(['Nature', 'Ocean']), MenuItem::resource(User::class) ->addKeywords(['Nature', 'Ocean']), MenuCard::make('info') ->addKeywords(['Nature', 'Ocean']), // .. ];});
Change Placeholder
You can change the default placeholder by invoking the placeholder
when activate filter.
Default: __('Filter')
use NormanHuth\NovaMenu\Services\MenuFilter; class NovaServiceProvider extends NovaApplicationServiceProvider{ /** * Bootstrap any application services. * * @return void */ public function boot(): void { parent::boot(); MenuFilter::activate('top') ->placeholder(__('Search menu'));
Change Empty Text
You can change the default empty text by invoking the emptyText
when activate filter.
Default: __('No :resource matched the given criteria.')
- resource: __('menu entry')
use NormanHuth\NovaMenu\Services\MenuFilter; class NovaServiceProvider extends NovaApplicationServiceProvider{ /** * Bootstrap any application services. * * @return void */ public function boot(): void { parent::boot(); MenuFilter::activate('top') ->emptyText(__('No items found'));
Change Filter Stylesheet Class
This feature is available from version 1.6.5.
By default, the stylesheet classes hidden
is used for filtering.
You can change this by invoking the setFilterClass
when defining a menu element.
use NormanHuth\NovaMenu\MenuSection; use NormanHuth\NovaMenu\MenuGroup; use NormanHuth\NovaMenu\MenuItem; use NormanHuth\NovaMenu\MenuCard; Nova::mainMenu(function (Request $request) { return [ //.. MenuSection::make(__('Customers'), []) ->setFilterClass('display-none'), MenuGroup::make(__('Licensing'), []) ->setFilterClass('display-none'), MenuItem::resource(User::class) ->setFilterClass('display-none'), MenuCard::make('info') ->setFilterClass('display-none'), // .. ];});