Skip to content

feat(dashboard): latest documents & open incidents widgets with open actions#22

Merged
DGINXREAL merged 4 commits into
mainfrom
feat/quick-adjustments
Jul 8, 2026
Merged

feat(dashboard): latest documents & open incidents widgets with open actions#22
DGINXREAL merged 4 commits into
mainfrom
feat/quick-adjustments

Conversation

@DGINXREAL

Copy link
Copy Markdown
Member

Summary

Adds two new Filament dashboard widgets to the App panel, each with an Öffnen (open) row action.

  • Latest documents (LatestDocumentsTableWidget) — newest uploaded document attachments (type = 'document'), showing title, category, attached-to type, uploader, and upload time. Open action streams the file inline in a new tab.
  • Open incidents (OpenIncidentsTableWidget) — currently open incidents (closed_date is null), newest first, showing title, asset model, serial, opened date, and days-open badge. Open action navigates to the incident's asset edit page (incidents are managed via the asset's relation manager).

Both widgets are auto-discovered, span full width, use trans() with new lang/de files, and follow the existing WarrantyExpiringTableWidget pattern.

Notable changes

  • New attachments.open route + AttachmentController — attachments live on a private disk, so there's no public URL. The route is authenticated and streams the file inline via Storage::disk()->response().
  • Guest redirect — added redirectGuestsTo(filament.app.auth.login) in bootstrap/app.php. The app previously had no standalone login route, so the new auth-protected route needed a redirect target for unauthenticated users.

Notes

  • The documents "open" button opens in a new tab (external file stream); the incidents "open" button navigates in the same tab (internal panel navigation).
  • The attachments.open route lets any authenticated user open any attachment by ID — consistent with the existing relation-manager download action, which also has no per-record authorization. Restricting by asset ownership would be a follow-up.
  • This branch also includes a pre-existing commit, fix(settings): apply runtime settings on Livewire requests.

Testing

  • New tests for both widgets (record filtering, ordering, column rendering, open-action URL) and the attachments.open route (inline streaming, 404 on missing file, guest redirect).
  • Full suite: 204 passed / 586 assertions. Pint clean.

🤖 Generated with Claude Code

Daniel Elskamp and others added 4 commits July 1, 2026 09:06
Register ApplyRuntimeSettings as persistent middleware so it runs on
Livewire AJAX requests (upload/update), not just the initial page load.
Filament processes file uploads inside those requests, so the S3
StorageSettings were never applied and uploads failed. This also covers
Mail/Auth/General settings on Livewire requests.

Also remove the dangling AdminTestPanelProvider reference and add a
regression test guarding the persistent middleware registration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add two auto-discovered Filament table widgets to the App panel:
- LatestDocumentsTableWidget: newest uploaded document attachments
- OpenIncidentsTableWidget: currently open incidents, newest first

Both follow the WarrantyExpiringTableWidget pattern with German labels.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add an 'Öffnen' row action to the latest documents widget that opens
each document inline in a new tab. Because attachments live on a private
disk, add an authenticated attachments.open route that streams the file
inline via a new AttachmentController.

Also redirect unauthenticated web requests to the Filament panel login,
since the app has no standalone login route.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add an 'Öffnen' row action to the open incidents widget that navigates to
the incident's asset edit page, where the incident is managed via the
incidents relation manager.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@DGINXREAL DGINXREAL requested a review from noidee-dev as a code owner July 8, 2026 07:42
@DGINXREAL DGINXREAL merged commit 0ce4088 into main Jul 8, 2026
6 checks passed
@DGINXREAL DGINXREAL deleted the feat/quick-adjustments branch July 8, 2026 08:04
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.

1 participant