Digital Signature for Filament GitHub

#Guide: Route for Signatures

In 2.0 this guide became Integrating documents. In 1.x it walked through one worked example, an Accomplishment Report, and asked you to copy its routing action, renderer and button wiring for each document of your own. In 2.0 that code is the package's (DocumentRouter, RouteForSignaturesAction, the document of record). An app supplies only what is specific to its document, by implementing contracts and binding classes.

#Where to go

You want toRead
See what an app writes, and what it bindsIntegrating documents
Add a "Route for Signatures" button to a report generated from a person and a periodRecipe: generated from a period
Route a record that already exists (a request, a form)Recipe: existing record
See it working end to endReference integration: the Accomplishment Report
Upgrade a 1.x integration built from this guideUPGRADE-2.0.md

#The 1.x guide, in 2.0 terms

1.x guide stepIn 2.0
1. The table: signatory columns, frozen once routedSignatoryColumns::add() + SnapshotsSignatories
2. The model: openFor(), missingSignatories(), a role listSnapshotsSignatories on the model; open() / locate() on the document definition; RequiredSignatoriesAssigned checks the template's own required slots
3. The template: a closure per slot hopping to ->userrelation names on the slots, and one SignatoryUserMapper binding
4. The A4 renderernew DomPdfRenderer(paper: 'a4')
5. The routing action: transaction, refusals, sessionDocumentRouter, with your preflight guards and wording on the definition
6. The button: footer submit + mode branch + notification + HaltRouteForSignaturesAction, or one $this->routeDocument(...) call in the branch
7. Check the sample in the designerunchanged
"When everyone has signed, signedDocumentPath()"the document of record: every version, kept and verifiable; View/Download serve it, never a re-render