rupadana/filament-panel-switch

轻松切换你的丝材面板

v3.0.0 2023-09-11 02:04 UTC

This package is auto-updated.

Last update: 2024-09-11 04:36:00 UTC


README

Panel Switch

FILAMENT 8.x Packagist Tests Passing Code Style Passing Downloads

面板切换

在Filament中轻松切换面板。

Demo

安装

您可以通过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)。请参阅许可文件以获取更多信息。