rupadana / filament-panel-switch
轻松切换你的丝材面板
v3.0.0
2023-09-11 02:04 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- spatie/laravel-ray: ^1.26
README
面板切换
在Filament中轻松切换面板。
安装
您可以通过Composer安装此包。
composer require bezhansalleh/filament-panel-switch
这就完成了,不需要其他步骤。
配置
目前,您可以通过在服务提供者的boot()
方法中调用PanelSwitch
类的configureUsing()
方法来配置插件。
public function boot() { PanelSwitch::configureUsing(function (PanelSwitch $panelSwitch) { // }); }
可见性
默认情况下,该包会检查用户是否可以访问面板,如果是的话,切换按钮将可见。您可以进一步自定义是否显示面板切换按钮。
PanelSwitch::configureUsing(function (PanelSwitch $panelSwitch) { $panelSwitch ->visible(fn (): bool => auth()->user()?->hasAnyRole([ 'admin', 'general_manager' 'super_admin', ])); });
谁可以切换面板?
在某些情况下,您可能希望有一项选项,让一组用户可以看到面板但不能切换面板。您可以通过使用canSwitchPanels()
方法来实现。
PanelSwitch::configureUsing(function (PanelSwitch $panelSwitch) { $panelSwitch ->canSwitchPanels(fn (): bool => auth()->user()?->can('switch_panels')); });
面板排除
默认情况下,所有可用的面板都将列在面板切换菜单中。但您可以通过使用excludes()
方法排除其中一些。
PanelSwitch::configureUsing(function (PanelSwitch $panelSwitch) { $panelSwitch->excludes([ 'saas' ]); });
位置
您可以选择面板切换菜单应该放置的位置。默认情况下,面板切换菜单是通过‘panels::topbar.start’钩子
渲染的。但您可以将它更改为其他可用的钩子之一。
PanelSwitch::configureUsing(function (PanelSwitch $panelSwitch) { $panelSwitch->renderHook('panels::global-search.before'); });
PanelSwitch
有一个流畅的API,因此您可以链式调用方法并一次性配置一切。
PanelSwitch::configureUsing(function (PanelSwitch $panelSwitch) { $panelSwitch ->visible(fn (): bool => auth()->user()?->hasAnyRole([ 'admin', 'general_manager' 'super_admin', ])) ->canSwitchPanels(fn (): bool => auth()->user()?->can('switch_panels')) ->excludes([ 'saas' ]) ->renderHook('panels::global-search.before'); });
主题
默认情况下,插件使用默认的Filament主题,但您可以通过将视图路径添加到您的panels'
tailwind.config.js
文件中的content
数组来自定义它。
export default { content: [ // ... './vendor/bezhansalleh/filament-panel-switch/resources/views/panel-switch-menu.blade.php', ], // ... }
可选地,您可以使用以下方式发布视图:
php artisan vendor:publish --tag="filament-panel-switch-views"
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
如果您想为此包做出贡献,您可能希望在真实的Filament项目中对其进行测试。
- 将此存储库分支到您的GitHub账户。
- 在本地创建一个Filament应用程序。
- 在Filament应用程序的根目录中克隆您的分支。
- 在
/filament-panel-swtich
目录中,为您的修复创建一个分支,例如fix/error-message.
在您的应用程序的composer.json:
中安装包:
"require": { "bezhansalleh/filament-panel-switch": "dev-fix/error-message as main-dev", }, "repositories": [ { "type": "path", "url": "filament-panel-swtich" } ]
现在,运行composer update。
安全漏洞
请参阅我们的安全策略,了解如何报告安全漏洞。
致谢
许可协议
MIT许可协议(MIT)。请参阅许可文件以获取更多信息。