mirror of
https://github.com/documenso/documenso.git
synced 2025-11-10 04:22:32 +10:00
fix: add preferred team middleware
This commit is contained in:
@ -1,14 +1,47 @@
|
|||||||
import { redirect } from 'react-router';
|
import { redirect } from 'react-router';
|
||||||
|
|
||||||
|
import { extractCookieFromHeaders } from '@documenso/auth/server/lib/utils/cookies';
|
||||||
import { getOptionalSession } from '@documenso/auth/server/lib/utils/get-session';
|
import { getOptionalSession } from '@documenso/auth/server/lib/utils/get-session';
|
||||||
|
import { getTeams } from '@documenso/lib/server-only/team/get-teams';
|
||||||
|
import { formatDocumentsPath } from '@documenso/lib/utils/teams';
|
||||||
|
import { ZTeamUrlSchema } from '@documenso/trpc/server/team-router/schema';
|
||||||
|
|
||||||
import type { Route } from './+types/_index';
|
import type { Route } from './+types/_index';
|
||||||
|
|
||||||
export async function loader({ request }: Route.LoaderArgs) {
|
export async function loader({ request }: Route.LoaderArgs) {
|
||||||
const { isAuthenticated } = await getOptionalSession(request);
|
const session = await getOptionalSession(request);
|
||||||
|
|
||||||
if (isAuthenticated) {
|
if (session.isAuthenticated) {
|
||||||
throw redirect('/documents');
|
const teamUrlCookie = extractCookieFromHeaders('preferred-team-url', request.headers);
|
||||||
|
|
||||||
|
const referrer = request.headers.get('referer');
|
||||||
|
let isReferrerFromTeamUrl = false;
|
||||||
|
|
||||||
|
if (referrer) {
|
||||||
|
const referrerUrl = new URL(referrer);
|
||||||
|
|
||||||
|
if (referrerUrl.pathname.startsWith('/t/')) {
|
||||||
|
isReferrerFromTeamUrl = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const preferredTeamUrl =
|
||||||
|
teamUrlCookie && ZTeamUrlSchema.safeParse(teamUrlCookie).success ? teamUrlCookie : undefined;
|
||||||
|
|
||||||
|
// Early return for no preferred team.
|
||||||
|
if (!preferredTeamUrl || isReferrerFromTeamUrl) {
|
||||||
|
throw redirect('/documents');
|
||||||
|
}
|
||||||
|
|
||||||
|
const teams = await getTeams({ userId: session.user.id });
|
||||||
|
|
||||||
|
const currentTeam = teams.find((team) => team.url === preferredTeamUrl);
|
||||||
|
|
||||||
|
if (!currentTeam) {
|
||||||
|
throw redirect('/documents');
|
||||||
|
}
|
||||||
|
|
||||||
|
throw redirect(formatDocumentsPath(currentTeam.url));
|
||||||
}
|
}
|
||||||
|
|
||||||
throw redirect('/signin');
|
throw redirect('/signin');
|
||||||
|
|||||||
73
apps/remix/server/middleware.ts
Normal file
73
apps/remix/server/middleware.ts
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import type { Context, Next } from 'hono';
|
||||||
|
import { deleteCookie, setCookie } from 'hono/cookie';
|
||||||
|
|
||||||
|
import { AppDebugger } from '@documenso/lib/utils/debugger';
|
||||||
|
|
||||||
|
const debug = new AppDebugger('Middleware');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Middleware for initial page loads.
|
||||||
|
*
|
||||||
|
* You won't be able to easily handle sequential page loads because they will be
|
||||||
|
* called under `path.data`
|
||||||
|
*
|
||||||
|
* Example an initial page load would be `/documents` then if the user click templates
|
||||||
|
* the path here would be `/templates.data`.
|
||||||
|
*/
|
||||||
|
export const appMiddleware = async (c: Context, next: Next) => {
|
||||||
|
const { req } = c;
|
||||||
|
const { path } = req;
|
||||||
|
|
||||||
|
// Paths to ignore.
|
||||||
|
if (nonPagePathRegex.test(path)) {
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
|
// PRE-HANDLER CODE: Place code here to execute BEFORE the route handler runs.
|
||||||
|
|
||||||
|
await next();
|
||||||
|
|
||||||
|
// POST-HANDLER CODE: Place code here to execute AFTER the route handler completes.
|
||||||
|
// This is useful for:
|
||||||
|
// - Setting cookies
|
||||||
|
// - Any operations that should happen after all route handlers but before sending the response
|
||||||
|
|
||||||
|
debug.log('Path', path);
|
||||||
|
|
||||||
|
const pathname = path.replace('.data', '');
|
||||||
|
const referrer = c.req.header('referer');
|
||||||
|
const referrerUrl = referrer ? new URL(referrer) : null;
|
||||||
|
const referrerPathname = referrerUrl ? referrerUrl.pathname : null;
|
||||||
|
|
||||||
|
// Whether to reset the preferred team url cookie if the user accesses a non team page from a team page.
|
||||||
|
const resetPreferredTeamUrl =
|
||||||
|
referrerPathname &&
|
||||||
|
referrerPathname.startsWith('/t/') &&
|
||||||
|
(!pathname.startsWith('/t/') || pathname === '/');
|
||||||
|
|
||||||
|
// Set the preferred team url cookie if user accesses a team page.
|
||||||
|
if (pathname.startsWith('/t/')) {
|
||||||
|
debug.log('Setting preferred team url cookie');
|
||||||
|
|
||||||
|
setCookie(c, 'preferred-team-url', pathname.split('/')[2]);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear preferred team url cookie if user accesses a non team page from a team page.
|
||||||
|
if (resetPreferredTeamUrl || pathname === '/documents') {
|
||||||
|
debug.log('Deleting preferred team url cookie');
|
||||||
|
|
||||||
|
deleteCookie(c, 'preferred-team-url');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// This regex matches any path that:
|
||||||
|
// 1. Starts with /api/, /ingest/, /__manifest/, or /assets/
|
||||||
|
// 2. Starts with /apple- (like /apple-touch-icon.png)
|
||||||
|
// 3. Starts with /favicon (like /favicon.ico)
|
||||||
|
// The ^ ensures matching from the beginning of the string
|
||||||
|
// The | acts as OR operator between different patterns
|
||||||
|
const nonPagePathRegex = /^(\/api\/|\/ingest\/|\/__manifest|\/assets\/|\/apple-.*|\/favicon.*)/;
|
||||||
@ -9,6 +9,7 @@ import { openApiDocument } from '@documenso/trpc/server/open-api';
|
|||||||
|
|
||||||
import { filesRoute } from './api/files';
|
import { filesRoute } from './api/files';
|
||||||
import { type AppContext, appContext } from './context';
|
import { type AppContext, appContext } from './context';
|
||||||
|
import { appMiddleware } from './middleware';
|
||||||
import { openApiTrpcServerHandler } from './trpc/hono-trpc-open-api';
|
import { openApiTrpcServerHandler } from './trpc/hono-trpc-open-api';
|
||||||
import { reactRouterTrpcServer } from './trpc/hono-trpc-remix';
|
import { reactRouterTrpcServer } from './trpc/hono-trpc-remix';
|
||||||
|
|
||||||
@ -26,6 +27,11 @@ const app = new Hono<HonoEnv>();
|
|||||||
app.use(contextStorage());
|
app.use(contextStorage());
|
||||||
app.use(appContext);
|
app.use(appContext);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RR7 app middleware.
|
||||||
|
*/
|
||||||
|
app.use('*', appMiddleware);
|
||||||
|
|
||||||
// Auth server.
|
// Auth server.
|
||||||
app.route('/api/auth', auth);
|
app.route('/api/auth', auth);
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import { appLog } from '@documenso/lib/utils/debugger';
|
|||||||
import { env } from '@documenso/lib/utils/env';
|
import { env } from '@documenso/lib/utils/env';
|
||||||
|
|
||||||
import { AUTH_SESSION_LIFETIME } from '../../config';
|
import { AUTH_SESSION_LIFETIME } from '../../config';
|
||||||
|
import { extractCookieFromHeaders } from '../utils/cookies';
|
||||||
import { generateSessionToken } from './session';
|
import { generateSessionToken } from './session';
|
||||||
|
|
||||||
export const sessionCookieName = formatSecureCookieName('sessionId');
|
export const sessionCookieName = formatSecureCookieName('sessionId');
|
||||||
@ -38,15 +39,7 @@ export const sessionCookieOptions = {
|
|||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export const extractSessionCookieFromHeaders = (headers: Headers): string | null => {
|
export const extractSessionCookieFromHeaders = (headers: Headers): string | null => {
|
||||||
const cookieHeader = headers.get('cookie') || '';
|
return extractCookieFromHeaders(sessionCookieName, headers);
|
||||||
const cookiePairs = cookieHeader.split(';');
|
|
||||||
const sessionCookie = cookiePairs.find((pair) => pair.trim().startsWith(sessionCookieName));
|
|
||||||
|
|
||||||
if (!sessionCookie) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return sessionCookie.split('=')[1].trim();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
14
packages/auth/server/lib/utils/cookies.ts
Normal file
14
packages/auth/server/lib/utils/cookies.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Todo: Use library for cookies instead.
|
||||||
|
*/
|
||||||
|
export const extractCookieFromHeaders = (cookieName: string, headers: Headers): string | null => {
|
||||||
|
const cookieHeader = headers.get('cookie') || '';
|
||||||
|
const cookiePairs = cookieHeader.split(';');
|
||||||
|
const cookie = cookiePairs.find((pair) => pair.trim().startsWith(cookieName));
|
||||||
|
|
||||||
|
if (!cookie) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cookie.split('=')[1].trim();
|
||||||
|
};
|
||||||
@ -1017,7 +1017,7 @@ msgstr "Ein Fehler ist aufgetreten, während die Vorlage verschoben wurde."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:152
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:157
|
||||||
msgid "An error occurred while removing the field."
|
msgid "An error occurred while removing the field."
|
||||||
msgstr "Ein Fehler ist beim Entfernen des Feldes aufgetreten."
|
msgstr "Ein Fehler ist beim Entfernen des Feldes aufgetreten."
|
||||||
|
|
||||||
@ -1045,7 +1045,7 @@ msgstr "Beim Senden Ihrer Bestätigungs-E-Mail ist ein Fehler aufgetreten"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:122
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:127
|
||||||
msgid "An error occurred while signing as assistant."
|
msgid "An error occurred while signing as assistant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1058,7 +1058,7 @@ msgstr ""
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:128
|
||||||
msgid "An error occurred while signing the document."
|
msgid "An error occurred while signing the document."
|
||||||
msgstr "Ein Fehler ist aufgetreten, während das Dokument unterzeichnet wurde."
|
msgstr "Ein Fehler ist aufgetreten, während das Dokument unterzeichnet wurde."
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgstr ""
|
|||||||
msgid "An error occurred while updating the document settings."
|
msgid "An error occurred while updating the document settings."
|
||||||
msgstr "Ein Fehler ist aufgetreten, während die Dokumenteinstellungen aktualisiert wurden."
|
msgstr "Ein Fehler ist aufgetreten, während die Dokumenteinstellungen aktualisiert wurden."
|
||||||
|
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:210
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:215
|
||||||
msgid "An error occurred while updating the signature."
|
msgid "An error occurred while updating the signature."
|
||||||
msgstr "Ein Fehler ist aufgetreten, während die Unterschrift aktualisiert wurde."
|
msgstr "Ein Fehler ist aufgetreten, während die Unterschrift aktualisiert wurde."
|
||||||
|
|
||||||
@ -2717,9 +2717,9 @@ msgstr "Geben Sie hier Ihren Text ein"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:120
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:125
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:151
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:156
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:209
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:214
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
||||||
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
||||||
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
||||||
|
|||||||
@ -1012,7 +1012,7 @@ msgstr "An error occurred while moving the template."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:152
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:157
|
||||||
msgid "An error occurred while removing the field."
|
msgid "An error occurred while removing the field."
|
||||||
msgstr "An error occurred while removing the field."
|
msgstr "An error occurred while removing the field."
|
||||||
|
|
||||||
@ -1040,7 +1040,7 @@ msgstr "An error occurred while sending your confirmation email"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:122
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:127
|
||||||
msgid "An error occurred while signing as assistant."
|
msgid "An error occurred while signing as assistant."
|
||||||
msgstr "An error occurred while signing as assistant."
|
msgstr "An error occurred while signing as assistant."
|
||||||
|
|
||||||
@ -1053,7 +1053,7 @@ msgstr "An error occurred while signing as assistant."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:128
|
||||||
msgid "An error occurred while signing the document."
|
msgid "An error occurred while signing the document."
|
||||||
msgstr "An error occurred while signing the document."
|
msgstr "An error occurred while signing the document."
|
||||||
|
|
||||||
@ -1066,7 +1066,7 @@ msgstr "An error occurred while trying to create a checkout session."
|
|||||||
msgid "An error occurred while updating the document settings."
|
msgid "An error occurred while updating the document settings."
|
||||||
msgstr "An error occurred while updating the document settings."
|
msgstr "An error occurred while updating the document settings."
|
||||||
|
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:210
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:215
|
||||||
msgid "An error occurred while updating the signature."
|
msgid "An error occurred while updating the signature."
|
||||||
msgstr "An error occurred while updating the signature."
|
msgstr "An error occurred while updating the signature."
|
||||||
|
|
||||||
@ -2712,9 +2712,9 @@ msgstr "Enter your text here"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:120
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:125
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:151
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:156
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:209
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:214
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
||||||
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
||||||
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
||||||
|
|||||||
@ -1017,7 +1017,7 @@ msgstr "Ocurrió un error al mover la plantilla."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:152
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:157
|
||||||
msgid "An error occurred while removing the field."
|
msgid "An error occurred while removing the field."
|
||||||
msgstr "Ocurrió un error mientras se eliminaba el campo."
|
msgstr "Ocurrió un error mientras se eliminaba el campo."
|
||||||
|
|
||||||
@ -1045,7 +1045,7 @@ msgstr "Ocurrió un error al enviar tu correo electrónico de confirmación"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:122
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:127
|
||||||
msgid "An error occurred while signing as assistant."
|
msgid "An error occurred while signing as assistant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1058,7 +1058,7 @@ msgstr ""
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:128
|
||||||
msgid "An error occurred while signing the document."
|
msgid "An error occurred while signing the document."
|
||||||
msgstr "Ocurrió un error al firmar el documento."
|
msgstr "Ocurrió un error al firmar el documento."
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgstr ""
|
|||||||
msgid "An error occurred while updating the document settings."
|
msgid "An error occurred while updating the document settings."
|
||||||
msgstr "Ocurrió un error al actualizar la configuración del documento."
|
msgstr "Ocurrió un error al actualizar la configuración del documento."
|
||||||
|
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:210
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:215
|
||||||
msgid "An error occurred while updating the signature."
|
msgid "An error occurred while updating the signature."
|
||||||
msgstr "Ocurrió un error al actualizar la firma."
|
msgstr "Ocurrió un error al actualizar la firma."
|
||||||
|
|
||||||
@ -2717,9 +2717,9 @@ msgstr "Ingresa tu texto aquí"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:120
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:125
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:151
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:156
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:209
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:214
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
||||||
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
||||||
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
||||||
|
|||||||
@ -1017,7 +1017,7 @@ msgstr "Une erreur est survenue lors du déplacement du modèle."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:152
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:157
|
||||||
msgid "An error occurred while removing the field."
|
msgid "An error occurred while removing the field."
|
||||||
msgstr "Une erreur est survenue lors de la suppression du champ."
|
msgstr "Une erreur est survenue lors de la suppression du champ."
|
||||||
|
|
||||||
@ -1045,7 +1045,7 @@ msgstr "Une erreur est survenue lors de l'envoi de votre e-mail de confirmation"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:122
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:127
|
||||||
msgid "An error occurred while signing as assistant."
|
msgid "An error occurred while signing as assistant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1058,7 +1058,7 @@ msgstr ""
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:128
|
||||||
msgid "An error occurred while signing the document."
|
msgid "An error occurred while signing the document."
|
||||||
msgstr "Une erreur est survenue lors de la signature du document."
|
msgstr "Une erreur est survenue lors de la signature du document."
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgstr ""
|
|||||||
msgid "An error occurred while updating the document settings."
|
msgid "An error occurred while updating the document settings."
|
||||||
msgstr "Une erreur est survenue lors de la mise à jour des paramètres du document."
|
msgstr "Une erreur est survenue lors de la mise à jour des paramètres du document."
|
||||||
|
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:210
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:215
|
||||||
msgid "An error occurred while updating the signature."
|
msgid "An error occurred while updating the signature."
|
||||||
msgstr "Une erreur est survenue lors de la mise à jour de la signature."
|
msgstr "Une erreur est survenue lors de la mise à jour de la signature."
|
||||||
|
|
||||||
@ -2717,9 +2717,9 @@ msgstr "Entrez votre texte ici"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:120
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:125
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:151
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:156
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:209
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:214
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
||||||
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
||||||
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
||||||
|
|||||||
@ -1017,7 +1017,7 @@ msgstr "Si è verificato un errore durante lo spostamento del modello."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:152
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:157
|
||||||
msgid "An error occurred while removing the field."
|
msgid "An error occurred while removing the field."
|
||||||
msgstr "Si è verificato un errore durante la rimozione del campo."
|
msgstr "Si è verificato un errore durante la rimozione del campo."
|
||||||
|
|
||||||
@ -1045,7 +1045,7 @@ msgstr "Si è verificato un errore durante l'invio della tua email di conferma"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:122
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:127
|
||||||
msgid "An error occurred while signing as assistant."
|
msgid "An error occurred while signing as assistant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1058,7 +1058,7 @@ msgstr ""
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:128
|
||||||
msgid "An error occurred while signing the document."
|
msgid "An error occurred while signing the document."
|
||||||
msgstr "Si è verificato un errore durante la firma del documento."
|
msgstr "Si è verificato un errore durante la firma del documento."
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgstr ""
|
|||||||
msgid "An error occurred while updating the document settings."
|
msgid "An error occurred while updating the document settings."
|
||||||
msgstr "Si è verificato un errore durante l'aggiornamento delle impostazioni del documento."
|
msgstr "Si è verificato un errore durante l'aggiornamento delle impostazioni del documento."
|
||||||
|
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:210
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:215
|
||||||
msgid "An error occurred while updating the signature."
|
msgid "An error occurred while updating the signature."
|
||||||
msgstr "Si è verificato un errore durante l'aggiornamento della firma."
|
msgstr "Si è verificato un errore durante l'aggiornamento della firma."
|
||||||
|
|
||||||
@ -2717,9 +2717,9 @@ msgstr "Inserisci il tuo testo qui"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:120
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:125
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:151
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:156
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:209
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:214
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
||||||
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
||||||
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
||||||
|
|||||||
@ -1017,7 +1017,7 @@ msgstr "Wystąpił błąd podczas przenoszenia szablonu."
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:115
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:136
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:124
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:152
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:157
|
||||||
msgid "An error occurred while removing the field."
|
msgid "An error occurred while removing the field."
|
||||||
msgstr "Wystąpił błąd podczas usuwania pola."
|
msgstr "Wystąpił błąd podczas usuwania pola."
|
||||||
|
|
||||||
@ -1045,7 +1045,7 @@ msgstr "Wystąpił błąd podczas wysyłania e-maila potwierdzającego"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:88
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:103
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:97
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:122
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:127
|
||||||
msgid "An error occurred while signing as assistant."
|
msgid "An error occurred while signing as assistant."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1058,7 +1058,7 @@ msgstr ""
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
#: apps/remix/app/components/general/document-signing/document-signing-email-field.tsx:89
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:104
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:98
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:128
|
||||||
msgid "An error occurred while signing the document."
|
msgid "An error occurred while signing the document."
|
||||||
msgstr "Wystąpił błąd podczas podpisywania dokumentu."
|
msgstr "Wystąpił błąd podczas podpisywania dokumentu."
|
||||||
|
|
||||||
@ -1071,7 +1071,7 @@ msgstr ""
|
|||||||
msgid "An error occurred while updating the document settings."
|
msgid "An error occurred while updating the document settings."
|
||||||
msgstr "Wystąpił błąd podczas aktualizowania ustawień dokumentu."
|
msgstr "Wystąpił błąd podczas aktualizowania ustawień dokumentu."
|
||||||
|
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:210
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:215
|
||||||
msgid "An error occurred while updating the signature."
|
msgid "An error occurred while updating the signature."
|
||||||
msgstr "Wystąpił błąd podczas aktualizowania podpisu."
|
msgstr "Wystąpił błąd podczas aktualizowania podpisu."
|
||||||
|
|
||||||
@ -2717,9 +2717,9 @@ msgstr "Wprowadź swój tekst tutaj"
|
|||||||
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
#: apps/remix/app/components/general/document-signing/document-signing-dropdown-field.tsx:135
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:95
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
#: apps/remix/app/components/general/document-signing/document-signing-date-field.tsx:123
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:120
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:125
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:151
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:156
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:209
|
#: apps/remix/app/components/general/document-signing/document-signing-checkbox-field.tsx:214
|
||||||
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
#: apps/remix/app/components/general/document-signing/document-signing-auto-sign.tsx:148
|
||||||
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
#: apps/remix/app/components/general/document/document-upload.tsx:103
|
||||||
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
#: apps/remix/app/components/general/document/document-edit-form.tsx:204
|
||||||
|
|||||||
Reference in New Issue
Block a user