awcodes / recently
轻松跟踪和访问您在filament面板中最近查看的记录。
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.1
- pestphp/pest-plugin-laravel: ^2.0
- pestphp/pest-plugin-livewire: ^2.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-11 12:53:49 UTC
README
轻松跟踪和访问您在filament面板中最近查看的记录。
安装
您可以通过composer安装此包,然后运行安装命令并按照提示操作。
composer require awcodes/recently
php artisan recently:install
为了与Filament的主题方法保持一致,您需要使用自定义主题才能使用此插件。
重要
如果您还没有设置自定义主题并且正在使用面板,请首先遵循Filament文档中的说明。以下内容适用于面板包和独立表单包。
将插件的视图添加到您的tailwind.config.js
文件中。
content: [ './vendor/awcodes/recently/resources/**/*.blade.php', ]
用法
此插件在您的filament面板中添加了“最近查看”功能,使用户能够快速访问他们最近交互过的资源。它跟踪已启用的资源的EditRecord
和ViewRecord
页面的查看/访问。
注册插件
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make(), ]) }
可能的冲突
如果您正在使用QuickCreatePlugin
或OverlookPlugin
,您需要从它们中排除RecentEntryResource
。
OverlookPlugin::make() ->excludes([ RecentEntryResource::class, ]), QuickCreatePlugin::make() ->excludes([ RecentEntryResource::class, ]),
跟踪最近
要记录最近的编辑/查看,请将特性包含在您想要监控的资源EditRecord
或ViewRecord
页面中。
最近编辑:
use Awcodes\Recently\Concerns\HasRecentHistoryRecorder; class EditUser extends EditRecord { use HasRecentHistoryRecorder; protected static string $resource = UserResource::class; }
最近查看:
class ViewUser extends ViewRecord { use HasRecentHistoryRecorder; protected static string $resource = UserResource::class; }
配置
您可以通过全局的config
文件或按面板来启用/禁用或自定义插件的功能。
// config/recently.php return [ 'user_model' => App\Models\User::class, 'max_items' => 20, 'width' => 'xs', 'global_search' => true, 'menu' => true, 'icon' => 'heroicon-o-arrow-uturn-left', ];
全局搜索
默认情况下,插件将最近访问/查看的列表作为全局搜索结果的一部分列出。要禁用此功能,请从配置中将global_search
选项设置为false
,或通过按面板传递false
到globalSearch()
方法。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->globalSearch(condition: false), ]) }
菜单
默认情况下,插件将最近访问/查看的列表作为顶栏中的下拉菜单列出,使用PanelsRenderHook::USER_MENU_BEFORE
渲染钩子。要禁用此功能,请将配置中的menu
选项设置为false
,或通过按面板传递false
到menu()
方法。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->menu(condition: false), ]) }
外观
图标
为菜单设置自定义的icon
。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->icon('heroicon-o-clock'), ]); }
圆形
菜单图标是圆形的,您可以通过将false
传递到rounded()
方法来选择退出。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->rounded(condition: false), ]); }
标签
菜单没有标签,但您可以通过将字符串传递到label()
方法来自定义label
。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->label('Recently Viewed Records'), ]); }
宽度
下拉菜单使用filament的dropdown blade component,因此您可以使用任何可用的选项,默认为xs
。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->width('sm'), ]); }
最大项目数
指定在菜单中显示的最近查看项目的最大数量。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->maxItems(10), ]); }
渲染钩子
插件将使用PanelsRenderHook::USER_MENU_BEFORE
钩子渲染菜单。但是,您可以通过提供其他filament Render Hooks之一来使用renderUsingHook()
方法进行更改。
use Awcodes\Recently\RecentlyPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ RecentlyPlugin::make() ->renderUsingHook('PanelsRenderHook::USER_MENU_AFTER'), ]); }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
如果您想为此插件做出贡献,您可能希望在真实的Filament项目中对其进行测试。
- 将此存储库分支到您的GitHub账户。
- 在本地创建一个Filament应用程序。
- 在 Filament 应用程序的根目录中克隆您的分支。
- 在
/recently
目录下,为您的修复创建一个分支,例如fix/error-message
。
在应用程序的 composer.json
中安装插件
"require": { "awcodes/recently": "dev-fix/error-message as main-dev", }, "repositories": [ { "type": "path", "url": "recently" } ]
现在,运行 composer update
。
有关详细信息,请参阅 贡献指南。
安全漏洞
请查阅我们的安全策略,了解如何报告安全漏洞。
致谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件。