webbingbrasil/filament-copyactions
Composer 安装命令:
composer require webbingbrasil/filament-copyactions
包简介
A easy-to-use copy actions for Filament Admin.
README 文档
README
An easy-to-use copy actions for Filament Admin
Features
- Table action to implement dynamic copy content
- Form action to use with any field
- Page action to implement a dynamic copy button on any page
- Custom copy table column to simply copy text content
Note The copy will only work if the user browser supports Clipboard API. Also, the user must be on a secure context (HTTPS) or localhost.
Installation
Use the Filament compatibility table to choose the right version constraint for your app.
composer require webbingbrasil/filament-copyactions
Filament compatibility
Pick the plugin version that match your Filament major version.
| Version | Filament (filament/filament) |
PHP |
|---|---|---|
^5.0 |
^5.0 |
^8.2 |
^4.0 |
^4.0 |
^8.2 |
^3.0 |
^3.0 |
^8.0 |
^2.0 |
^2.16 |
^8.0 |
^1.0 |
^2.15 |
^8.0 |
Usage
Table Column
Display a table text column with a copy button. The column has all features of the TextColumn and the copy action sends column content to the clipboard and displays a success tooltip.
Note Since Filament v3, there is a native feature to copy column content to clipboard (see documentation). This custom column is maintained for compatibility and as a shortcut to implement copy functionality.
use Webbingbrasil\FilamentCopyActions\Tables\CopyableTextColumn; CopyableTextColumn::make('brand.name') ->copyMessage('Brand copied to clipboard') ->searchable() ->sortable() ->toggleable()
The column has an option to display a description above or below the text, by default this description is not copied, if you want to copy the description too, use the copyWithDescription method.
Success message
You can customize the success message with the copyMessage method, the default message is Copied!.
Icon Position and Color
You can customize the icon with the icon, iconPosition and iconColor methods.
Using the CopyAction
The package provides a single action class Webbingbrasil\FilamentCopyActions\Actions\CopyAction that can be used across different contexts in your Filament application:
- As a Page Action to add copy functionality to any page
- As a Table Action to copy data from table records
- As a Form Action to copy field values (algo in Placeholder)
- InfoList, TextEntry, Entry...
This unified approach simplifies usage while maintaining consistent behavior across your application. The action inherits all customization options from Filament's base Action class.
Important The value set in
copyable()is evaluated and stored in the HTML element'sdata-copyableattribute. For complex data, you must ensure the value is properly converted to a string and escaped, as unescaped values can break the page. For form fields, by default the copy function will use the field's state.
Table Action
Display a table action button, you set the content using the copyable method. You can customize the button icon/color using the same methods of the Filament Action.
use Webbingbrasil\FilamentCopyActions\Actions\CopyAction; $table ->actions([ CopyAction::make()->copyable(fn ($record) => $record->name), ])
Success message
The action will display a copy status, you can customize the success message with the successNotificationMessage method or the error message with the errorNotificationMessage method.
Form Action
Use the CopyAction in your field suffix or prefix if you want to copy a field value. You can customize the button icon/color using the same methods of the Filament Action.
use Webbingbrasil\FilamentCopyActions\Actions\CopyAction; Forms\Components\TextInput::make('sku') ->label('SKU (Stock Keeping Unit)') ->suffixAction(CopyAction::make()) ->required(); Forms\Components\Select::make('shop_brand_id') ->relationship('brand', 'name') ->prefixAction(CopyAction::make()) ->searchable();
You can use this form action in any filament field, the action will copy the field value to the clipboard by default, but you can customize the value with the copyable method.
use Webbingbrasil\FilamentCopyActions\Actions\CopyAction; Forms\Components\Select::make('shop_brand_id') ->relationship('brand', 'name') ->prefixAction(CopyAction::make()->copyable(fn ($component) => $component->getOptionLabel())) ->searchable();
Success message
The action will display a copy status, you can customize the success message with the successNotificationMessage method or the error message with the errorNotificationMessage method.
Page Action
You can add CopyAction button to any page in filament, just put the action in the actions method of the page. You can customize the button icon/color using the same methods of the Filament Action.
use Webbingbrasil\FilamentCopyActions\Pages\Actions\CopyAction; protected function getActions(): array { return [ CopyAction::make()->copyable(fn () => $this->record->name), ]; }
The action will display a copy status, you can customize the success message with the successNotificationMessage method or the error message with the errorNotificationMessage method.
CopyAction Tip
By default, CopyAction does not trigger a livewire request, so it only returns the value defined in the copyable method during page rendering.
However, if it is necessary for the copied value to be dynamic at each action trigger, you can use the action() method.
CopyAction::make()->copyable(fn () => $this->voucher)->action(fn() => $this->generateVoucher()),
You can use this technique in actions for form, pages, or tables.
Credits
webbingbrasil/filament-copyactions 适用场景与选型建议
webbingbrasil/filament-copyactions 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 743.12k 次下载、GitHub Stars 达 94, 最近一次更新时间为 2022 年 09 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「filament」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 webbingbrasil/filament-copyactions 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 webbingbrasil/filament-copyactions 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 webbingbrasil/filament-copyactions 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Alfabank REST API integration
Database-driven onboarding for Filament: progress checklists and guided spotlight tours, translatable to any locale.
Laravel package for Accurate Online API integration.
Create-project starter for a Laravel application with the public Capell CMS foundation.
Shared RCX Laravel DataTables UI and configuration helpers.
Boot a Laravel project on any machine with one command: app:serve installs missing tools (PHP, Node, Composer, Herd, Docker), creates .env, sets up the database, runs migrations, builds assets, starts a queue worker and serves via Herd, Sail or artisan serve; app:down cleanly stops everything it sta
统计信息
- 总下载量: 743.12k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 94
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-09-08