From dc5723c38605b0acfe79d04788a20c00dfc8f59e Mon Sep 17 00:00:00 2001 From: Mythie Date: Tue, 5 Nov 2024 13:44:00 +1100 Subject: [PATCH 01/16] chore: add i18n lang to document deleted email --- packages/lib/server-only/document/delete-document.ts | 11 ++++++++--- packages/lib/translations/de/common.po | 2 +- packages/lib/translations/de/marketing.po | 1 - packages/lib/translations/de/web.po | 1 - packages/lib/translations/en/common.po | 1 + packages/lib/translations/es/common.po | 2 +- packages/lib/translations/es/marketing.po | 1 - packages/lib/translations/es/web.po | 1 - packages/lib/translations/fr/common.po | 2 +- packages/lib/translations/fr/marketing.po | 1 - packages/lib/translations/fr/web.po | 1 - 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts index b43ed2cd3..301d37bd2 100644 --- a/packages/lib/server-only/document/delete-document.ts +++ b/packages/lib/server-only/document/delete-document.ts @@ -2,12 +2,15 @@ import { createElement } from 'react'; +import { msg } from '@lingui/macro'; + import { mailer } from '@documenso/email/mailer'; import DocumentCancelTemplate from '@documenso/email/templates/document-cancel'; import { prisma } from '@documenso/prisma'; import type { Document, DocumentMeta, Recipient, User } from '@documenso/prisma/client'; import { DocumentStatus, SendStatus } from '@documenso/prisma/client'; +import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; @@ -192,10 +195,12 @@ const handleDocumentOwnerDelete = async ({ }); const [html, text] = await Promise.all([ - renderEmailWithI18N(template), - renderEmailWithI18N(template, { plainText: true }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language }), + renderEmailWithI18N(template, { lang: document.documentMeta?.language, plainText: true }), ]); + const i18n = await getI18nInstance(document.documentMeta?.language); + await mailer.sendMail({ to: { address: recipient.email, @@ -205,7 +210,7 @@ const handleDocumentOwnerDelete = async ({ name: FROM_NAME, address: FROM_ADDRESS, }, - subject: 'Document Cancelled', + subject: i18n._(msg`Document Cancelled`), html, text, }); diff --git a/packages/lib/translations/de/common.po b/packages/lib/translations/de/common.po index 43b62d6ea..a84d16da9 100644 --- a/packages/lib/translations/de/common.po +++ b/packages/lib/translations/de/common.po @@ -450,6 +450,7 @@ msgstr "Empfänger des direkten Links" msgid "Document access" msgstr "Dokumentenzugriff" +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Dokument storniert" @@ -1309,4 +1310,3 @@ msgstr "Dein Passwort wurde aktualisiert." #: packages/email/templates/team-delete.tsx:30 msgid "Your team has been deleted" msgstr "Dein Team wurde gelöscht" - diff --git a/packages/lib/translations/de/marketing.po b/packages/lib/translations/de/marketing.po index e903d0b4b..1519ee16f 100644 --- a/packages/lib/translations/de/marketing.po +++ b/packages/lib/translations/de/marketing.po @@ -602,4 +602,3 @@ msgstr "Sie können Documenso kostenlos selbst hosten oder unsere sofort einsatz #: apps/marketing/src/components/(marketing)/carousel.tsx:272 msgid "Your browser does not support the video tag." msgstr "Ihr Browser unterstützt das Video-Tag nicht." - diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index a9abfeb0c..a6e6beacf 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -4628,4 +4628,3 @@ msgstr "Ihr Token wurde erfolgreich erstellt! Stellen Sie sicher, dass Sie es ko #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:86 msgid "Your tokens will be shown here once you create them." msgstr "Ihre Tokens werden hier angezeigt, sobald Sie sie erstellt haben." - diff --git a/packages/lib/translations/en/common.po b/packages/lib/translations/en/common.po index 596ff4e27..b14c1c2d2 100644 --- a/packages/lib/translations/en/common.po +++ b/packages/lib/translations/en/common.po @@ -445,6 +445,7 @@ msgstr "Direct link receiver" msgid "Document access" msgstr "Document access" +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Document Cancelled" diff --git a/packages/lib/translations/es/common.po b/packages/lib/translations/es/common.po index a4501f145..93fd930b9 100644 --- a/packages/lib/translations/es/common.po +++ b/packages/lib/translations/es/common.po @@ -450,6 +450,7 @@ msgstr "Receptor de enlace directo" msgid "Document access" msgstr "Acceso al documento" +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Documento cancelado" @@ -1309,4 +1310,3 @@ msgstr "Tu contraseña ha sido actualizada." #: packages/email/templates/team-delete.tsx:30 msgid "Your team has been deleted" msgstr "Tu equipo ha sido eliminado" - diff --git a/packages/lib/translations/es/marketing.po b/packages/lib/translations/es/marketing.po index 672200726..b27c1e894 100644 --- a/packages/lib/translations/es/marketing.po +++ b/packages/lib/translations/es/marketing.po @@ -602,4 +602,3 @@ msgstr "Puedes autoalojar Documenso de forma gratuita o usar nuestra versión al #: apps/marketing/src/components/(marketing)/carousel.tsx:272 msgid "Your browser does not support the video tag." msgstr "Tu navegador no soporta la etiqueta de video." - diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index b2184618e..665cb55ff 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -4628,4 +4628,3 @@ msgstr "¡Tu token se creó con éxito! ¡Asegúrate de copiarlo porque no podr #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:86 msgid "Your tokens will be shown here once you create them." msgstr "Tus tokens se mostrarán aquí una vez que los crees." - diff --git a/packages/lib/translations/fr/common.po b/packages/lib/translations/fr/common.po index f4cfc3aa6..cd9cd0c30 100644 --- a/packages/lib/translations/fr/common.po +++ b/packages/lib/translations/fr/common.po @@ -450,6 +450,7 @@ msgstr "Receveur de lien direct" msgid "Document access" msgstr "Accès au document" +#: packages/lib/server-only/document/delete-document.ts:213 #: packages/lib/server-only/document/super-delete-document.ts:75 msgid "Document Cancelled" msgstr "Document Annulé" @@ -1309,4 +1310,3 @@ msgstr "Votre mot de passe a été mis à jour." #: packages/email/templates/team-delete.tsx:30 msgid "Your team has been deleted" msgstr "Votre équipe a été supprimée" - diff --git a/packages/lib/translations/fr/marketing.po b/packages/lib/translations/fr/marketing.po index d0c55e6ba..7ca6b7a59 100644 --- a/packages/lib/translations/fr/marketing.po +++ b/packages/lib/translations/fr/marketing.po @@ -602,4 +602,3 @@ msgstr "Vous pouvez auto-héberger Documenso gratuitement ou utiliser notre vers #: apps/marketing/src/components/(marketing)/carousel.tsx:272 msgid "Your browser does not support the video tag." msgstr "Votre navigateur ne prend pas en charge la balise vidéo." - diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index 20e94c34e..d693cf6a9 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -4628,4 +4628,3 @@ msgstr "Votre jeton a été créé avec succès ! Assurez-vous de le copier car #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:86 msgid "Your tokens will be shown here once you create them." msgstr "Vos jetons seront affichés ici une fois que vous les aurez créés." - From de880aa821fdda618542f7a08026de729338d17e Mon Sep 17 00:00:00 2001 From: Mythie Date: Tue, 5 Nov 2024 13:50:01 +1100 Subject: [PATCH 02/16] v1.7.2-rc.4 --- apps/marketing/package.json | 2 +- apps/web/package.json | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/marketing/package.json b/apps/marketing/package.json index a890c8374..7923022c9 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/marketing", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/apps/web/package.json b/apps/web/package.json index 722e028d6..15cde6270 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@documenso/web", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "private": true, "license": "AGPL-3.0", "scripts": { diff --git a/package-lock.json b/package-lock.json index 956db402e..77172fba3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@documenso/root", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@documenso/root", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "workspaces": [ "apps/*", "packages/*" @@ -80,7 +80,7 @@ }, "apps/marketing": { "name": "@documenso/marketing", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "license": "AGPL-3.0", "dependencies": { "@documenso/assets": "*", @@ -441,7 +441,7 @@ }, "apps/web": { "name": "@documenso/web", - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "license": "AGPL-3.0", "dependencies": { "@documenso/api": "*", diff --git a/package.json b/package.json index 1aedb4fba..bc6df055a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.7.2-rc.3", + "version": "1.7.2-rc.4", "scripts": { "build": "turbo run build", "build:web": "turbo run build --filter=@documenso/web", From 32b65c4d49f373057cdf08085b523a58d95f8e23 Mon Sep 17 00:00:00 2001 From: Mythie Date: Tue, 5 Nov 2024 18:34:27 +1100 Subject: [PATCH 03/16] fix: blog posts breaking during ssr on vercel --- .../app/(marketing)/blog/[post]/content.tsx | 23 +++++++++++++++++++ .../src/app/(marketing)/blog/[post]/page.tsx | 15 +++--------- 2 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 apps/marketing/src/app/(marketing)/blog/[post]/content.tsx diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/content.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/content.tsx new file mode 100644 index 000000000..ebcd5f8b9 --- /dev/null +++ b/apps/marketing/src/app/(marketing)/blog/[post]/content.tsx @@ -0,0 +1,23 @@ +'use client'; + +import Image from 'next/image'; + +import type { BlogPost } from 'contentlayer/generated'; +import type { MDXComponents } from 'mdx/types'; +import { useMDXComponent } from 'next-contentlayer/hooks'; + +const mdxComponents: MDXComponents = { + MdxNextImage: (props: { width: number; height: number; alt?: string; src: string }) => ( + {props.alt + ), +}; + +export type BlogPostContentProps = { + post: BlogPost; +}; + +export const BlogPostContent = ({ post }: BlogPostContentProps) => { + const MdxContent = useMDXComponent(post.body.code); + + return ; +}; diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index 324f742d1..03c5bcb81 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -1,16 +1,15 @@ -import Image from 'next/image'; import Link from 'next/link'; import { notFound } from 'next/navigation'; import { allBlogPosts } from 'contentlayer/generated'; import { ChevronLeft } from 'lucide-react'; -import type { MDXComponents } from 'mdx/types'; -import { useMDXComponent } from 'next-contentlayer/hooks'; import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; import { CallToAction } from '~/components/(marketing)/call-to-action'; +import { BlogPostContent } from './content'; + export const dynamic = 'force-dynamic'; export const generateMetadata = ({ params }: { params: { post: string } }) => { @@ -42,12 +41,6 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { }; }; -const mdxComponents: MDXComponents = { - MdxNextImage: (props: { width: number; height: number; alt?: string; src: string }) => ( - {props.alt - ), -}; - export default async function BlogPostPage({ params }: { params: { post: string } }) { await setupI18nSSR(); @@ -57,8 +50,6 @@ export default async function BlogPostPage({ params }: { params: { post: string notFound(); } - const MDXContent = useMDXComponent(post.body.code); - return (
@@ -87,7 +78,7 @@ export default async function BlogPostPage({ params }: { params: { post: string
- + {post.tags.length > 0 && (
    From 4fa6dc1e2199c0a8d8370071e0f74e260bfad802 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 5 Nov 2024 17:36:30 +0900 Subject: [PATCH 04/16] feat: add template page (#1395) Add a template page view to allow users to see more details about a template at a glance. --- .../[id]/{ => edit}/edit-template.tsx | 0 .../(dashboard)/templates/[id]/edit/page.tsx | 14 + .../[id]/edit/template-edit-page-view.tsx | 96 ++++++ .../app/(dashboard)/templates/[id]/page.tsx | 9 +- .../template-direct-link-dialog-wrapper.tsx | 6 +- .../template-page-view-documents-table.tsx | 281 ++++++++++++++++++ .../[id]/template-page-view-information.tsx | 66 ++++ .../template-page-view-recent-activity.tsx | 163 ++++++++++ .../[id]/template-page-view-recipients.tsx | 69 +++++ .../templates/[id]/template-page-view.tsx | 165 ++++++++-- .../templates/data-table-action-dropdown.tsx | 9 +- .../templates/data-table-templates.tsx | 2 +- .../templates/new-template-dialog.tsx | 2 +- .../templates/use-template-dialog.tsx | 14 +- .../t/[teamUrl]/templates/[id]/edit/page.tsx | 24 ++ .../document/document-read-only-fields.tsx | 44 ++- .../forms/search-param-selector.tsx | 50 ++++ .../template-settings-step.spec.ts | 8 +- .../template-signers-step.spec.ts | 4 +- .../create-document-from-template.spec.ts | 4 +- .../server-only/document/find-documents.ts | 97 +++--- .../template/get-template-by-id.ts | 7 + .../trpc/server/document-router/router.ts | 33 ++ .../trpc/server/document-router/schema.ts | 25 +- 24 files changed, 1096 insertions(+), 96 deletions(-) rename apps/web/src/app/(dashboard)/templates/[id]/{ => edit}/edit-template.tsx (100%) create mode 100644 apps/web/src/app/(dashboard)/templates/[id]/edit/page.tsx create mode 100644 apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx create mode 100644 apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx create mode 100644 apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx create mode 100644 apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx create mode 100644 apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx create mode 100644 apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx create mode 100644 apps/web/src/components/forms/search-param-selector.tsx diff --git a/apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx b/apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx similarity index 100% rename from apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx rename to apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx diff --git a/apps/web/src/app/(dashboard)/templates/[id]/edit/page.tsx b/apps/web/src/app/(dashboard)/templates/[id]/edit/page.tsx new file mode 100644 index 000000000..ed463b2cf --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/edit/page.tsx @@ -0,0 +1,14 @@ +import React from 'react'; + +import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; + +import type { TemplateEditPageViewProps } from './template-edit-page-view'; +import { TemplateEditPageView } from './template-edit-page-view'; + +type TemplateEditPageProps = Pick; + +export default async function TemplateEditPage({ params }: TemplateEditPageProps) { + await setupI18nSSR(); + + return ; +} diff --git a/apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx b/apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx new file mode 100644 index 000000000..d7d6d86b4 --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx @@ -0,0 +1,96 @@ +import React from 'react'; + +import Link from 'next/link'; +import { redirect } from 'next/navigation'; + +import { Trans } from '@lingui/macro'; +import { ChevronLeft } from 'lucide-react'; + +import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise'; +import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; +import { getTemplateWithDetailsById } from '@documenso/lib/server-only/template/get-template-with-details-by-id'; +import { formatTemplatesPath } from '@documenso/lib/utils/teams'; +import type { Team } from '@documenso/prisma/client'; + +import { TemplateType } from '~/components/formatter/template-type'; + +import { TemplateDirectLinkBadge } from '../../template-direct-link-badge'; +import { TemplateDirectLinkDialogWrapper } from '../template-direct-link-dialog-wrapper'; +import { EditTemplateForm } from './edit-template'; + +export type TemplateEditPageViewProps = { + params: { + id: string; + }; + team?: Team; +}; + +export const TemplateEditPageView = async ({ params, team }: TemplateEditPageViewProps) => { + const { id } = params; + + const templateId = Number(id); + const templateRootPath = formatTemplatesPath(team?.url); + + if (!templateId || Number.isNaN(templateId)) { + redirect(templateRootPath); + } + + const { user } = await getRequiredServerComponentSession(); + + const template = await getTemplateWithDetailsById({ + id: templateId, + userId: user.id, + }).catch(() => null); + + if (!template || !template.templateDocumentData) { + redirect(templateRootPath); + } + + const isTemplateEnterprise = await isUserEnterprise({ + userId: user.id, + teamId: team?.id, + }); + + return ( +
    +
    +
    + + + Template + + +

    + {template.title} +

    + +
    + + + {template.directLink?.token && ( + + )} +
    +
    + +
    + +
    +
    + + +
    + ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/page.tsx b/apps/web/src/app/(dashboard)/templates/[id]/page.tsx index 0deaf4ecb..6133f5d7d 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/page.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/page.tsx @@ -1,11 +1,12 @@ -import React from 'react'; - import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; -import type { TemplatePageViewProps } from './template-page-view'; import { TemplatePageView } from './template-page-view'; -type TemplatePageProps = Pick; +export type TemplatePageProps = { + params: { + id: string; + }; +}; export default async function TemplatePage({ params }: TemplatePageProps) { await setupI18nSSR(); diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx index f9ecae130..a3639ab6d 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx @@ -10,11 +10,13 @@ import { Button } from '@documenso/ui/primitives/button'; import { TemplateDirectLinkDialog } from '../template-direct-link-dialog'; -export type TemplatePageViewProps = { +export type TemplateDirectLinkDialogWrapperProps = { template: Template & { directLink?: TemplateDirectLink | null; Recipient: Recipient[] }; }; -export const TemplateDirectLinkDialogWrapper = ({ template }: TemplatePageViewProps) => { +export const TemplateDirectLinkDialogWrapper = ({ + template, +}: TemplateDirectLinkDialogWrapperProps) => { const [isTemplateDirectLinkOpen, setTemplateDirectLinkOpen] = useState(false); return ( diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx new file mode 100644 index 000000000..35b69f4dd --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx @@ -0,0 +1,281 @@ +'use client'; + +import { useMemo } from 'react'; + +import { useSearchParams } from 'next/navigation'; + +import type { MessageDescriptor } from '@lingui/core'; +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; +import { InfoIcon } from 'lucide-react'; +import { DateTime } from 'luxon'; +import { z } from 'zod'; + +import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; +import { ZBaseTableSearchParamsSchema } from '@documenso/lib/types/search-params'; +import type { Team } from '@documenso/prisma/client'; +import { DocumentSource, DocumentStatus as DocumentStatusEnum } from '@documenso/prisma/client'; +import { trpc } from '@documenso/trpc/react'; +import type { DataTableColumnDef } from '@documenso/ui/primitives/data-table'; +import { DataTable } from '@documenso/ui/primitives/data-table'; +import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination'; +import { SelectItem } from '@documenso/ui/primitives/select'; +import { Skeleton } from '@documenso/ui/primitives/skeleton'; +import { TableCell } from '@documenso/ui/primitives/table'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@documenso/ui/primitives/tooltip'; + +import { StackAvatarsWithTooltip } from '~/components/(dashboard)/avatar/stack-avatars-with-tooltip'; +import { DocumentSearch } from '~/components/(dashboard)/document-search/document-search'; +import { PeriodSelector } from '~/components/(dashboard)/period-selector/period-selector'; +import { DocumentStatus } from '~/components/formatter/document-status'; +import { SearchParamSelector } from '~/components/forms/search-param-selector'; + +import { DataTableActionButton } from '../../documents/data-table-action-button'; +import { DataTableActionDropdown } from '../../documents/data-table-action-dropdown'; +import { DataTableTitle } from '../../documents/data-table-title'; + +const DOCUMENT_SOURCE_LABELS: { [key in DocumentSource]: MessageDescriptor } = { + DOCUMENT: msg`Document`, + TEMPLATE: msg`Template`, + TEMPLATE_DIRECT_LINK: msg`Direct link`, +}; + +const ZTemplateSearchParamsSchema = ZBaseTableSearchParamsSchema.extend({ + source: z + .nativeEnum(DocumentSource) + .optional() + .catch(() => undefined), + status: z + .nativeEnum(DocumentStatusEnum) + .optional() + .catch(() => undefined), + search: z.coerce + .string() + .optional() + .catch(() => undefined), +}); + +type TemplatePageViewDocumentsTableProps = { + templateId: number; + team?: Team; +}; + +export const TemplatePageViewDocumentsTable = ({ + templateId, + team, +}: TemplatePageViewDocumentsTableProps) => { + const { _, i18n } = useLingui(); + + const searchParams = useSearchParams(); + const updateSearchParams = useUpdateSearchParams(); + + const parsedSearchParams = ZTemplateSearchParamsSchema.parse( + Object.fromEntries(searchParams ?? []), + ); + + const { data, isLoading, isInitialLoading, isLoadingError } = + trpc.document.findDocuments.useQuery( + { + templateId, + teamId: team?.id, + page: parsedSearchParams.page, + perPage: parsedSearchParams.perPage, + search: parsedSearchParams.search, + source: parsedSearchParams.source, + status: parsedSearchParams.status, + }, + { + keepPreviousData: true, + }, + ); + + const onPaginationChange = (page: number, perPage: number) => { + updateSearchParams({ + page, + perPage, + }); + }; + + const results = data ?? { + data: [], + perPage: 10, + currentPage: 1, + totalPages: 1, + }; + + const columns = useMemo(() => { + return [ + { + header: _(msg`Created`), + accessorKey: 'createdAt', + cell: ({ row }) => + i18n.date(row.original.createdAt, { ...DateTime.DATETIME_SHORT, hourCycle: 'h12' }), + }, + { + header: _(msg`Title`), + cell: ({ row }) => , + }, + + { + header: _(msg`Recipient`), + accessorKey: 'recipient', + cell: ({ row }) => ( + + ), + }, + { + header: _(msg`Status`), + accessorKey: 'status', + cell: ({ row }) => , + size: 140, + }, + { + header: () => ( +
    + Source + + + + + + +
      +
    • +

      + Template +

      + +

      + + This document was created by you or a team member using the template above. + +

      +
    • + +
    • +

      + Direct Link +

      + +

      + This document was created using a direct link. +

      +
    • +
    +
    +
    +
    + ), + accessorKey: 'type', + cell: ({ row }) => ( +
    + {_(DOCUMENT_SOURCE_LABELS[row.original.source])} +
    + ), + }, + { + id: 'actions', + header: _(msg`Actions`), + cell: ({ row }) => ( +
    + + + +
    + ), + }, + ] satisfies DataTableColumnDef<(typeof results)['data'][number]>[]; + }, []); + + return ( +
    +
    + + + + [...DocumentStatusEnum.COMPLETED].includes(value as unknown as string) + } + > + + Any Status + + + Completed + + + Pending + + + Draft + + + + + [...DocumentSource.TEMPLATE].includes(value as unknown as string) + } + > + + Any Source + + + Template + + + Direct Link + + + + +
    + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + ), + }} + > + {(table) => } +
    +
    + ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx new file mode 100644 index 000000000..2b25dd819 --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx @@ -0,0 +1,66 @@ +'use client'; + +import { useMemo } from 'react'; + +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; +import { DateTime } from 'luxon'; + +import { useIsMounted } from '@documenso/lib/client-only/hooks/use-is-mounted'; +import type { Template, User } from '@documenso/prisma/client'; + +export type TemplatePageViewInformationProps = { + userId: number; + template: Template & { + User: Pick; + }; +}; + +export const TemplatePageViewInformation = ({ + template, + userId, +}: TemplatePageViewInformationProps) => { + const isMounted = useIsMounted(); + + const { _, i18n } = useLingui(); + + const templateInformation = useMemo(() => { + return [ + { + description: msg`Uploaded by`, + value: userId === template.userId ? _(msg`You`) : template.User.name ?? template.User.email, + }, + { + description: msg`Created`, + value: i18n.date(template.createdAt, { dateStyle: 'medium' }), + }, + { + description: msg`Last modified`, + value: DateTime.fromJSDate(template.updatedAt) + .setLocale(i18n.locales?.[0] || i18n.locale) + .toRelative(), + }, + ]; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isMounted, template, userId]); + + return ( +
    +

    + Information +

    + +
      + {templateInformation.map((item, i) => ( +
    • + {_(item.description)} + {item.value} +
    • + ))} +
    +
    + ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx new file mode 100644 index 000000000..2e8887f39 --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx @@ -0,0 +1,163 @@ +'use client'; + +import Link from 'next/link'; + +import { Trans } from '@lingui/macro'; +import { Loader } from 'lucide-react'; +import { DateTime } from 'luxon'; +import { match } from 'ts-pattern'; + +import { DocumentSource } from '@documenso/prisma/client'; +import { trpc } from '@documenso/trpc/react'; +import { cn } from '@documenso/ui/lib/utils'; +import { Button } from '@documenso/ui/primitives/button'; + +export type TemplatePageViewRecentActivityProps = { + templateId: number; + teamId?: number; + documentRootPath: string; +}; + +export const TemplatePageViewRecentActivity = ({ + templateId, + teamId, + documentRootPath, +}: TemplatePageViewRecentActivityProps) => { + const { data, isLoading, isLoadingError, refetch } = trpc.document.findDocuments.useQuery({ + templateId, + teamId, + orderBy: { + column: 'createdAt', + direction: 'asc', + }, + perPage: 5, + }); + + const results = data ?? { + data: [], + perPage: 10, + currentPage: 1, + totalPages: 1, + }; + + return ( +
    +
    +

    + Recent documents +

    + + {/* Can add dropdown menu here for additional options. */} +
    + + {isLoading && ( +
    + +
    + )} + + {isLoadingError && ( +
    +

    + Unable to load documents +

    + +
    + )} + + {data && ( + <> +
      + {data.data.length > 0 && results.totalPages > 1 && ( +
    • +
      +
      +
      + +
      +
      +
      + + +
    • + )} + + {results.data.length === 0 && ( +
      +

      + No recent documents +

      +
      + )} + + {results.data.map((document, documentIndex) => ( +
    • +
      +
      +
      + +
      +
      +
      + + + {match(document.source) + .with(DocumentSource.DOCUMENT, DocumentSource.TEMPLATE, () => ( + + Document created by {document.User.name} + + )) + .with(DocumentSource.TEMPLATE_DIRECT_LINK, () => ( + + Document created using a direct link + + )) + .exhaustive()} + + + +
    • + ))} +
    + + + + )} +
    + ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx new file mode 100644 index 000000000..50a9581e3 --- /dev/null +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx @@ -0,0 +1,69 @@ +import Link from 'next/link'; + +import { Trans, msg } from '@lingui/macro'; +import { useLingui } from '@lingui/react'; +import { PenIcon, PlusIcon } from 'lucide-react'; + +import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; +import type { Recipient, Template } from '@documenso/prisma/client'; +import { AvatarWithText } from '@documenso/ui/primitives/avatar'; + +export type TemplatePageViewRecipientsProps = { + template: Template & { + Recipient: Recipient[]; + }; + templateRootPath: string; +}; + +export const TemplatePageViewRecipients = ({ + template, + templateRootPath, +}: TemplatePageViewRecipientsProps) => { + const { _ } = useLingui(); + + const recipients = template.Recipient; + + return ( +
    +
    +

    + Recipients +

    + + + {recipients.length === 0 ? ( + + ) : ( + + )} + +
    + +
      + {recipients.length === 0 && ( +
    • + No recipients +
    • + )} + + {recipients.map((recipient) => ( +
    • + {recipient.email}

      } + secondaryText={ +

      + {_(RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName)} +

      + } + /> +
    • + ))} +
    +
    + ); +}; diff --git a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx index b67f289a8..0436ab3f6 100644 --- a/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx +++ b/apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx @@ -1,22 +1,28 @@ -import React from 'react'; - import Link from 'next/link'; import { redirect } from 'next/navigation'; import { Trans } from '@lingui/macro'; -import { ChevronLeft } from 'lucide-react'; +import { ChevronLeft, LucideEdit } from 'lucide-react'; -import { isUserEnterprise } from '@documenso/ee/server-only/util/is-document-enterprise'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; -import { getTemplateWithDetailsById } from '@documenso/lib/server-only/template/get-template-with-details-by-id'; -import { formatTemplatesPath } from '@documenso/lib/utils/teams'; -import type { Team } from '@documenso/prisma/client'; +import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id'; +import { formatDocumentsPath, formatTemplatesPath } from '@documenso/lib/utils/teams'; +import { DocumentSigningOrder, SigningStatus, type Team } from '@documenso/prisma/client'; +import { Button } from '@documenso/ui/primitives/button'; +import { Card, CardContent } from '@documenso/ui/primitives/card'; +import { LazyPDFViewer } from '@documenso/ui/primitives/lazy-pdf-viewer'; +import { DocumentReadOnlyFields } from '~/components/document/document-read-only-fields'; import { TemplateType } from '~/components/formatter/template-type'; +import { DataTableActionDropdown } from '../data-table-action-dropdown'; import { TemplateDirectLinkBadge } from '../template-direct-link-badge'; -import { EditTemplateForm } from './edit-template'; +import { UseTemplateDialog } from '../use-template-dialog'; import { TemplateDirectLinkDialogWrapper } from './template-direct-link-dialog-wrapper'; +import { TemplatePageViewDocumentsTable } from './template-page-view-documents-table'; +import { TemplatePageViewInformation } from './template-page-view-information'; +import { TemplatePageViewRecentActivity } from './template-page-view-recent-activity'; +import { TemplatePageViewRecipients } from './template-page-view-recipients'; export type TemplatePageViewProps = { params: { @@ -30,6 +36,7 @@ export const TemplatePageView = async ({ params, team }: TemplatePageViewProps) const templateId = Number(id); const templateRootPath = formatTemplatesPath(team?.url); + const documentRootPath = formatDocumentsPath(team?.url); if (!templateId || Number.isNaN(templateId)) { redirect(templateRootPath); @@ -37,29 +44,51 @@ export const TemplatePageView = async ({ params, team }: TemplatePageViewProps) const { user } = await getRequiredServerComponentSession(); - const template = await getTemplateWithDetailsById({ + const template = await getTemplateById({ id: templateId, userId: user.id, + teamId: team?.id, }).catch(() => null); - if (!template || !template.templateDocumentData) { + if (!template || !template.templateDocumentData || (template?.teamId && !team?.url)) { redirect(templateRootPath); } - const isTemplateEnterprise = await isUserEnterprise({ - userId: user.id, - teamId: team?.id, + const { templateDocumentData, Field, Recipient: recipients, templateMeta } = template; + + // Remap to fit the DocumentReadOnlyFields component. + const readOnlyFields = Field.map((field) => { + const recipient = recipients.find((recipient) => recipient.id === field.recipientId) || { + name: '', + email: '', + signingStatus: SigningStatus.NOT_SIGNED, + }; + + return { + ...field, + Recipient: recipient, + Signature: null, + }; }); - return ( -
    -
    -
    - - - Templates - + const mockedDocumentMeta = templateMeta + ? { + typedSignatureEnabled: false, + ...templateMeta, + signingOrder: templateMeta.signingOrder || DocumentSigningOrder.SEQUENTIAL, + documentId: 0, + } + : undefined; + return ( +
    + + + Templates + + +
    +

    {template.title}

    @@ -77,17 +106,97 @@ export const TemplatePageView = async ({ params, team }: TemplatePageViewProps)
    -
    +
    + +
    - +
    + + + + + + + + +
    +
    +
    +
    +

    + Template +

    + +
    + +
    +
    + +

    + Manage and view template +

    + +
    + + Use + + } + /> +
    +
    + + {/* Template information section. */} + + + {/* Recipients section. */} + + + {/* Recent activity section. */} + +
    +
    +
    + +
    +

    + Documents created from template +

    + + +
    ); }; diff --git a/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx b/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx index 0e8b3b2b0..95ca60ae9 100644 --- a/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx +++ b/apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx @@ -8,7 +8,7 @@ import { Trans } from '@lingui/macro'; import { Copy, Edit, MoreHorizontal, MoveRight, Share2Icon, Trash2 } from 'lucide-react'; import { useSession } from 'next-auth/react'; -import { type FindTemplateRow } from '@documenso/lib/server-only/template/find-templates'; +import type { Recipient, Template, TemplateDirectLink } from '@documenso/prisma/client'; import { DropdownMenu, DropdownMenuContent, @@ -23,7 +23,10 @@ import { MoveTemplateDialog } from './move-template-dialog'; import { TemplateDirectLinkDialog } from './template-direct-link-dialog'; export type DataTableActionDropdownProps = { - row: FindTemplateRow; + row: Template & { + directLink?: Pick | null; + Recipient: Recipient[]; + }; templateRootPath: string; teamId?: number; }; @@ -57,7 +60,7 @@ export const DataTableActionDropdown = ({ Action - + Edit diff --git a/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx b/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx index 0181a5ea7..277f9d36f 100644 --- a/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx +++ b/apps/web/src/app/(dashboard)/templates/data-table-templates.tsx @@ -124,7 +124,7 @@ export const TemplatesDataTable = ({ accessorKey: 'type', cell: ({ row }) => (
    - + {row.original.directLink?.token && ( !form.formState.isSubmitting && setOpen(value)}> - + {trigger || ( + + )} diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx new file mode 100644 index 000000000..2ae081ba4 --- /dev/null +++ b/apps/web/src/app/(teams)/t/[teamUrl]/templates/[id]/edit/page.tsx @@ -0,0 +1,24 @@ +import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server'; +import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; +import { getTeamByUrl } from '@documenso/lib/server-only/team/get-team'; + +import type { TemplateEditPageViewProps } from '~/app/(dashboard)/templates/[id]/edit/template-edit-page-view'; +import { TemplateEditPageView } from '~/app/(dashboard)/templates/[id]/edit/template-edit-page-view'; + +export type TeamsTemplateEditPageProps = { + params: TemplateEditPageViewProps['params'] & { + teamUrl: string; + }; +}; + +export default async function TeamsTemplateEditPage({ params }: TeamsTemplateEditPageProps) { + await setupI18nSSR(); + + const { teamUrl } = params; + + const { user } = await getRequiredServerComponentSession(); + + const team = await getTeamByUrl({ userId: user.id, teamUrl }); + + return ; +} diff --git a/apps/web/src/components/document/document-read-only-fields.tsx b/apps/web/src/components/document/document-read-only-fields.tsx index 9c534ca35..0b9550a8c 100644 --- a/apps/web/src/components/document/document-read-only-fields.tsx +++ b/apps/web/src/components/document/document-read-only-fields.tsx @@ -2,8 +2,9 @@ import { useState } from 'react'; +import { Trans } from '@lingui/macro'; import { useLingui } from '@lingui/react'; -import { EyeOffIcon } from 'lucide-react'; +import { Clock, EyeOffIcon } from 'lucide-react'; import { P, match } from 'ts-pattern'; import { @@ -18,8 +19,10 @@ import { extractInitials } from '@documenso/lib/utils/recipient-formatter'; import type { DocumentMeta } from '@documenso/prisma/client'; import { FieldType, SigningStatus } from '@documenso/prisma/client'; import { FieldRootContainer } from '@documenso/ui/components/field/field'; +import { SignatureIcon } from '@documenso/ui/icons/signature'; import { cn } from '@documenso/ui/lib/utils'; import { Avatar, AvatarFallback } from '@documenso/ui/primitives/avatar'; +import { Badge } from '@documenso/ui/primitives/badge'; import { FRIENDLY_FIELD_TYPE } from '@documenso/ui/primitives/document-flow/types'; import { ElementVisible } from '@documenso/ui/primitives/element-visible'; import { PopoverHover } from '@documenso/ui/primitives/popover'; @@ -27,9 +30,14 @@ import { PopoverHover } from '@documenso/ui/primitives/popover'; export type DocumentReadOnlyFieldsProps = { fields: DocumentField[]; documentMeta?: DocumentMeta; + showFieldStatus?: boolean; }; -export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnlyFieldsProps) => { +export const DocumentReadOnlyFields = ({ + documentMeta, + fields, + showFieldStatus = true, +}: DocumentReadOnlyFieldsProps) => { const { _ } = useLingui(); const [hiddenFieldIds, setHiddenFieldIds] = useState>({}); @@ -58,15 +66,37 @@ export const DocumentReadOnlyFields = ({ documentMeta, fields }: DocumentReadOnl } contentProps={{ - className: 'relative flex w-fit flex-col p-2.5 text-sm', + className: 'relative flex w-fit flex-col p-4 text-sm', }} > -

    - {field.Recipient.signingStatus === SigningStatus.SIGNED ? 'Signed' : 'Pending'}{' '} - {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[field.type]).toLowerCase()} field + {showFieldStatus && ( + + {field.Recipient.signingStatus === SigningStatus.SIGNED ? ( + <> + + Signed + + ) : ( + <> + + Pending + + )} + + )} + +

    + {parseMessageDescriptor(_, FRIENDLY_FIELD_TYPE[field.type])} field

    -

    +

    {field.Recipient.name ? `${field.Recipient.name} (${field.Recipient.email})` : field.Recipient.email}{' '} diff --git a/apps/web/src/components/forms/search-param-selector.tsx b/apps/web/src/components/forms/search-param-selector.tsx new file mode 100644 index 000000000..cdd4ef2b2 --- /dev/null +++ b/apps/web/src/components/forms/search-param-selector.tsx @@ -0,0 +1,50 @@ +import React, { useMemo } from 'react'; + +import { usePathname, useRouter, useSearchParams } from 'next/navigation'; + +import { Select, SelectContent, SelectTrigger, SelectValue } from '@documenso/ui/primitives/select'; + +export type SearchParamSelector = { + paramKey: string; + isValueValid: (value: unknown) => boolean; + children: React.ReactNode; +}; + +export const SearchParamSelector = ({ children, paramKey, isValueValid }: SearchParamSelector) => { + const pathname = usePathname(); + const searchParams = useSearchParams(); + + const router = useRouter(); + + const value = useMemo(() => { + const p = searchParams?.get(paramKey) ?? 'all'; + + return isValueValid(p) ? p : 'all'; + }, [searchParams]); + + const onValueChange = (newValue: string) => { + if (!pathname) { + return; + } + + const params = new URLSearchParams(searchParams?.toString()); + + params.set(paramKey, newValue); + + if (newValue === '' || newValue === 'all') { + params.delete(paramKey); + } + + router.push(`${pathname}?${params.toString()}`, { scroll: false }); + }; + + return ( + + ); +}; diff --git a/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts b/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts index 4061b0046..e367ecef6 100644 --- a/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts +++ b/packages/app-tests/e2e/templates-flow/template-settings-step.spec.ts @@ -32,7 +32,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Set EE action auth. @@ -74,7 +74,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: teamMemberUser.email, - redirectPath: `/t/${team.url}/templates/${template.id}`, + redirectPath: `/t/${team.url}/templates/${template.id}/edit`, }); // Set EE action auth. @@ -110,7 +110,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: teamMemberUser.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Global action auth should not be visible. @@ -132,7 +132,7 @@ test('[TEMPLATE_FLOW]: add settings', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Set title. diff --git a/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts b/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts index 16bb077e4..3ce52c55c 100644 --- a/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts +++ b/packages/app-tests/e2e/templates-flow/template-signers-step.spec.ts @@ -31,7 +31,7 @@ test.describe('[EE_ONLY]', () => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Save the settings by going to the next step. @@ -81,7 +81,7 @@ test('[TEMPLATE_FLOW]: add placeholder', async ({ page }) => { await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Save the settings by going to the next step. diff --git a/packages/app-tests/e2e/templates/create-document-from-template.spec.ts b/packages/app-tests/e2e/templates/create-document-from-template.spec.ts index 72baa0002..57100eaa6 100644 --- a/packages/app-tests/e2e/templates/create-document-from-template.spec.ts +++ b/packages/app-tests/e2e/templates/create-document-from-template.spec.ts @@ -37,7 +37,7 @@ test('[TEMPLATE]: should create a document from a template', async ({ page }) => await apiSignin({ page, email: user.email, - redirectPath: `/templates/${template.id}`, + redirectPath: `/templates/${template.id}/edit`, }); // Set template title. @@ -172,7 +172,7 @@ test('[TEMPLATE]: should create a team document from a team template', async ({ await apiSignin({ page, email: owner.email, - redirectPath: `/t/${team.url}/templates/${template.id}`, + redirectPath: `/t/${team.url}/templates/${template.id}/edit`, }); // Set template title. diff --git a/packages/lib/server-only/document/find-documents.ts b/packages/lib/server-only/document/find-documents.ts index 2495973f2..a14996bb9 100644 --- a/packages/lib/server-only/document/find-documents.ts +++ b/packages/lib/server-only/document/find-documents.ts @@ -3,7 +3,14 @@ import { P, match } from 'ts-pattern'; import { prisma } from '@documenso/prisma'; import { RecipientRole, SigningStatus, TeamMemberRole } from '@documenso/prisma/client'; -import type { Document, Prisma, Team, TeamEmail, User } from '@documenso/prisma/client'; +import type { + Document, + DocumentSource, + Prisma, + Team, + TeamEmail, + User, +} from '@documenso/prisma/client'; import { ExtendedDocumentStatus } from '@documenso/prisma/types/extended-document-status'; import { DocumentVisibility } from '../../types/document-visibility'; @@ -16,6 +23,8 @@ export type FindDocumentsOptions = { userId: number; teamId?: number; term?: string; + templateId?: number; + source?: DocumentSource; status?: ExtendedDocumentStatus; page?: number; perPage?: number; @@ -32,6 +41,8 @@ export const findDocuments = async ({ userId, teamId, term, + templateId, + source, status = ExtendedDocumentStatus.ALL, page = 1, perPage = 10, @@ -40,44 +51,37 @@ export const findDocuments = async ({ senderIds, search, }: FindDocumentsOptions) => { - const { user, team } = await prisma.$transaction(async (tx) => { - const user = await tx.user.findFirstOrThrow({ + const user = await prisma.user.findFirstOrThrow({ + where: { + id: userId, + }, + }); + + let team = null; + + if (teamId !== undefined) { + team = await prisma.team.findFirstOrThrow({ where: { - id: userId, + id: teamId, + members: { + some: { + userId, + }, + }, + }, + include: { + teamEmail: true, + members: { + where: { + userId, + }, + select: { + role: true, + }, + }, }, }); - - let team = null; - - if (teamId !== undefined) { - team = await tx.team.findFirstOrThrow({ - where: { - id: teamId, - members: { - some: { - userId, - }, - }, - }, - include: { - teamEmail: true, - members: { - where: { - userId, - }, - select: { - role: true, - }, - }, - }, - }); - } - - return { - user, - team, - }; - }); + } const orderByColumn = orderBy?.column ?? 'createdAt'; const orderByDirection = orderBy?.direction ?? 'desc'; @@ -197,8 +201,27 @@ export const findDocuments = async ({ }; } + const whereAndClause: Prisma.DocumentWhereInput['AND'] = [ + { ...termFilters }, + { ...filters }, + { ...deletedFilter }, + { ...searchFilter }, + ]; + + if (templateId) { + whereAndClause.push({ + templateId, + }); + } + + if (source) { + whereAndClause.push({ + source, + }); + } + const whereClause: Prisma.DocumentWhereInput = { - AND: [{ ...termFilters }, { ...filters }, { ...deletedFilter }, { ...searchFilter }], + AND: whereAndClause, }; if (period) { diff --git a/packages/lib/server-only/template/get-template-by-id.ts b/packages/lib/server-only/template/get-template-by-id.ts index fbc8c48f8..fc365433e 100644 --- a/packages/lib/server-only/template/get-template-by-id.ts +++ b/packages/lib/server-only/template/get-template-by-id.ts @@ -42,6 +42,13 @@ export const getTemplateById = async ({ id, userId, teamId }: GetTemplateByIdOpt templateMeta: true, Recipient: true, Field: true, + User: { + select: { + id: true, + name: true, + email: true, + }, + }, }, }); diff --git a/packages/trpc/server/document-router/router.ts b/packages/trpc/server/document-router/router.ts index d49dd07ef..753cd87d0 100644 --- a/packages/trpc/server/document-router/router.ts +++ b/packages/trpc/server/document-router/router.ts @@ -11,6 +11,7 @@ import { createDocument } from '@documenso/lib/server-only/document/create-docum import { deleteDocument } from '@documenso/lib/server-only/document/delete-document'; import { duplicateDocumentById } from '@documenso/lib/server-only/document/duplicate-document-by-id'; import { findDocumentAuditLogs } from '@documenso/lib/server-only/document/find-document-audit-logs'; +import { findDocuments } from '@documenso/lib/server-only/document/find-documents'; import { getDocumentById } from '@documenso/lib/server-only/document/get-document-by-id'; import { getDocumentAndSenderByToken } from '@documenso/lib/server-only/document/get-document-by-token'; import { getDocumentWithDetailsById } from '@documenso/lib/server-only/document/get-document-with-details-by-id'; @@ -31,6 +32,7 @@ import { ZDownloadAuditLogsMutationSchema, ZDownloadCertificateMutationSchema, ZFindDocumentAuditLogsQuerySchema, + ZFindDocumentsQuerySchema, ZGetDocumentByIdQuerySchema, ZGetDocumentByTokenQuerySchema, ZGetDocumentWithDetailsByIdQuerySchema, @@ -190,6 +192,37 @@ export const documentRouter = router({ } }), + findDocuments: authenticatedProcedure + .input(ZFindDocumentsQuerySchema) + .query(async ({ input, ctx }) => { + const { user } = ctx; + + const { search, teamId, templateId, page, perPage, orderBy, source, status } = input; + + try { + const documents = await findDocuments({ + userId: user.id, + teamId, + templateId, + search, + source, + status, + page, + perPage, + orderBy, + }); + + return documents; + } catch (err) { + console.error(err); + + throw new TRPCError({ + code: 'BAD_REQUEST', + message: 'We are unable to search for documents. Please try again later.', + }); + } + }), + findDocumentAuditLogs: authenticatedProcedure .input(ZFindDocumentAuditLogsQuerySchema) .query(async ({ input, ctx }) => { diff --git a/packages/trpc/server/document-router/schema.ts b/packages/trpc/server/document-router/schema.ts index 64540b077..b906dae21 100644 --- a/packages/trpc/server/document-router/schema.ts +++ b/packages/trpc/server/document-router/schema.ts @@ -7,7 +7,30 @@ import { } from '@documenso/lib/types/document-auth'; import { ZBaseTableSearchParamsSchema } from '@documenso/lib/types/search-params'; import { isValidRedirectUrl } from '@documenso/lib/utils/is-valid-redirect-url'; -import { DocumentSigningOrder, FieldType, RecipientRole } from '@documenso/prisma/client'; +import { + DocumentSigningOrder, + DocumentSource, + DocumentStatus, + FieldType, + RecipientRole, +} from '@documenso/prisma/client'; + +export const ZFindDocumentsQuerySchema = ZBaseTableSearchParamsSchema.extend({ + teamId: z.number().min(1).optional(), + templateId: z.number().min(1).optional(), + search: z + .string() + .optional() + .catch(() => undefined), + source: z.nativeEnum(DocumentSource).optional(), + status: z.nativeEnum(DocumentStatus).optional(), + orderBy: z + .object({ + column: z.enum(['createdAt']), + direction: z.enum(['asc', 'desc']), + }) + .optional(), +}).omit({ query: true }); export const ZFindDocumentAuditLogsQuerySchema = ZBaseTableSearchParamsSchema.extend({ documentId: z.number().min(1), From 011dabcc0419cc577c6317bac9b37689cff53e33 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 5 Nov 2024 17:37:05 +0900 Subject: [PATCH 05/16] chore: extract translations --- packages/lib/translations/de/web.po | 177 +++++++++++++++++++++------- packages/lib/translations/en/web.po | 177 +++++++++++++++++++++------- packages/lib/translations/es/web.po | 177 +++++++++++++++++++++------- packages/lib/translations/fr/web.po | 177 +++++++++++++++++++++------- 4 files changed, 544 insertions(+), 164 deletions(-) diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index a6e6beacf..a2763d52f 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -161,7 +161,7 @@ msgstr "Eine Bestätigungs-E-Mail wurde gesendet, und sie sollte in Kürze in de msgid "A device capable of accessing, opening, and reading documents" msgstr "Ein Gerät, das in der Lage ist, Dokumente zuzugreifen, zu öffnen und zu lesen" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "Ein Entwurf wird erstellt" @@ -238,6 +238,7 @@ msgid "Action" msgstr "Aktion" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -261,11 +262,11 @@ msgid "Add" msgstr "Hinzufügen" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Fügen Sie alle relevanten Felder für jeden Empfänger hinzu." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Fügen Sie alle relevanten Platzhalter für jeden Empfänger hinzu." @@ -282,7 +283,7 @@ msgid "Add email" msgstr "E-Mail hinzufügen" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Felder hinzufügen" @@ -295,7 +296,7 @@ msgstr "Mehr hinzufügen" msgid "Add passkey" msgstr "Passkey hinzufügen" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Platzhalter hinzufügen" @@ -315,7 +316,7 @@ msgstr "Team-E-Mail hinzufügen" msgid "Add the people who will sign the document." msgstr "Fügen Sie die Personen hinzu, die das Dokument unterschreiben werden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Fügen Sie die Empfänger hinzu, um das Dokument zu erstellen" @@ -415,8 +416,8 @@ msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "Ein Fehler ist aufgetreten, während Unterzeichner hinzugefügt wurden." @@ -424,7 +425,7 @@ msgstr "Ein Fehler ist aufgetreten, während Unterzeichner hinzugefügt wurden." msgid "An error occurred while adding the fields." msgstr "Ein Fehler ist aufgetreten, während die Felder hinzugefügt wurden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "Ein Fehler ist aufgetreten, während das Dokument aus der Vorlage erstellt wurde." @@ -508,7 +509,7 @@ 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:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Ein Fehler ist aufgetreten, während die Dokumenteinstellungen aktualisiert wurden." @@ -571,6 +572,14 @@ msgstr "Es ist ein unbekannter Fehler aufgetreten" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Alle Zahlungsmethoden, die mit diesem Team verbunden sind, bleiben diesem Team zugeordnet. Bitte kontaktiere uns, wenn du diese Informationen aktualisieren möchtest." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -805,6 +814,7 @@ msgstr "Klicken Sie hier, um zu beginnen" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Klicken Sie hier, um es erneut zu versuchen" @@ -826,7 +836,7 @@ msgid "Click to insert field" msgstr "Klicken Sie, um das Feld einzufügen" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 @@ -856,6 +866,7 @@ msgstr "Unterzeichnung abschließen" msgid "Complete Viewing" msgstr "Betrachten abschließen" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -873,7 +884,7 @@ msgstr "Abgeschlossene Dokumente" msgid "Configure general settings for the document." msgstr "Konfigurieren Sie die allgemeinen Einstellungen für das Dokument." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Konfigurieren Sie die allgemeinen Einstellungen für die Vorlage." @@ -975,15 +986,15 @@ msgstr "Ein Team erstellen, um mit Ihren Teammitgliedern zusammenzuarbeiten." msgid "Create account" msgstr "Konto erstellen" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Erstellen und senden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Als Entwurf erstellen" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Direkten Link erstellen" @@ -991,7 +1002,7 @@ msgstr "Direkten Link erstellen" msgid "Create Direct Signing Link" msgstr "Direkten Signatur-Link erstellen" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Dokument aus der Vorlage erstellen" @@ -1039,6 +1050,8 @@ msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensign #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" @@ -1108,7 +1121,7 @@ msgstr "löschen" #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1196,10 +1209,16 @@ msgstr "Gerät" msgid "direct link" msgstr "Direkter Link" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Direkter Link" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "Direkter Link deaktiviert" @@ -1268,6 +1287,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you msgstr "Documenso wird <0>alle Ihre Dokumente löschen, zusammen mit allen abgeschlossenen Dokumenten, Unterschriften und allen anderen Ressourcen, die zu Ihrem Konto gehören." #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Dokument" @@ -1291,10 +1311,18 @@ msgstr "Dokument abgeschlossen" msgid "Document Completed!" msgstr "Dokument abgeschlossen!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Dokument erstellt" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 @@ -1402,6 +1430,10 @@ msgstr "Dokument wird dauerhaft gelöscht" msgid "Documents" msgstr "Dokumente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Dokumente empfangen" @@ -1433,6 +1465,7 @@ msgstr "Auditprotokolle herunterladen" msgid "Download Certificate" msgstr "Zertifikat herunterladen" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Entwurf" @@ -1453,7 +1486,7 @@ msgstr "Aufgrund einer unbezahlten Rechnung wurde Ihrem Team der Zugriff eingesc #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Duplizieren" @@ -1464,12 +1497,16 @@ msgstr "Duplizieren" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Bearbeiten" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1486,8 +1523,8 @@ msgstr "Offenlegung der elektronischen Unterschrift" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1586,12 +1623,12 @@ msgstr "Geben Sie hier Ihren Text ein" #: 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 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1680,7 +1717,7 @@ msgid "Full Name" msgstr "Vollständiger Name" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1771,6 +1808,7 @@ msgid "Inbox documents" msgstr "Posteingang Dokumente" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Information" @@ -1885,6 +1923,7 @@ msgid "Last 7 days" msgstr "Die letzten 7 Tage" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Zuletzt geändert" @@ -1971,11 +2010,15 @@ msgstr "Verwalten Sie das Profil von {0}" msgid "Manage all teams you are currently associated with." msgstr "Verwalten Sie alle Teams, mit denen Sie derzeit verbunden sind." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Details für diese öffentliche Vorlage verwalten" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Direktlink verwalten" @@ -2051,6 +2094,7 @@ msgid "Members" msgstr "Mitglieder" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Empfänger ändern" @@ -2080,7 +2124,7 @@ msgid "Move Template to Team" msgstr "Vorlage in Team verschieben" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "In Team verschieben" @@ -2098,8 +2142,8 @@ msgstr "Meine Vorlagen" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2155,7 +2199,12 @@ msgstr "Keine Vorlagen für das öffentliche Profil gefunden" msgid "No recent activity" msgstr "Keine aktuellen Aktivitäten" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 msgid "No recipients" msgstr "Keine Empfänger" @@ -2250,7 +2299,7 @@ msgstr "Oder" msgid "Or continue with" msgstr "Oder fahren Sie fort mit" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "Andernfalls wird das Dokument als Entwurf erstellt." @@ -2330,8 +2379,10 @@ msgid "Payment overdue" msgstr "Zahlung überfällig" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "Ausstehend" @@ -2531,7 +2582,12 @@ msgstr "Eine erneute Authentifizierung ist erforderlich, um dieses Feld zu unter msgid "Recent activity" msgstr "Aktuelle Aktivitäten" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Empfänger" @@ -2542,6 +2598,7 @@ msgstr "Empfänger aktualisiert" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 msgid "Recipients" msgstr "Empfänger" @@ -2768,7 +2825,7 @@ msgstr "Passkey auswählen" msgid "Send confirmation email" msgstr "Bestätigungs-E-Mail senden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Dokument senden" @@ -2930,6 +2987,7 @@ msgid "Signatures will appear once the document has been completed" msgstr "Unterschriften erscheinen, sobald das Dokument abgeschlossen ist" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Unterzeichnet" @@ -3030,6 +3088,10 @@ msgstr "Entschuldigung, wir konnten die Prüfprotokolle nicht herunterladen. Bit msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Entschuldigung, wir konnten das Zertifikat nicht herunterladen. Bitte versuchen Sie es später erneut." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Statistiken" @@ -3037,6 +3099,7 @@ msgstr "Statistiken" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Status" @@ -3215,6 +3278,11 @@ msgstr "Teams" msgid "Teams restricted" msgstr "Teams beschränkt" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3244,11 +3312,11 @@ msgstr "Vorlage wurde aktualisiert." msgid "Template moved" msgstr "Vorlage verschoben" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Vorlage gespeichert" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3295,7 +3363,7 @@ msgstr "Das Dokument wurde erfolgreich in das ausgewählte Team verschoben." msgid "The document is now completed, please follow any instructions provided within the parent application." msgstr "Das Dokument ist jetzt abgeschlossen. Bitte folgen Sie allen Anweisungen, die in der übergeordneten Anwendung bereitgestellt werden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versendet werden." @@ -3303,7 +3371,7 @@ msgstr "Das Dokument wurde erstellt, konnte aber nicht an die Empfänger versend msgid "The document will be hidden from your account" msgstr "Das Dokument wird von Ihrem Konto verborgen werden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 msgid "The document will be immediately sent to recipients if this is checked." msgstr "Das Dokument wird sofort an die Empfänger gesendet, wenn dies angehakt ist." @@ -3454,6 +3522,14 @@ msgstr "Dieses Dokument wurde von allen Empfängern unterschrieben" msgid "This document is currently a draft and has not been sent" msgstr "Dieses Dokument ist momentan ein Entwurf und wurde nicht gesendet" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +msgid "This document was created by you or a team member using the template above." +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "" + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "Diese E-Mail-Adresse wird bereits von einem anderen Team verwendet." @@ -3521,6 +3597,7 @@ msgstr "Zeitzone" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Titel" @@ -3724,6 +3801,10 @@ msgstr "Zurzeit kann diesem Team nicht beigetreten werden." msgid "Unable to load document history" msgstr "Kann den Dokumentverlauf nicht laden" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "Derzeit können Ihre öffentlichen Profilvorlagen nicht geladen werden" @@ -3848,6 +3929,7 @@ msgid "Upload Avatar" msgstr "Avatar hochladen" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Hochgeladen von" @@ -3863,6 +3945,10 @@ msgstr "Die hochgeladene Datei ist zu klein" msgid "Uploaded file not an allowed file type" msgstr "Die hochgeladene Datei ist kein zulässiger Dateityp" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3873,7 +3959,7 @@ msgstr "Authenticator verwenden" msgid "Use Backup Code" msgstr "Backup-Code verwenden" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Vorlage verwenden" @@ -3946,6 +4032,10 @@ msgstr "Alle Dokumente anzeigen, die an Ihr Konto gesendet wurden" msgid "View all recent security activity related to your account." msgstr "Sehen Sie sich alle aktuellen Sicherheitsaktivitäten in Ihrem Konto an." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "Sehen Sie sich alle Sicherheitsaktivitäten in Ihrem Konto an." @@ -3966,6 +4056,10 @@ msgstr "Dokumente ansehen, die mit dieser E-Mail verknüpft sind" msgid "View invites" msgstr "Einladungen ansehen" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "Originaldokument ansehen" @@ -4280,6 +4374,7 @@ msgid "Yearly" msgstr "Jährlich" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "Sie" @@ -4513,7 +4608,7 @@ msgstr "Ihre direkten Unterzeichnungsvorlagen" msgid "Your document failed to upload." msgstr "Ihr Dokument konnte nicht hochgeladen werden." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Ihr Dokument wurde erfolgreich aus der Vorlage erstellt." @@ -4612,7 +4707,7 @@ msgstr "Ihre Vorlage wurde erfolgreich gelöscht." msgid "Your template will be duplicated." msgstr "Ihre Vorlage wird dupliziert." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Ihre Vorlagen wurden erfolgreich gespeichert." diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index b91dad148..6b0c48e5c 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -156,7 +156,7 @@ msgstr "A confirmation email has been sent, and it should arrive in your inbox s msgid "A device capable of accessing, opening, and reading documents" msgstr "A device capable of accessing, opening, and reading documents" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "A draft document will be created" @@ -233,6 +233,7 @@ msgid "Action" msgstr "Action" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -256,11 +257,11 @@ msgid "Add" msgstr "Add" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Add all relevant fields for each recipient." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Add all relevant placeholders for each recipient." @@ -277,7 +278,7 @@ msgid "Add email" msgstr "Add email" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Add Fields" @@ -290,7 +291,7 @@ msgstr "Add more" msgid "Add passkey" msgstr "Add passkey" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Add Placeholders" @@ -310,7 +311,7 @@ msgstr "Add team email" msgid "Add the people who will sign the document." msgstr "Add the people who will sign the document." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Add the recipients to create the document with" @@ -410,8 +411,8 @@ msgid "An error occurred" msgstr "An error occurred" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "An error occurred while adding signers." @@ -419,7 +420,7 @@ msgstr "An error occurred while adding signers." msgid "An error occurred while adding the fields." msgstr "An error occurred while adding the fields." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "An error occurred while creating document from template." @@ -503,7 +504,7 @@ msgid "An error occurred while trying to create a checkout session." msgstr "An error occurred while trying to create a checkout session." #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "An error occurred while updating the document settings." @@ -566,6 +567,14 @@ msgstr "An unknown error occurred" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "Any Source" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "Any Status" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -800,6 +809,7 @@ msgstr "Click here to get started" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Click here to retry" @@ -821,7 +831,7 @@ msgid "Click to insert field" msgstr "Click to insert field" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 @@ -851,6 +861,7 @@ msgstr "Complete Signing" msgid "Complete Viewing" msgstr "Complete Viewing" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -868,7 +879,7 @@ msgstr "Completed Documents" msgid "Configure general settings for the document." msgstr "Configure general settings for the document." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configure general settings for the template." @@ -970,15 +981,15 @@ msgstr "Create a team to collaborate with your team members." msgid "Create account" msgstr "Create account" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Create and send" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Create as draft" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Create Direct Link" @@ -986,7 +997,7 @@ msgstr "Create Direct Link" msgid "Create Direct Signing Link" msgstr "Create Direct Signing Link" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Create document from template" @@ -1034,6 +1045,8 @@ msgstr "Create your account and start using state-of-the-art document signing. O #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" @@ -1103,7 +1116,7 @@ msgstr "delete" #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1191,10 +1204,16 @@ msgstr "Device" msgid "direct link" msgstr "direct link" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Direct link" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "Direct Link" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "direct link disabled" @@ -1263,6 +1282,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you msgstr "Documenso will delete <0>all of your documents, along with all of your completed documents, signatures, and all other resources belonging to your Account." #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Document" @@ -1286,10 +1306,18 @@ msgstr "Document completed" msgid "Document Completed!" msgstr "Document Completed!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Document created" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "Document created by <0>{0}" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "Document created using a <0>direct link" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 @@ -1397,6 +1425,10 @@ msgstr "Document will be permanently deleted" msgid "Documents" msgstr "Documents" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "Documents created from template" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Documents Received" @@ -1428,6 +1460,7 @@ msgstr "Download Audit Logs" msgid "Download Certificate" msgstr "Download Certificate" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Draft" @@ -1448,7 +1481,7 @@ msgstr "Due to an unpaid invoice, your team has been restricted. Please settle t #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Duplicate" @@ -1459,12 +1492,16 @@ msgstr "Duplicate" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Edit" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "Edit Template" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1481,8 +1518,8 @@ msgstr "Electronic Signature Disclosure" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1581,12 +1618,12 @@ msgstr "Enter your text here" #: 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 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1675,7 +1712,7 @@ msgid "Full Name" msgstr "Full Name" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1766,6 +1803,7 @@ msgid "Inbox documents" msgstr "Inbox documents" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Information" @@ -1880,6 +1918,7 @@ msgid "Last 7 days" msgstr "Last 7 days" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Last modified" @@ -1966,11 +2005,15 @@ msgstr "Manage {0}'s profile" msgid "Manage all teams you are currently associated with." msgstr "Manage all teams you are currently associated with." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "Manage and view template" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Manage details for this public template" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Manage Direct Link" @@ -2046,6 +2089,7 @@ msgid "Members" msgstr "Members" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Modify recipients" @@ -2075,7 +2119,7 @@ msgid "Move Template to Team" msgstr "Move Template to Team" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "Move to Team" @@ -2093,8 +2137,8 @@ msgstr "My templates" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2150,7 +2194,12 @@ msgstr "No public profile templates found" msgid "No recent activity" msgstr "No recent activity" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "No recent documents" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 msgid "No recipients" msgstr "No recipients" @@ -2245,7 +2294,7 @@ msgstr "Or" msgid "Or continue with" msgstr "Or continue with" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "Otherwise, the document will be created as a draft." @@ -2325,8 +2374,10 @@ msgid "Payment overdue" msgstr "Payment overdue" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "Pending" @@ -2526,7 +2577,12 @@ msgstr "Reauthentication is required to sign this field" msgid "Recent activity" msgstr "Recent activity" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "Recent documents" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Recipient" @@ -2537,6 +2593,7 @@ msgstr "Recipient updated" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 msgid "Recipients" msgstr "Recipients" @@ -2763,7 +2820,7 @@ msgstr "Select passkey" msgid "Send confirmation email" msgstr "Send confirmation email" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Send document" @@ -2925,6 +2982,7 @@ msgid "Signatures will appear once the document has been completed" msgstr "Signatures will appear once the document has been completed" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Signed" @@ -3025,6 +3083,10 @@ msgstr "Sorry, we were unable to download the audit logs. Please try again later msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Sorry, we were unable to download the certificate. Please try again later." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "Source" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Stats" @@ -3032,6 +3094,7 @@ msgstr "Stats" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Status" @@ -3210,6 +3273,11 @@ msgstr "Teams" msgid "Teams restricted" msgstr "Teams restricted" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3239,11 +3307,11 @@ msgstr "Template has been updated." msgid "Template moved" msgstr "Template moved" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Template saved" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3290,7 +3358,7 @@ msgstr "The document has been successfully moved to the selected team." msgid "The document is now completed, please follow any instructions provided within the parent application." msgstr "The document is now completed, please follow any instructions provided within the parent application." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "The document was created but could not be sent to recipients." @@ -3298,7 +3366,7 @@ msgstr "The document was created but could not be sent to recipients." msgid "The document will be hidden from your account" msgstr "The document will be hidden from your account" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 msgid "The document will be immediately sent to recipients if this is checked." msgstr "The document will be immediately sent to recipients if this is checked." @@ -3449,6 +3517,14 @@ msgstr "This document has been signed by all recipients" msgid "This document is currently a draft and has not been sent" msgstr "This document is currently a draft and has not been sent" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +msgid "This document was created by you or a team member using the template above." +msgstr "This document was created by you or a team member using the template above." + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "This document was created using a direct link." + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "This email is already being used by another team." @@ -3516,6 +3592,7 @@ msgstr "Time zone" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Title" @@ -3719,6 +3796,10 @@ msgstr "Unable to join this team at this time." msgid "Unable to load document history" msgstr "Unable to load document history" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "Unable to load documents" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "Unable to load your public profile templates at this time" @@ -3843,6 +3924,7 @@ msgid "Upload Avatar" msgstr "Upload Avatar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Uploaded by" @@ -3858,6 +3940,10 @@ msgstr "Uploaded file is too small" msgid "Uploaded file not an allowed file type" msgstr "Uploaded file not an allowed file type" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "Use" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3868,7 +3954,7 @@ msgstr "Use Authenticator" msgid "Use Backup Code" msgstr "Use Backup Code" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Use Template" @@ -3941,6 +4027,10 @@ msgstr "View all documents sent to your account" msgid "View all recent security activity related to your account." msgstr "View all recent security activity related to your account." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "View all related documents" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "View all security activity related to your account." @@ -3961,6 +4051,10 @@ msgstr "View documents associated with this email" msgid "View invites" msgstr "View invites" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "View more" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "View Original Document" @@ -4275,6 +4369,7 @@ msgid "Yearly" msgstr "Yearly" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "You" @@ -4508,7 +4603,7 @@ msgstr "Your direct signing templates" msgid "Your document failed to upload." msgstr "Your document failed to upload." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Your document has been created from the template successfully." @@ -4607,7 +4702,7 @@ msgstr "Your template has been successfully deleted." msgid "Your template will be duplicated." msgstr "Your template will be duplicated." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Your templates has been saved successfully." diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index 665cb55ff..8e630bc89 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -161,7 +161,7 @@ msgstr "Se ha enviado un correo electrónico de confirmación y debería llegar msgid "A device capable of accessing, opening, and reading documents" msgstr "Un dispositivo capaz de acceder, abrir y leer documentos" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "Se creará un documento borrador" @@ -238,6 +238,7 @@ msgid "Action" msgstr "Acción" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -261,11 +262,11 @@ msgid "Add" msgstr "Agregar" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Agrega todos los campos relevantes para cada destinatario." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Agrega todos los marcadores de posición relevantes para cada destinatario." @@ -282,7 +283,7 @@ msgid "Add email" msgstr "Agregar correo electrónico" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Agregar Campos" @@ -295,7 +296,7 @@ msgstr "Agregar más" msgid "Add passkey" msgstr "Agregar clave" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Agregar Marcadores de posición" @@ -315,7 +316,7 @@ msgstr "Agregar correo electrónico del equipo" msgid "Add the people who will sign the document." msgstr "Agrega a las personas que firmarán el documento." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Agrega los destinatarios con los que crear el documento" @@ -415,8 +416,8 @@ msgid "An error occurred" msgstr "Ocurrió un error" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "Ocurrió un error al agregar firmantes." @@ -424,7 +425,7 @@ msgstr "Ocurrió un error al agregar firmantes." msgid "An error occurred while adding the fields." msgstr "Ocurrió un error al agregar los campos." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "Ocurrió un error al crear el documento a partir de la plantilla." @@ -508,7 +509,7 @@ msgid "An error occurred while trying to create a checkout session." msgstr "Ocurrió un error al intentar crear una sesión de pago." #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Ocurrió un error al actualizar la configuración del documento." @@ -571,6 +572,14 @@ msgstr "Ocurrió un error desconocido" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Cualquier método de pago adjunto a este equipo permanecerá adjunto a este equipo. Por favor, contáctanos si necesitas actualizar esta información." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -805,6 +814,7 @@ msgstr "Haga clic aquí para comenzar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Haga clic aquí para reintentar" @@ -826,7 +836,7 @@ msgid "Click to insert field" msgstr "Haga clic para insertar campo" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 @@ -856,6 +866,7 @@ msgstr "Completar Firmado" msgid "Complete Viewing" msgstr "Completar Visualización" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -873,7 +884,7 @@ msgstr "Documentos Completados" msgid "Configure general settings for the document." msgstr "Configurar ajustes generales para el documento." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configurar ajustes generales para la plantilla." @@ -975,15 +986,15 @@ msgstr "Crea un equipo para colaborar con los miembros de tu equipo." msgid "Create account" msgstr "Crear cuenta" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Crear y enviar" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Crear como borrador" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Crear enlace directo" @@ -991,7 +1002,7 @@ msgstr "Crear enlace directo" msgid "Create Direct Signing Link" msgstr "Crear enlace de firma directo" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Crear documento a partir de la plantilla" @@ -1039,6 +1050,8 @@ msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última g #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" @@ -1108,7 +1121,7 @@ msgstr "eliminar" #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1196,10 +1209,16 @@ msgstr "Dispositivo" msgid "direct link" msgstr "enlace directo" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Enlace directo" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "enlace directo deshabilitado" @@ -1268,6 +1287,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you msgstr "Documenso eliminará <0>todos sus documentos, junto con todos sus documentos completados, firmas y todos los demás recursos de su cuenta." #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Documento" @@ -1291,10 +1311,18 @@ msgstr "Documento completado" msgid "Document Completed!" msgstr "¡Documento completado!" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Documento creado" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 @@ -1402,6 +1430,10 @@ msgstr "El documento será eliminado permanentemente" msgid "Documents" msgstr "Documentos" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Documentos recibidos" @@ -1433,6 +1465,7 @@ msgstr "Descargar registros de auditoría" msgid "Download Certificate" msgstr "Descargar certificado" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Borrador" @@ -1453,7 +1486,7 @@ msgstr "Debido a una factura impaga, tu equipo ha sido restringido. Realiza el p #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Duplicar" @@ -1464,12 +1497,16 @@ msgstr "Duplicar" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Editar" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1486,8 +1523,8 @@ msgstr "Divulgación de Firma Electrónica" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1586,12 +1623,12 @@ msgstr "Ingresa tu texto aquí" #: 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 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1680,7 +1717,7 @@ msgid "Full Name" msgstr "Nombre completo" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1771,6 +1808,7 @@ msgid "Inbox documents" msgstr "Documentos en bandeja de entrada" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Información" @@ -1885,6 +1923,7 @@ msgid "Last 7 days" msgstr "Últimos 7 días" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Última modificación" @@ -1971,11 +2010,15 @@ msgstr "Gestionar el perfil de {0}" msgid "Manage all teams you are currently associated with." msgstr "Gestionar todos los equipos con los que estás asociado actualmente." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Gestionar detalles de esta plantilla pública" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Gestionar enlace directo" @@ -2051,6 +2094,7 @@ msgid "Members" msgstr "Miembros" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Modificar destinatarios" @@ -2080,7 +2124,7 @@ msgid "Move Template to Team" msgstr "Mover plantilla al equipo" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "Mover al equipo" @@ -2098,8 +2142,8 @@ msgstr "Mis plantillas" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2155,7 +2199,12 @@ msgstr "No se encontraron plantillas de perfil público" msgid "No recent activity" msgstr "No hay actividad reciente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 msgid "No recipients" msgstr "No hay destinatarios" @@ -2250,7 +2299,7 @@ msgstr "O" msgid "Or continue with" msgstr "O continúa con" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "De lo contrario, el documento se creará como un borrador." @@ -2330,8 +2379,10 @@ msgid "Payment overdue" msgstr "Pago atrasado" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "Pendiente" @@ -2531,7 +2582,12 @@ msgstr "Se requiere reautenticación para firmar este campo" msgid "Recent activity" msgstr "Actividad reciente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Destinatario" @@ -2542,6 +2598,7 @@ msgstr "Destinatario actualizado" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 msgid "Recipients" msgstr "Destinatarios" @@ -2768,7 +2825,7 @@ msgstr "Seleccionar clave de acceso" msgid "Send confirmation email" msgstr "Enviar correo de confirmación" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Enviar documento" @@ -2930,6 +2987,7 @@ msgid "Signatures will appear once the document has been completed" msgstr "Las firmas aparecerán una vez que el documento se haya completado" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Firmado" @@ -3030,6 +3088,10 @@ msgstr "Lo sentimos, no pudimos descargar los registros de auditoría. Por favor msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Lo sentimos, no pudimos descargar el certificado. Por favor, intenta de nuevo más tarde." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Estadísticas" @@ -3037,6 +3099,7 @@ msgstr "Estadísticas" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Estado" @@ -3215,6 +3278,11 @@ msgstr "Equipos" msgid "Teams restricted" msgstr "Equipos restringidos" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3244,11 +3312,11 @@ msgstr "La plantilla ha sido actualizada." msgid "Template moved" msgstr "Plantilla movida" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Plantilla guardada" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3295,7 +3363,7 @@ msgstr "El documento ha sido movido con éxito al equipo seleccionado." msgid "The document is now completed, please follow any instructions provided within the parent application." msgstr "El documento ahora está completado, por favor sigue cualquier instrucción proporcionada dentro de la aplicación principal." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "El documento fue creado pero no se pudo enviar a los destinatarios." @@ -3303,7 +3371,7 @@ msgstr "El documento fue creado pero no se pudo enviar a los destinatarios." msgid "The document will be hidden from your account" msgstr "El documento será ocultado de tu cuenta" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 msgid "The document will be immediately sent to recipients if this is checked." msgstr "El documento se enviará inmediatamente a los destinatarios si esto está marcado." @@ -3454,6 +3522,14 @@ msgstr "Este documento ha sido firmado por todos los destinatarios" msgid "This document is currently a draft and has not been sent" msgstr "Este documento es actualmente un borrador y no ha sido enviado" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +msgid "This document was created by you or a team member using the template above." +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "" + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "Este correo electrónico ya está siendo utilizado por otro equipo." @@ -3521,6 +3597,7 @@ msgstr "Zona horaria" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Título" @@ -3724,6 +3801,10 @@ msgstr "No se pudo unirte a este equipo en este momento." msgid "Unable to load document history" msgstr "No se pudo cargar el historial del documento" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "No se pudo cargar tus plantillas de perfil público en este momento" @@ -3848,6 +3929,7 @@ msgid "Upload Avatar" msgstr "Subir avatar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Subido por" @@ -3863,6 +3945,10 @@ msgstr "El archivo subido es demasiado pequeño" msgid "Uploaded file not an allowed file type" msgstr "El archivo subido no es un tipo de archivo permitido" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3873,7 +3959,7 @@ msgstr "Usar Autenticador" msgid "Use Backup Code" msgstr "Usar Código de Respaldo" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Usar Plantilla" @@ -3946,6 +4032,10 @@ msgstr "Ver todos los documentos enviados a tu cuenta" msgid "View all recent security activity related to your account." msgstr "Ver toda la actividad de seguridad reciente relacionada con tu cuenta." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "Ver toda la actividad de seguridad relacionada con tu cuenta." @@ -3966,6 +4056,10 @@ msgstr "Ver documentos asociados con este correo electrónico" msgid "View invites" msgstr "Ver invitaciones" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "Ver Documento Original" @@ -4280,6 +4374,7 @@ msgid "Yearly" msgstr "Anual" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "Tú" @@ -4513,7 +4608,7 @@ msgstr "Tus {0} plantillas de firma directa" msgid "Your document failed to upload." msgstr "Tu documento no se pudo cargar." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Tu documento se ha creado exitosamente a partir de la plantilla." @@ -4612,7 +4707,7 @@ msgstr "Tu plantilla ha sido eliminada con éxito." msgid "Your template will be duplicated." msgstr "Tu plantilla será duplicada." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Tus plantillas han sido guardadas con éxito." diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index d693cf6a9..44b8c692b 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -161,7 +161,7 @@ msgstr "Un e-mail de confirmation a été envoyé et devrait arriver dans votre msgid "A device capable of accessing, opening, and reading documents" msgstr "Un appareil capable d'accéder, d'ouvrir et de lire des documents" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:201 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:207 msgid "A draft document will be created" msgstr "Un document brouillon sera créé" @@ -238,6 +238,7 @@ msgid "Action" msgstr "Action" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:85 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:181 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:133 #: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:142 @@ -261,11 +262,11 @@ msgid "Add" msgstr "Ajouter" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:176 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:88 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:88 msgid "Add all relevant fields for each recipient." msgstr "Ajouter tous les champs pertinents pour chaque destinataire." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:83 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:83 msgid "Add all relevant placeholders for each recipient." msgstr "Ajouter tous les espaces réservés pertinents pour chaque destinataire." @@ -282,7 +283,7 @@ msgid "Add email" msgstr "Ajouter un e-mail" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:175 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:87 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:87 msgid "Add Fields" msgstr "Ajouter des champs" @@ -295,7 +296,7 @@ msgstr "Ajouter davantage" msgid "Add passkey" msgstr "Ajouter une clé de passe" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:82 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:82 msgid "Add Placeholders" msgstr "Ajouter des espaces réservés" @@ -315,7 +316,7 @@ msgstr "Ajouter un e-mail d'équipe" msgid "Add the people who will sign the document." msgstr "Ajouter les personnes qui signeront le document." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:209 msgid "Add the recipients to create the document with" msgstr "Ajouter les destinataires pour créer le document avec" @@ -415,8 +416,8 @@ msgid "An error occurred" msgstr "Une erreur est survenue" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:268 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:201 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:235 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:201 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:235 msgid "An error occurred while adding signers." msgstr "Une erreur est survenue lors de l'ajout de signataires." @@ -424,7 +425,7 @@ msgstr "Une erreur est survenue lors de l'ajout de signataires." msgid "An error occurred while adding the fields." msgstr "Une erreur est survenue lors de l'ajout des champs." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:161 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:165 msgid "An error occurred while creating document from template." msgstr "Une erreur est survenue lors de la création du document à partir d'un modèle." @@ -508,7 +509,7 @@ msgid "An error occurred while trying to create a checkout session." msgstr "Une erreur est survenue lors de la création d'une session de paiement." #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:234 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:170 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:170 msgid "An error occurred while updating the document settings." msgstr "Une erreur est survenue lors de la mise à jour des paramètres du document." @@ -571,6 +572,14 @@ msgstr "Une erreur inconnue est survenue" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Tous les moyens de paiement associés à cette équipe resteront associés à cette équipe. Veuillez nous contacter si vous avez besoin de mettre à jour ces informations." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 +msgid "Any Source" +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 +msgid "Any Status" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:22 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:42 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:56 @@ -805,6 +814,7 @@ msgstr "Cliquez ici pour commencer" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx:78 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:118 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:68 #: apps/web/src/components/document/document-history-sheet.tsx:133 msgid "Click here to retry" msgstr "Cliquez ici pour réessayer" @@ -826,7 +836,7 @@ msgid "Click to insert field" msgstr "Cliquez pour insérer le champ" #: apps/web/src/app/(dashboard)/templates/new-template-dialog.tsx:126 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:339 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:125 #: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:138 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:121 @@ -856,6 +866,7 @@ msgstr "Compléter la signature" msgid "Complete Viewing" msgstr "Compléter la visualisation" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:62 #: apps/web/src/components/formatter/document-status.tsx:28 msgid "Completed" @@ -873,7 +884,7 @@ msgstr "Documents Complétés" msgid "Configure general settings for the document." msgstr "Configurer les paramètres généraux pour le document." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:78 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:78 msgid "Configure general settings for the template." msgstr "Configurer les paramètres généraux pour le modèle." @@ -975,15 +986,15 @@ msgstr "Créer une équipe pour collaborer avec vos membres." msgid "Create account" msgstr "Créer un compte" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:345 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:351 msgid "Create and send" msgstr "Créer et envoyer" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:347 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:353 msgid "Create as draft" msgstr "Créer en tant que brouillon" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:37 msgid "Create Direct Link" msgstr "Créer un lien direct" @@ -991,7 +1002,7 @@ msgstr "Créer un lien direct" msgid "Create Direct Signing Link" msgstr "Créer un lien de signature directe" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:197 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:203 msgid "Create document from template" msgstr "Créer un document à partir du modèle" @@ -1039,6 +1050,8 @@ msgstr "Créez votre compte et commencez à utiliser la signature de documents #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:65 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:34 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:274 msgid "Created" @@ -1108,7 +1121,7 @@ msgstr "supprimer" #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:211 #: apps/web/src/app/(dashboard)/settings/tokens/page.tsx:83 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:100 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:91 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:94 #: apps/web/src/app/(dashboard)/templates/delete-template-dialog.tsx:90 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/tokens/page.tsx:116 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:105 @@ -1196,10 +1209,16 @@ msgstr "Appareil" msgid "direct link" msgstr "lien direct" -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:76 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:40 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:79 msgid "Direct link" msgstr "Lien direct" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:160 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:231 +msgid "Direct Link" +msgstr "" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-badge.tsx:46 msgid "direct link disabled" msgstr "lien direct désactivé" @@ -1268,6 +1287,7 @@ msgid "Documenso will delete <0>all of your documents, along with all of you msgstr "Documenso supprimera <0>tous vos documents, ainsi que tous vos documents complétés, signatures, et toutes les autres ressources appartenant à votre compte." #: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-page-view.tsx:119 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:38 msgid "Document" msgstr "Document" @@ -1291,10 +1311,18 @@ msgstr "Document complété" msgid "Document Completed!" msgstr "Document Complété !" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:150 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:154 msgid "Document created" msgstr "Document créé" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:129 +msgid "Document created by <0>{0}" +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:134 +msgid "Document created using a <0>direct link" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:173 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:59 @@ -1402,6 +1430,10 @@ msgstr "Le document sera supprimé de manière permanente" msgid "Documents" msgstr "Documents" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:195 +msgid "Documents created from template" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/stats/page.tsx:113 msgid "Documents Received" msgstr "Documents reçus" @@ -1433,6 +1465,7 @@ msgstr "Télécharger les journaux d'audit" msgid "Download Certificate" msgstr "Télécharger le certificat" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:214 #: apps/web/src/components/formatter/document-status.tsx:34 msgid "Draft" msgstr "Brouillon" @@ -1453,7 +1486,7 @@ msgstr "En raison d'une facture impayée, votre équipe a été restreinte. Veui #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:165 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:85 #: apps/web/src/app/(dashboard)/documents/duplicate-document-dialog.tsx:118 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:71 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:74 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:91 msgid "Duplicate" msgstr "Dupliquer" @@ -1464,12 +1497,16 @@ msgstr "Dupliquer" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:154 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:111 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:95 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:62 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:65 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:77 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/page.tsx:100 msgid "Edit" msgstr "Modifier" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:115 +msgid "Edit Template" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:94 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:100 msgid "Edit webhook" @@ -1486,8 +1523,8 @@ msgstr "Divulgation de signature électronique" #: apps/web/src/app/(dashboard)/admin/documents/[id]/recipient-item.tsx:166 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:114 #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:71 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:248 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:255 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:254 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:261 #: apps/web/src/app/(recipient)/d/[token]/configure-direct-template.tsx:118 #: apps/web/src/app/(signing)/sign/[token]/email-field.tsx:126 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:377 @@ -1586,12 +1623,12 @@ msgstr "Entrez votre texte ici" #: 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 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:169 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:200 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:234 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:169 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:234 #: apps/web/src/app/(dashboard)/templates/duplicate-template-dialog.tsx:51 #: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:56 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:160 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:164 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:122 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:151 #: apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx:212 @@ -1680,7 +1717,7 @@ msgid "Full Name" msgstr "Nom complet" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:165 -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:77 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:77 #: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:60 #: apps/web/src/components/(teams)/settings/layout/desktop-nav.tsx:43 #: apps/web/src/components/(teams)/settings/layout/mobile-nav.tsx:51 @@ -1771,6 +1808,7 @@ msgid "Inbox documents" msgstr "Documents de la boîte de réception" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:53 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:50 msgid "Information" msgstr "Information" @@ -1885,6 +1923,7 @@ msgid "Last 7 days" msgstr "Derniers 7 jours" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:41 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:38 msgid "Last modified" msgstr "Dernière modification" @@ -1971,11 +2010,15 @@ msgstr "Gérer le profil de {0}" msgid "Manage all teams you are currently associated with." msgstr "Gérer toutes les équipes avec lesquelles vous êtes actuellement associé." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:159 +msgid "Manage and view template" +msgstr "" + #: apps/web/src/components/templates/manage-public-template-dialog.tsx:341 msgid "Manage details for this public template" msgstr "Gérer les détails de ce modèle public" -#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:33 +#: apps/web/src/app/(dashboard)/templates/[id]/template-direct-link-dialog-wrapper.tsx:35 msgid "Manage Direct Link" msgstr "Gérer le lien direct" @@ -2051,6 +2094,7 @@ msgid "Members" msgstr "Membres" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:40 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:35 msgid "Modify recipients" msgstr "Modifier les destinataires" @@ -2080,7 +2124,7 @@ msgid "Move Template to Team" msgstr "Déplacer le modèle vers l'équipe" #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:172 -#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:82 +#: apps/web/src/app/(dashboard)/templates/data-table-action-dropdown.tsx:85 msgid "Move to Team" msgstr "Déplacer vers l'équipe" @@ -2098,8 +2142,8 @@ msgstr "Mes modèles" #: apps/web/src/app/(dashboard)/admin/users/data-table-users.tsx:66 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx:144 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:61 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:270 -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:277 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:276 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:283 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:119 #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:170 #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:153 @@ -2155,7 +2199,12 @@ msgstr "Aucun modèle de profil public trouvé" msgid "No recent activity" msgstr "Aucune activité récente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:103 +msgid "No recent documents" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:55 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:49 msgid "No recipients" msgstr "Pas de destinataires" @@ -2250,7 +2299,7 @@ msgstr "Ou" msgid "Or continue with" msgstr "Ou continuez avec" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:324 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:330 msgid "Otherwise, the document will be created as a draft." msgstr "Sinon, le document sera créé sous forme de brouillon." @@ -2330,8 +2379,10 @@ msgid "Payment overdue" msgstr "Paiement en retard" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:211 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 +#: apps/web/src/components/document/document-read-only-fields.tsx:89 #: apps/web/src/components/formatter/document-status.tsx:22 msgid "Pending" msgstr "En attente" @@ -2531,7 +2582,12 @@ msgstr "Une nouvelle authentification est requise pour signer ce champ" msgid "Recent activity" msgstr "Activité récente" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:47 +msgid "Recent documents" +msgstr "" + #: apps/web/src/app/(dashboard)/documents/data-table.tsx:69 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:120 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:280 msgid "Recipient" msgstr "Destinataire" @@ -2542,6 +2598,7 @@ msgstr "Destinataire mis à jour" #: apps/web/src/app/(dashboard)/admin/documents/[id]/page.tsx:66 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:34 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recipients.tsx:30 msgid "Recipients" msgstr "Destinataires" @@ -2768,7 +2825,7 @@ msgstr "Sélectionner la clé d'authentification" msgid "Send confirmation email" msgstr "Envoyer l'e-mail de confirmation" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:308 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:314 msgid "Send document" msgstr "Envoyer le document" @@ -2930,6 +2987,7 @@ msgid "Signatures will appear once the document has been completed" msgstr "Les signatures apparaîtront une fois le document complété" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:98 +#: apps/web/src/components/document/document-read-only-fields.tsx:84 msgid "Signed" msgstr "Signé" @@ -3030,6 +3088,10 @@ msgstr "Désolé, nous n'avons pas pu télécharger les journaux d'audit. Veuill msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Désolé, nous n'avons pas pu télécharger le certificat. Veuillez réessayer plus tard." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:138 +msgid "Source" +msgstr "" + #: apps/web/src/app/(dashboard)/admin/nav.tsx:37 msgid "Stats" msgstr "Statistiques" @@ -3037,6 +3099,7 @@ msgstr "Statistiques" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:130 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" msgstr "Statut" @@ -3215,6 +3278,11 @@ msgstr "Équipes" msgid "Teams restricted" msgstr "Équipes restreintes" +#: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:63 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:148 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:228 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:146 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:271 msgid "Template" @@ -3244,11 +3312,11 @@ msgstr "Le modèle a été mis à jour." msgid "Template moved" msgstr "Modèle déplacé" -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:223 msgid "Template saved" msgstr "Modèle enregistré" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:87 #: apps/web/src/app/(dashboard)/templates/templates-page-view.tsx:55 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:208 #: apps/web/src/components/(dashboard)/layout/desktop-nav.tsx:22 @@ -3295,7 +3363,7 @@ msgstr "Le document a été déplacé avec succès vers l'équipe sélectionnée msgid "The document is now completed, please follow any instructions provided within the parent application." msgstr "Le document est maintenant complet, veuillez suivre toutes les instructions fournies dans l'application parente." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:167 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:171 msgid "The document was created but could not be sent to recipients." msgstr "Le document a été créé mais n'a pas pu être envoyé aux destinataires." @@ -3303,7 +3371,7 @@ msgstr "Le document a été créé mais n'a pas pu être envoyé aux destinatair msgid "The document will be hidden from your account" msgstr "Le document sera caché de votre compte" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:316 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:322 msgid "The document will be immediately sent to recipients if this is checked." msgstr "Le document sera immédiatement envoyé aux destinataires si cela est coché." @@ -3454,6 +3522,14 @@ msgstr "Ce document a été signé par tous les destinataires" msgid "This document is currently a draft and has not been sent" msgstr "Ce document est actuellement un brouillon et n'a pas été envoyé" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:152 +msgid "This document was created by you or a team member using the template above." +msgstr "" + +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:164 +msgid "This document was created using a direct link." +msgstr "" + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:93 msgid "This email is already being used by another team." msgstr "Cet e-mail est déjà utilisé par une autre équipe." @@ -3521,6 +3597,7 @@ msgstr "Fuseau horaire" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:60 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 msgid "Title" msgstr "Titre" @@ -3724,6 +3801,10 @@ msgstr "Impossible de rejoindre cette équipe pour le moment." msgid "Unable to load document history" msgstr "Impossible de charger l'historique des documents" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:62 +msgid "Unable to load documents" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:111 msgid "Unable to load your public profile templates at this time" msgstr "Impossible de charger vos modèles de profil public pour le moment" @@ -3848,6 +3929,7 @@ msgid "Upload Avatar" msgstr "Télécharger un avatar" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:31 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:30 msgid "Uploaded by" msgstr "Téléversé par" @@ -3863,6 +3945,10 @@ msgstr "Le fichier téléchargé est trop petit" msgid "Uploaded file not an allowed file type" msgstr "Le fichier téléchargé n'est pas un type de fichier autorisé" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:170 +msgid "Use" +msgstr "" + #: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187 #: apps/web/src/components/forms/signin.tsx:505 msgid "Use Authenticator" @@ -3873,7 +3959,7 @@ msgstr "Utiliser l'authentificateur" msgid "Use Backup Code" msgstr "Utiliser le code de secours" -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:191 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:196 msgid "Use Template" msgstr "Utiliser le modèle" @@ -3946,6 +4032,10 @@ msgstr "Voir tous les documents envoyés à votre compte" msgid "View all recent security activity related to your account." msgstr "Voir toute l'activité de sécurité récente liée à votre compte." +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:157 +msgid "View all related documents" +msgstr "" + #: apps/web/src/app/(dashboard)/settings/security/activity/page.tsx:26 msgid "View all security activity related to your account." msgstr "Voir toute l'activité de sécurité liée à votre compte." @@ -3966,6 +4056,10 @@ msgstr "Voir les documents associés à cet e-mail" msgid "View invites" msgstr "Voir les invitations" +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-recent-activity.tsx:95 +msgid "View more" +msgstr "" + #: apps/web/src/app/(signing)/sign/[token]/complete/document-preview-button.tsx:34 msgid "View Original Document" msgstr "Voir le document original" @@ -4280,6 +4374,7 @@ msgid "Yearly" msgstr "Annuel" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:32 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:31 msgid "You" msgstr "Vous" @@ -4513,7 +4608,7 @@ msgstr "Vos modèles de signature directe" msgid "Your document failed to upload." msgstr "Votre document a échoué à se télécharger." -#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:151 +#: apps/web/src/app/(dashboard)/templates/use-template-dialog.tsx:155 msgid "Your document has been created from the template successfully." msgstr "Votre document a été créé à partir du modèle avec succès." @@ -4612,7 +4707,7 @@ msgstr "Votre modèle a été supprimé avec succès." msgid "Your template will be duplicated." msgstr "Votre modèle sera dupliqué." -#: apps/web/src/app/(dashboard)/templates/[id]/edit-template.tsx:224 +#: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:224 msgid "Your templates has been saved successfully." msgstr "Vos modèles ont été enregistrés avec succès." From cc249357b3210059e3e1be66cb98b9d05acb2813 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 5 Nov 2024 18:25:23 +0900 Subject: [PATCH 06/16] feat: add certificate translations (#1440) Add translations for audit logs and certificates. --- .../document-page-view-recent-activity.tsx | 10 +- .../[id]/logs/document-logs-data-table.tsx | 8 +- .../%5F%5Fhtmltopdf/audit-log/data-table.tsx | 21 ++- .../%5F%5Fhtmltopdf/audit-log/page.tsx | 49 ++++-- .../%5F%5Fhtmltopdf/certificate/page.tsx | 84 +++++++---- .../document/document-history-sheet.tsx | 6 +- packages/lib/constants/document.ts | 18 +++ packages/lib/constants/recipient-roles.ts | 10 -- packages/lib/utils/document-audit-logs.ts | 140 ++++++++---------- 9 files changed, 188 insertions(+), 158 deletions(-) create mode 100644 packages/lib/constants/document.ts diff --git a/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx b/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx index f1f6838aa..b44175d51 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recent-activity.tsx @@ -143,17 +143,11 @@ export const DocumentPageViewRecentActivity = ({ ))}

    - {/* Todo: Translations. */}

    - - {formatDocumentAuditLogAction(auditLog, userId).prefix} - {' '} - {formatDocumentAuditLogAction(auditLog, userId).description} + {formatDocumentAuditLogAction(_, auditLog, userId).description}