Skip to content

Add HasActions to form entry Show for infolist suffixAction (e.g. download)#64

Open
scottgrayson wants to merge 97 commits intoupdate/filament-form-builder-v1.52from
form-submission-file-downloads
Open

Add HasActions to form entry Show for infolist suffixAction (e.g. download)#64
scottgrayson wants to merge 97 commits intoupdate/filament-form-builder-v1.52from
form-submission-file-downloads

Conversation

@scottgrayson
Copy link
Contributor

Enables the form entry Show Livewire component to support infolist suffixAction (e.g. file download) by implementing HasActions and using InteractsWithActions, so mountAction() is available when the action is triggered.

Changes

  • FilamentFormUser\\Show: implement HasActions, use InteractsWithActions
  • Schema support comes from InteractsWithForms (which already uses InteractsWithSchemas); adding InteractsWithSchemas again caused a getCachedSchemas trait collision with InteractsWithForms

Testing

  • Open a form entry in Filament; the "Uploaded Files" section download button should work.

Made with Cursor

andreia and others added 30 commits July 11, 2025 22:00
- Update form container to use responsive min-width (320px on mobile, 400px on sm+)
- Add responsive padding (1rem on mobile, 2rem on sm, 4rem on md+)
- Update CSS to include responsive classes for better mobile experience
- Remove fixed 800px min-width that was causing horizontal scroll on mobile

Fixes mobile width issues where forms were too wide on small screens.
Compatible with Filament v4.
Fix mobile responsiveness for form containers (Filament v4)
- Change version from dev-main to 4.0.2
- This resolves Packagist warnings about version mismatch
- Tags v4.0.2 will now be properly recognized
- Remove version field to allow Packagist to work automatically
- This resolves all version mismatch warnings
- Packagist will use git tags for versioning instead
- Add notification_emails JSON column to filament_forms table
- Add FormSubmissionNotification mailable with queued delivery
- Add FilamentFormUserObserver to automatically send notifications
- Add user select field to form builder for configuring recipients
- Add user_model configuration option (defaults to App\Models\User)
- Include app name in notification subject line
- Add professional email template for notifications
… entry

- Change button URL to form resource edit page
- Update button text to 'View Form & Entries'
- Admins prefer to export entries from the form page
- Refactor observer to use shared sendNotifications() method
- Add updated() method to fire notifications on form resubmissions
- Both created() and updated() events now send notification emails
- Add all form field questions and answers to email body
- Format submitted by and at on separate lines
- Makes email useful for non-users who can't log in to view entries
- Log when updated() event fires
- Log notification email configuration status
- Log email sending actions
- Helps troubleshoot why resubmissions may not trigger emails
Keep email simple with just form name, submitter, and timestamp
- Remove unnecessary nullsafe operator
- Remove unnecessary ternary operator
- Remove unnecessary null coalescing operator
- Simplify notification email handling
andreia and others added 29 commits January 27, 2026 21:30
- visible(canCreate()) and authorize(canCreate()) on copy table action so read-only users (e.g. Staff) do not see or run copy

Co-authored-by: Cursor <cursoragent@cursor.com>
Restrict copy action to users who can create forms
- FilamentFormResource: wrap Edit, Preview, Copy in ActionGroup, position BeforeColumns
- FilamentFormFieldsRelationManager: wrap Edit, Delete in ActionGroup, BeforeColumns
- FilamentFormUsersRelationManager: wrap Delete in ActionGroup, BeforeColumns
- composer.json: add version for path repo installs

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Table actions in ActionGroup at row start
- Migration stub and model: private_entries on filament_forms
- FilamentFormResource: private_entries toggle, table column, copy action; redirect_url before permit_guest_entries
- Toggle disabled when form is private and app viewEntries policy denies user; dehydrate keeps value on save
- FilamentFormUsersRelationManager: canViewForRecord and Export visibility use owner viewEntries policy when present
- README: Private entries section

Made-with: Cursor
Bumps [minimatch](https://github.com/isaacs/minimatch) from 9.0.5 to 9.0.9.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v9.0.5...v9.0.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 9.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…atch-9.0.9

Bump minimatch from 9.0.5 to 9.0.9
…onManager

- Add userCanViewEntriesForOwner() for single source of entry-view auth
- canViewForRecord() and canViewEntriesForOwner() both delegate to it

Made-with: Cursor
Add private entries support for form entry visibility
- Replace Textarea with RichEditor for description in FilamentFormResource
- Render description as HTML in show view with {!! !!} and prose styling
- No migration; keep existing text column

Made-with: Cursor
Allow form description to be rich text / HTML
When the app registers a policy for FilamentFormUser with a view() method,
use $user->can('view', $entry) instead of only allowing the submitter.
Falls back to submitter-only when no policy is present.

Made-with: Cursor
…nload)

- Implement HasActions and use InteractsWithActions so infolist
  suffixAction (e.g. file download) can call mountAction()
- Rely on InteractsWithForms for schema support (it already uses
  InteractsWithSchemas) to avoid getCachedSchemas trait collision

Made-with: Cursor
@scottgrayson scottgrayson changed the base branch from 4.x to update/filament-form-builder-v1.52 March 3, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants