feat: add typed signature (#1357)

Add the ability to insert typed signatures.

Once the signature field is placed on the document, a checkbox appears
in the document editor where the document owner can allow signers to add
typed signatures. Typed signatures are disabled by default.

![CleanShot 2024-09-30 at 14 57
54](https://github.com/user-attachments/assets/c388abb5-bcb1-49d0-aad8-9148c3020420)
This commit is contained in:
Catalin Pit
2024-10-18 04:25:19 +01:00
committed by GitHub
parent e0c948c2ac
commit 1a9dcadba5
25 changed files with 716 additions and 462 deletions

View File

@ -220,7 +220,7 @@ msgstr "Aktive Abonnements"
msgid "Add"
msgstr "Hinzufügen"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:157
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175
#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87
msgid "Add all relevant fields for each recipient."
msgstr "Fügen Sie alle relevanten Felder für jeden Empfänger hinzu."
@ -241,7 +241,7 @@ msgstr "Fügen Sie einen Authenticator hinzu, um als sekundäre Authentifizierun
msgid "Add email"
msgstr "E-Mail hinzufügen"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:156
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:174
#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:86
msgid "Add Fields"
msgstr "Felder hinzufügen"
@ -263,11 +263,11 @@ msgstr "Passkey hinzufügen"
msgid "Add Placeholders"
msgstr "Platzhalter hinzufügen"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:151
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:169
msgid "Add Signers"
msgstr "Unterzeichner hinzufügen"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:161
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:179
msgid "Add Subject"
msgstr "Betreff hinzufügen"
@ -283,7 +283,7 @@ msgstr "Team-E-Mail hinzufügen"
#~ msgid "Add Text"
#~ msgstr "Add Text"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:152
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:170
msgid "Add the people who will sign the document."
msgstr "Fügen Sie die Personen hinzu, die das Dokument unterschreiben werden."
@ -291,7 +291,7 @@ msgstr "Fügen Sie die Personen hinzu, die das Dokument unterschreiben werden."
msgid "Add the recipients to create the document with"
msgstr "Fügen Sie die Empfänger hinzu, um das Dokument zu erstellen"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:162
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:180
msgid "Add the subject and message you wish to send to signers."
msgstr "Fügen Sie den Betreff und die Nachricht hinzu, die Sie den Unterzeichnern senden möchten."
@ -370,13 +370,13 @@ msgstr "Eine E-Mail, in der die Übertragung dieses Teams angefordert wird, wurd
msgid "An error occurred"
msgstr "Ein Fehler ist aufgetreten"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:248
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:266
#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:197
#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:231
msgid "An error occurred while adding signers."
msgstr "Ein Fehler ist aufgetreten, während Unterzeichner hinzugefügt wurden."
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:278
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:301
msgid "An error occurred while adding the fields."
msgstr "Ein Fehler ist aufgetreten, während die Felder hinzugefügt wurden."
@ -426,7 +426,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Vorlage verschoben wurde."
#: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:148
#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:195
#: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:129
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:175
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:173
msgid "An error occurred while removing the signature."
msgstr "Ein Fehler ist aufgetreten, während die Unterschrift entfernt wurde."
@ -434,7 +434,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Unterschrift entfernt wurde."
msgid "An error occurred while removing the text."
msgstr "Ein Fehler ist aufgetreten, während der Text entfernt wurde."
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:309
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:332
msgid "An error occurred while sending the document."
msgstr "Ein Fehler ist aufgetreten, während das Dokument gesendet wurde."
@ -449,7 +449,7 @@ msgstr "Beim Senden Ihrer Bestätigungs-E-Mail ist ein Fehler aufgetreten"
#: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:122
#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:150
#: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:102
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:149
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:147
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:168
msgid "An error occurred while signing the document."
msgstr "Ein Fehler ist aufgetreten, während das Dokument unterzeichnet wurde."
@ -458,7 +458,7 @@ msgstr "Ein Fehler ist aufgetreten, während das Dokument unterzeichnet wurde."
msgid "An error occurred while trying to create a checkout session."
msgstr "Ein Fehler ist aufgetreten, während versucht wurde, eine Checkout-Sitzung zu erstellen."
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:214
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:232
#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:166
msgid "An error occurred while updating the document settings."
msgstr "Ein Fehler ist aufgetreten, während die Dokumenteinstellungen aktualisiert wurden."
@ -665,11 +665,11 @@ msgstr "Durch die Aktivierung von 2FA müssen Sie jedes Mal, wenn Sie sich anmel
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:71
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:189
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:150
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:151
#: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:215
#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:327
#: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:113
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:250
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:248
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:333
#: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121
#: apps/web/src/components/(dashboard)/settings/token/delete-token-dialog.tsx:176
@ -752,7 +752,7 @@ msgid "Click to copy signing link for sending to recipient"
msgstr "Klicken Sie, um den Signatur-Link zu kopieren, um ihn an den Empfänger zu senden"
#: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:175
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:114
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:115
#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:435
#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:314
msgid "Click to insert field"
@ -802,7 +802,7 @@ msgstr "Abgeschlossene Dokumente"
msgid "Completed Documents"
msgstr "Abgeschlossene Dokumente"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:147
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165
msgid "Configure general settings for the document."
msgstr "Konfigurieren Sie die allgemeinen Einstellungen für das Dokument."
@ -1274,7 +1274,7 @@ msgstr "Dokument erneut gesendet"
msgid "Document resealed"
msgstr "Dokument wieder versiegelt"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:298
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:321
msgid "Document sent"
msgstr "Dokument gesendet"
@ -1369,6 +1369,10 @@ msgstr "Entwurfdokumente"
msgid "Drafted Documents"
msgstr "Entwurfte Dokumente"
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:245
#~ msgid "Draw"
#~ msgstr ""
#: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:121
msgid "Due to an unpaid invoice, your team has been restricted. Please settle the payment to restore full access to your team."
msgstr "Aufgrund einer unbezahlten Rechnung wurde Ihrem Team der Zugriff eingeschränkt. Bitte begleichen Sie die Zahlung, um den vollumfänglichen Zugang zu Ihrem Team wiederherzustellen."
@ -1491,10 +1495,10 @@ msgstr "Geben Sie hier Ihren Text ein"
#: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41
#: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:78
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:213
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:247
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:277
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:308
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:231
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:265
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:300
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:331
#: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57
#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106
#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:112
@ -1519,8 +1523,8 @@ msgstr "Geben Sie hier Ihren Text ein"
#: apps/web/src/app/(signing)/sign/[token]/number-field.tsx:194
#: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:101
#: apps/web/src/app/(signing)/sign/[token]/radio-field.tsx:128
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:148
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:174
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:146
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:172
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:167
#: apps/web/src/app/(signing)/sign/[token]/text-field.tsx:195
#: apps/web/src/components/(dashboard)/layout/verify-email-banner.tsx:54
@ -1597,7 +1601,7 @@ msgstr "Haben Sie Ihr Passwort vergessen?"
msgid "Full Name"
msgstr "Vollständiger Name"
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:146
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:164
#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:76
#: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60
#: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43
@ -2294,7 +2298,7 @@ msgstr "Bitte kontaktieren Sie den Support, wenn Sie diese Aktion rückgängig m
msgid "Please enter a meaningful name for your token. This will help you identify it later."
msgstr "Bitte geben Sie einen aussagekräftigen Namen für Ihr Token ein. Dies wird Ihnen helfen, es später zu identifizieren."
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:134
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:135
msgid "Please mark as viewed to complete"
msgstr "Bitte als angesehen markieren, um abzuschließen"
@ -2730,13 +2734,13 @@ msgstr "Vorlagen in Ihrem Team-Öffentliches Profil anzeigen, damit Ihre Zielgru
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:182
#: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:224
#: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:124
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:259
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:256
#: apps/web/src/components/ui/user-profile-skeleton.tsx:75
#: apps/web/src/components/ui/user-profile-timur.tsx:81
msgid "Sign"
msgstr "Unterzeichnen"
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:219
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:217
msgid "Sign as {0} <0>({1})</0>"
msgstr "Unterzeichnen als {0} <0>({1})</0>"
@ -2802,8 +2806,8 @@ msgstr "Registrieren mit OIDC"
#: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:88
#: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:338
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:197
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:227
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:195
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:225
#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:391
#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:270
#: apps/web/src/components/forms/profile.tsx:132
@ -3552,6 +3556,10 @@ msgstr "Type 'delete' to confirm"
msgid "Type a command or search..."
msgstr "Type a command or search..."
#: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:275
#~ msgid "Typed Signature"
#~ msgstr ""
#: apps/web/src/app/(unauthenticated)/verify-email/page.tsx:26
msgid "Uh oh! Looks like you're missing a token"
msgstr "Uh oh! Looks like you're missing a token"
@ -4382,7 +4390,7 @@ msgstr "Ihr Dokument wurde erfolgreich aus der Vorlage erstellt."
msgid "Your document has been re-sent successfully."
msgstr "Ihr Dokument wurde erfolgreich erneut gesendet."
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:299
#: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:322
msgid "Your document has been sent successfully."
msgstr "Ihr Dokument wurde erfolgreich gesendet."