Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02491571d7 | ||
|
|
1eb284c87f | ||
|
|
c4140f85df | ||
|
|
9c4b0f526c | ||
|
|
37bcb35391 | ||
|
|
78a0197643 | ||
|
|
ff3326a53b | ||
|
|
5e92fb4fc6 | ||
|
|
1a8be234de | ||
|
|
d021f7e369 | ||
|
|
1b67ba6a75 | ||
|
|
5afc46ebd3 | ||
|
|
a06abb1d60 | ||
|
|
2a5b2746c9 |
@@ -1,12 +1,10 @@
|
||||
name: CI Zapier
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
pull_request:
|
||||
|
||||
merge_group:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
@@ -14,6 +12,9 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
||||
|
||||
env:
|
||||
SERVER_SETUP_CACHE_KEY: server-setup
|
||||
|
||||
jobs:
|
||||
changed-files-check:
|
||||
uses: ./.github/workflows/changed-files.yaml
|
||||
@@ -23,14 +24,81 @@ jobs:
|
||||
packages/twenty-server/**
|
||||
!packages/twenty-zapier/package.json
|
||||
!packages/twenty-zapier/CHANGELOG.md
|
||||
zapier-test:
|
||||
server-setup:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
timeout-minutes: 30
|
||||
runs-on: depot-ubuntu-24.04-8
|
||||
services:
|
||||
postgres:
|
||||
image: twentycrm/twenty-postgres-spilo
|
||||
env:
|
||||
PGUSER_SUPERUSER: postgres
|
||||
PGPASSWORD_SUPERUSER: postgres
|
||||
ALLOW_NOSSL: 'true'
|
||||
SPILO_PROVIDER: 'local'
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
steps:
|
||||
- name: Fetch custom Github Actions and base branch history
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
|
||||
- name: Build twenty-shared
|
||||
run: npx nx build twenty-shared
|
||||
|
||||
- name: Server / Write .env
|
||||
run: npx nx reset:env:e2e-testing-server twenty-server
|
||||
|
||||
- name: Server / Build
|
||||
run: npx nx build twenty-server
|
||||
|
||||
- name: Create and setup database
|
||||
run: |
|
||||
PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "default";'
|
||||
PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
|
||||
npx nx run twenty-server:database:reset
|
||||
|
||||
- name: Server / Start
|
||||
run: |
|
||||
npx nx start twenty-server &
|
||||
echo "Waiting for server to be ready..."
|
||||
timeout 60 bash -c 'until curl -s http://localhost:3000/health; do sleep 2; done'
|
||||
|
||||
- name: Start worker
|
||||
run: |
|
||||
npx nx run twenty-server:worker &
|
||||
echo "Worker started"
|
||||
|
||||
- name: Zapier / Build
|
||||
run: npx nx build twenty-zapier
|
||||
|
||||
- name: Zapier / Run Tests
|
||||
uses: ./.github/actions/nx-affected
|
||||
with:
|
||||
tag: scope:zapier
|
||||
tasks: test
|
||||
|
||||
zapier-test:
|
||||
needs: server-setup
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
timeout-minutes: 30
|
||||
runs-on: depot-ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
task: [lint, typecheck, test, validate]
|
||||
task: [lint, typecheck, validate]
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.11.0
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
name: 'Preview Environment Dispatch'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: write
|
||||
contents: write
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
|
||||
@@ -0,0 +1,381 @@
|
||||
# Emotion → Linaria Migration Plan: twenty-front
|
||||
|
||||
## Overview
|
||||
|
||||
Migrate all Emotion (`@emotion/styled`, `@emotion/react`) usages in
|
||||
`packages/twenty-front/src` to Linaria (`@linaria/react`, `@linaria/core`),
|
||||
following the same patterns already established in the `twenty-ui` package.
|
||||
|
||||
Linaria is a **zero-runtime** CSS-in-JS library. Styles are extracted at
|
||||
build time by [wyw-in-js](https://wyw-in-js.dev/) (the Vite plugin is
|
||||
`@wyw-in-js/vite`, already configured in `twenty-front/vite.config.ts`).
|
||||
This means every expression inside a `styled` or `css` template literal
|
||||
must be statically evaluable at build time — no runtime theme objects,
|
||||
no closures over component state, no side-effects.
|
||||
|
||||
**Total files to migrate: ~998**
|
||||
|
||||
| Category | Files | Description |
|
||||
|---|---|---|
|
||||
| styled-only | 694 | Import `@emotion/styled` but not `useTheme` |
|
||||
| styled + useTheme | 224 | Import both `@emotion/styled` and `useTheme` |
|
||||
| useTheme-only | 79 | Import `useTheme` but not `@emotion/styled` |
|
||||
| css / Global only | 1 | Import `css` or `Global` from `@emotion/react` only |
|
||||
|
||||
## Theme Architecture
|
||||
|
||||
Two build-time utilities produce the theme system:
|
||||
|
||||
- **`buildThemeReferencingRootCssVariables`** — walks the theme object and
|
||||
builds a nested mirror where every leaf is a `var(--t-xxx)` string
|
||||
(evaluated at build time by wyw-in-js)
|
||||
- **`prepareThemeForRootCssVariableInjection`** — walks the runtime theme
|
||||
and collects flat `[--css-variable-name, value]` pairs, injected onto
|
||||
`document.documentElement` by `ThemeCssVariableInjectorEffect`
|
||||
|
||||
`themeCssVariables` is the build-time object; every leaf resolves to a CSS
|
||||
`var()` reference. It is safe to use inside `styled` and `css` templates
|
||||
because wyw-in-js can evaluate it statically.
|
||||
|
||||
## Migration Patterns
|
||||
|
||||
### 1. `styled` import
|
||||
|
||||
```diff
|
||||
- import styled from '@emotion/styled';
|
||||
+ import { styled } from '@linaria/react';
|
||||
```
|
||||
|
||||
### 2. Theme access in styled components
|
||||
|
||||
Replace Emotion's `({ theme }) =>` prop-function pattern with static
|
||||
`themeCssVariables` references:
|
||||
|
||||
```diff
|
||||
+ import { themeCssVariables } from 'twenty-ui/theme';
|
||||
|
||||
const StyledTitle = styled.span`
|
||||
- color: ${({ theme }) => theme.font.color.primary};
|
||||
- font-size: ${({ theme }) => theme.font.size.lg};
|
||||
+ color: ${themeCssVariables.font.color.primary};
|
||||
+ font-size: ${themeCssVariables.font.size.lg};
|
||||
`;
|
||||
```
|
||||
|
||||
### 3. Spacing
|
||||
|
||||
`theme.spacing(N)` is a function; in Linaria it becomes an indexed lookup:
|
||||
|
||||
```diff
|
||||
- margin-top: ${({ theme }) => theme.spacing(3)};
|
||||
+ margin-top: ${themeCssVariables.spacing[3]};
|
||||
```
|
||||
|
||||
For multi-arg spacing like `theme.spacing(2, 4)` → `"8px 16px"`:
|
||||
|
||||
```diff
|
||||
- padding: ${({ theme }) => theme.spacing(2, 4)};
|
||||
+ padding: ${themeCssVariables.spacing[2]} ${themeCssVariables.spacing[4]};
|
||||
```
|
||||
|
||||
The spacing scale covers integers 0–32 plus `0.5` and `1.5`. Any other
|
||||
fractional values (`0.25`, `0.75`, `1.25`, `2.5`, `3.5`) must be replaced
|
||||
with literal pixel values (e.g. `theme.spacing(2.5)` → `10px`).
|
||||
|
||||
### 4. `useTheme` → `useContext(ThemeContext)`
|
||||
|
||||
For runtime theme access (icon sizes, animation durations, conditional logic
|
||||
outside of styled components):
|
||||
|
||||
```diff
|
||||
- import { useTheme } from '@emotion/react';
|
||||
+ import { useContext } from 'react';
|
||||
+ import { ThemeContext } from 'twenty-ui/theme';
|
||||
|
||||
const MyComponent = () => {
|
||||
- const theme = useTheme();
|
||||
+ const { theme } = useContext(ThemeContext);
|
||||
return <Icon size={theme.icon.size.sm} />;
|
||||
};
|
||||
```
|
||||
|
||||
### 5. `css` template literal
|
||||
|
||||
Linaria's `css` (from `@linaria/core`) returns a **class name string**, not
|
||||
a serialized style object like Emotion's `css`. This has two consequences:
|
||||
|
||||
**Standalone usage** — apply via `className`, not the `css` prop:
|
||||
|
||||
```diff
|
||||
- import { css } from '@emotion/react';
|
||||
+ import { css } from '@linaria/core';
|
||||
|
||||
const myClass = css`
|
||||
text-decoration: none;
|
||||
`;
|
||||
|
||||
- <Link css={myClass} />
|
||||
+ <Link className={myClass} />
|
||||
```
|
||||
|
||||
**Inside `styled` templates** — do NOT nest `css` tags. Linaria's `css`
|
||||
returns a class name, not raw CSS text, so interpolating it inside `styled`
|
||||
produces broken output. Use plain strings instead:
|
||||
|
||||
```diff
|
||||
// WRONG — css`` returns a class name, not CSS text
|
||||
${({ handle }) =>
|
||||
handle === 'left'
|
||||
- ? css`left: ${themeCssVariables.spacing[1]};`
|
||||
- : css`right: ${themeCssVariables.spacing[1]};`}
|
||||
+ ? `left: ${themeCssVariables.spacing[1]};`
|
||||
+ : `right: ${themeCssVariables.spacing[1]};`}
|
||||
```
|
||||
|
||||
### 6. Interpolation return types
|
||||
|
||||
wyw-in-js requires prop interpolation functions to return `string | number`.
|
||||
They must **never** return `false`, `undefined`, or `null`. Replace
|
||||
short-circuit `&&` with ternary expressions:
|
||||
|
||||
```diff
|
||||
// WRONG — returns false when condition is false
|
||||
- ${({ isActive }) => isActive && `background: ${themeCssVariables.color.blue};`}
|
||||
// CORRECT
|
||||
+ ${({ isActive }) => isActive ? `background: ${themeCssVariables.color.blue};` : ''}
|
||||
```
|
||||
|
||||
### 7. Block interpolations (multi-declaration returns)
|
||||
|
||||
Linaria wraps each interpolation result in a single CSS custom property
|
||||
(`var(--xxx)`). An interpolation that returns **multiple CSS declarations**
|
||||
produces invalid CSS. Split into one interpolation per property:
|
||||
|
||||
```diff
|
||||
// WRONG — single interpolation returning multiple declarations
|
||||
- ${({ divider, theme }) => {
|
||||
- const border = `1px solid ${theme.border.color.light}`;
|
||||
- return divider === 'left' ? `border-left: ${border}` : `border-right: ${border}`;
|
||||
- }}
|
||||
|
||||
// CORRECT — one interpolation per property
|
||||
+ border-left: ${({ divider }) =>
|
||||
+ divider === 'left' ? `1px solid ${themeCssVariables.border.color.light}` : 'none'};
|
||||
+ border-right: ${({ divider }) =>
|
||||
+ divider === 'right' ? `1px solid ${themeCssVariables.border.color.light}` : 'none'};
|
||||
```
|
||||
|
||||
### 8. CSS var + unit concatenation
|
||||
|
||||
CSS custom properties can't be concatenated with unit suffixes directly
|
||||
(`var(--x)px` is invalid). Use `calc()` to attach units:
|
||||
|
||||
```diff
|
||||
- transition: background ${themeCssVariables.animation.duration.instant}s ease;
|
||||
+ transition: background calc(${themeCssVariables.animation.duration.instant} * 1s) ease;
|
||||
```
|
||||
|
||||
### 9. `styled(Component)` requires `className`
|
||||
|
||||
Linaria's `styled(Component)` works by passing a generated `className` to
|
||||
the wrapped component. The component **must** accept and forward a
|
||||
`className` prop — otherwise the styles are silently lost. If the component
|
||||
doesn't support it, either add `className` support or use a wrapper div.
|
||||
|
||||
Linaria also does **not** support Emotion's `shouldForwardProp` option.
|
||||
Custom props on HTML elements are automatically filtered by Linaria's
|
||||
runtime (via `@emotion/is-prop-valid`). For custom components, all props are
|
||||
forwarded — ensure the wrapped component ignores unknown props gracefully.
|
||||
|
||||
### 10. `type Theme` → `type ThemeType`
|
||||
|
||||
```diff
|
||||
- import { type Theme } from '@emotion/react';
|
||||
+ import { type ThemeType } from 'twenty-ui/theme';
|
||||
```
|
||||
|
||||
### 11. Framer Motion integration
|
||||
|
||||
Linaria doesn't support `styled(motion.div)` — wrapping a motion element
|
||||
with `styled()` causes the component body to be stripped at build time by
|
||||
wyw-in-js. Define the styled component first, then wrap with
|
||||
`motion.create()`:
|
||||
|
||||
```tsx
|
||||
const StyledBarBase = styled.div`
|
||||
background-color: ${themeCssVariables.font.color.primary};
|
||||
height: 100%;
|
||||
`;
|
||||
|
||||
const StyledBar = motion.create(StyledBarBase);
|
||||
```
|
||||
|
||||
### 12. Dynamic styles via CSS variables
|
||||
|
||||
When a component needs to compute styles from multiple props with complex
|
||||
branching logic (e.g. combining `variant`, `accent`, `disabled`, `focus`),
|
||||
Linaria's prop interpolations become unwieldy. Use a `computeDynamicStyles`
|
||||
helper that returns a `CSSProperties` object injected via `style={}`,
|
||||
referenced from the static CSS with `var()`:
|
||||
|
||||
```tsx
|
||||
const StyledButton = styled.button`
|
||||
background: var(--btn-bg);
|
||||
border-color: var(--btn-border-color);
|
||||
&:hover { background: var(--btn-hover-bg); }
|
||||
`;
|
||||
|
||||
const dynamicStyles = useMemo(() => {
|
||||
const s = computeButtonDynamicStyles(variant, accent, ...);
|
||||
return {
|
||||
'--btn-bg': s.background,
|
||||
'--btn-hover-bg': s.hoverBackground,
|
||||
} as CSSProperties;
|
||||
}, [variant, accent, ...]);
|
||||
|
||||
return <StyledButton style={dynamicStyles} />;
|
||||
```
|
||||
|
||||
### 13. `Global` component
|
||||
|
||||
Replace Emotion's `<Global styles={...} />` with standard CSS or the
|
||||
`ThemeCssVariableInjectorEffect` pattern from twenty-ui.
|
||||
|
||||
### 14. `ThemeProvider`
|
||||
|
||||
The `BaseThemeProvider` already wraps children with both Emotion's
|
||||
`ThemeProvider` and Linaria's `ThemeContextProvider`. Once all Emotion usages
|
||||
are gone, the Emotion `ThemeProvider` wrapper can be removed.
|
||||
|
||||
---
|
||||
|
||||
## PR Breakdown
|
||||
|
||||
Files are grouped to keep each PR around ~100 files with consistent review
|
||||
surface. We start with the simplest, lowest-risk modules.
|
||||
|
||||
### PR 1 (~97 files) — Small standalone modules
|
||||
|
||||
Low-risk modules with mostly simple `styled`-only patterns.
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| spreadsheet-import | 28 |
|
||||
| billing | 10 |
|
||||
| views | 14 |
|
||||
| navigation-menu-item | 14 |
|
||||
| blocknote-editor | 7 |
|
||||
| advanced-text-editor | 7 |
|
||||
| favorites | 7 |
|
||||
| navigation | 4 |
|
||||
| information-banner | 3 |
|
||||
| sign-in-background-mock | 3 |
|
||||
|
||||
### PR 2 (~100 files) — Auth, tiny modules, loading, testing, pages (part 1)
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| auth | 19 |
|
||||
| action-menu | 3 |
|
||||
| object-metadata | 3 |
|
||||
| onboarding | 2 |
|
||||
| workspace | 2 |
|
||||
| file | 2 |
|
||||
| error-handler | 2 |
|
||||
| front-components | 1 |
|
||||
| geo-map | 1 |
|
||||
| hooks | 1 |
|
||||
| loading | 5 |
|
||||
| testing | 5 |
|
||||
| pages (first ~55 files) | ~55 |
|
||||
|
||||
### PR 3 (~97 files) — Pages (remaining) + activities + AI
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| pages (remaining ~16 files) | ~16 |
|
||||
| activities | 53 |
|
||||
| ai | 28 |
|
||||
|
||||
### PR 4 (~100 files) — Command-menu + workflow (part 1)
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| command-menu | 53 |
|
||||
| workflow (first ~47 files) | ~47 |
|
||||
|
||||
### PR 5 (~115 files) — Workflow (remaining) + page-layout
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| workflow (remaining ~32 files) | ~32 |
|
||||
| page-layout | 83 |
|
||||
|
||||
### PR 6 (~100 files) — UI module (part 1)
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| ui (first ~100 files) | ~100 |
|
||||
|
||||
### PR 7 (~85 files) — UI module (remaining) + object-record (start)
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| ui (remaining ~23 files) | ~23 |
|
||||
| object-record (first ~62 files) | ~62 |
|
||||
|
||||
### PR 8 (~100 files) — Object-record (continued)
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| object-record (next ~100 files) | ~100 |
|
||||
|
||||
### PR 9 (~100 files) — Settings (part 1)
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| settings (first ~100 files) | ~100 |
|
||||
|
||||
### PR 10 (~102 files) — Settings (part 2) + final cleanup
|
||||
|
||||
| Module | Files |
|
||||
|---|---|
|
||||
| settings (remaining ~102 files) | ~102 |
|
||||
| css/Global-only file | 1 |
|
||||
|
||||
### Post-migration PR — Remove Emotion
|
||||
|
||||
Once all PRs are merged:
|
||||
|
||||
- Remove `ThemeProvider` from `@emotion/react` in `BaseThemeProvider`
|
||||
- Remove `@emotion/styled` and `@emotion/react` dependencies
|
||||
- Remove `@styled/typescript-styled-plugin` from tsconfig
|
||||
- Clean up any remaining Emotion-related configuration
|
||||
|
||||
---
|
||||
|
||||
## Risk Assessment
|
||||
|
||||
| Risk | Mitigation |
|
||||
|---|---|
|
||||
| wyw-in-js evaluates at build time; dynamic expressions may fail | Use `themeCssVariables` for static theme values; pass dynamic values as component props or via `style={}` CSS variables |
|
||||
| `theme.spacing(N)` function → `themeCssVariables.spacing[N]` index | Pre-computed for integers 0–32 plus 0.5 and 1.5; other fractional values → literal pixel values |
|
||||
| `useTheme` used for runtime logic (not just styles) | Replace with `useContext(ThemeContext)`, destructure `{ theme }` |
|
||||
| Multi-arg `theme.spacing(a, b, c)` | Split into individual `themeCssVariables.spacing[N]` references |
|
||||
| `css` tag inside `styled` templates | Linaria `css` returns class name, not CSS text; use plain strings inside `styled` |
|
||||
| Interpolation returns `false` / `undefined` | wyw-in-js requires `string \| number`; use ternary `? : ''` instead of `&&` |
|
||||
| Block interpolations (multiple declarations) | Split into one interpolation per CSS property |
|
||||
| `var(--x)px` concatenation | Use `calc(var(--x) * 1px)` |
|
||||
| `styled(motion.div)` stripped by wyw-in-js | Use `motion.create(StyledBase)` pattern |
|
||||
| `styled(Component)` with no `className` prop | Add `className` support to wrapped component or use wrapper div |
|
||||
| Complex multi-prop style branching | Use `computeDynamicStyles` + `style={}` + `var()` references |
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist (per PR)
|
||||
|
||||
- [ ] `npx nx lint:diff-with-main twenty-front` passes
|
||||
- [ ] `npx nx typecheck twenty-front` passes
|
||||
- [ ] `npx nx test twenty-front` passes
|
||||
- [ ] Visual spot-check of affected components in the app
|
||||
- [ ] No remaining `@emotion/styled` or `@emotion/react` imports in migrated files
|
||||
@@ -15,6 +15,7 @@ const jestConfig = {
|
||||
},
|
||||
moduleNameMapper: {
|
||||
'^@/(.*)$': '<rootDir>/src/$1',
|
||||
'^package.json$': '<rootDir>/package.json',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'js'],
|
||||
extensionsToTreatAsEsm: ['.ts'],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "create-twenty-app",
|
||||
"version": "0.6.2",
|
||||
"version": "0.6.3",
|
||||
"description": "Command-line interface to create Twenty application",
|
||||
"main": "dist/cli.cjs",
|
||||
"bin": "dist/cli.cjs",
|
||||
|
||||
@@ -4,6 +4,7 @@ import { copyBaseApplicationProject } from '@/utils/app-template';
|
||||
import * as fs from 'fs-extra';
|
||||
import { tmpdir } from 'os';
|
||||
import { join } from 'path';
|
||||
import createTwentyAppPackageJson from 'package.json';
|
||||
|
||||
jest.mock('fs-extra', () => {
|
||||
const actual = jest.requireActual('fs-extra');
|
||||
@@ -88,7 +89,9 @@ describe('copyBaseApplicationProject', () => {
|
||||
const packageJson = await fs.readJson(packageJsonPath);
|
||||
expect(packageJson.name).toBe('my-test-app');
|
||||
expect(packageJson.version).toBe('0.1.0');
|
||||
expect(packageJson.dependencies['twenty-sdk']).toBe('latest');
|
||||
expect(packageJson.devDependencies['twenty-sdk']).toBe(
|
||||
createTwentyAppPackageJson.version,
|
||||
);
|
||||
expect(packageJson.scripts['twenty']).toBe('twenty');
|
||||
});
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import { v4 } from 'uuid';
|
||||
import { ASSETS_DIR } from 'twenty-shared/application';
|
||||
|
||||
import { type ExampleOptions } from '@/types/scaffolding-options';
|
||||
import createTwentyAppPackageJson from 'package.json';
|
||||
|
||||
const SRC_FOLDER = 'src';
|
||||
|
||||
@@ -146,8 +147,7 @@ generated
|
||||
# dev
|
||||
/dist/
|
||||
|
||||
.twenty/*
|
||||
!.twenty/output/
|
||||
.twenty
|
||||
|
||||
# production
|
||||
/build
|
||||
@@ -546,10 +546,9 @@ const createPackageJson = async ({
|
||||
lint: 'eslint',
|
||||
'lint:fix': 'eslint --fix',
|
||||
},
|
||||
dependencies: {
|
||||
'twenty-sdk': 'latest',
|
||||
},
|
||||
dependencies: {},
|
||||
devDependencies: {
|
||||
'twenty-sdk': createTwentyAppPackageJson.version,
|
||||
typescript: '^5.9.3',
|
||||
'@types/node': '^24.7.2',
|
||||
'@types/react': '^18.2.0',
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
"noEmit": true,
|
||||
"types": ["jest", "node"],
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
"@/*": ["./src/*"],
|
||||
"package.json": ["./package.json"]
|
||||
},
|
||||
"jsx": "react"
|
||||
},
|
||||
|
||||
@@ -1,2 +1,37 @@
|
||||
.yarn/install-state.gz
|
||||
.env
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.*
|
||||
.yarn
|
||||
|
||||
# codegen
|
||||
generated
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# dev
|
||||
/dist/
|
||||
|
||||
.twenty
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
|
||||
# debug
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# env files (can opt-in for committing if needed)
|
||||
.env*
|
||||
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
|
||||
@@ -2,25 +2,6 @@
|
||||
|
||||
Used to manage billing and telemetry of self-hosted instances
|
||||
|
||||
## Requirements
|
||||
- twenty-cli `npm install -g twenty-cli`
|
||||
- an `apiKey`. Go to `https://twenty.com/settings/api-webhooks` to generate one
|
||||
|
||||
|
||||
## Install to your Twenty workspace
|
||||
|
||||
```bash
|
||||
twenty auth login
|
||||
twenty app sync
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
This application requires the following environment variables to be set:
|
||||
|
||||
- `TWENTY_API_URL`: The Twenty instance API URL where selfHostingUser records will be created
|
||||
- `TWENTY_API_KEY`: API key for authentication (generate at `/settings/api-webhooks`)
|
||||
|
||||
## Features
|
||||
|
||||
### Telemetry Webhook
|
||||
|
||||
@@ -9,26 +9,13 @@
|
||||
},
|
||||
"packageManager": "yarn@4.9.2",
|
||||
"scripts": {
|
||||
"auth:login": "twenty auth login",
|
||||
"auth:logout": "twenty auth logout",
|
||||
"auth:status": "twenty auth status",
|
||||
"auth:switch": "twenty auth switch",
|
||||
"auth:list": "twenty auth list",
|
||||
"app:dev": "twenty app dev",
|
||||
"app:sync": "twenty app sync",
|
||||
"entity:add": "twenty entity add",
|
||||
"function:logs": "twenty function logs",
|
||||
"function:execute": "twenty function execute",
|
||||
"app:uninstall": "twenty app uninstall",
|
||||
"help": "twenty help",
|
||||
"twenty": "twenty",
|
||||
"lint": "eslint",
|
||||
"lint:fix": "eslint --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"twenty-sdk": "0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.7.2"
|
||||
"@types/node": "^24.7.2",
|
||||
"twenty-sdk": "0.6.2"
|
||||
},
|
||||
"$schema": "https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-cli/src/constants/schemas/appManifest.schema.json",
|
||||
"universalIdentifier": "a7070f46-3158-4b40-828f-8e6b1febc233"
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import { defineApp } from 'twenty-sdk';
|
||||
|
||||
export default defineApp({
|
||||
universalIdentifier: '94f7db30-59e5-4b09-a5fe-64cd3d4a65b0',
|
||||
displayName: 'Self Hosting',
|
||||
description: 'Used to manage billing and telemetry of self-hosted instances',
|
||||
applicationVariables: {
|
||||
TWENTY_API_KEY: {
|
||||
universalIdentifier: 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d',
|
||||
description: 'Twenty API key for creating selfHostingUser records',
|
||||
isSecret: true,
|
||||
},
|
||||
TWENTY_API_URL: {
|
||||
universalIdentifier: 'b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e',
|
||||
description: 'Twenty API URL (e.g., https://api.twenty.com)',
|
||||
isSecret: false,
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -1,18 +0,0 @@
|
||||
import { FieldType, defineObject } from 'twenty-sdk';
|
||||
|
||||
export default defineObject({
|
||||
universalIdentifier: '06f3fb53-599e-4c6b-9df6-8f731973afd7',
|
||||
nameSingular: 'selfHostingUser',
|
||||
namePlural: 'selfHostingUsers',
|
||||
labelSingular: 'Self Hosting User',
|
||||
labelPlural: 'Self Hosting Users',
|
||||
fields: [
|
||||
{
|
||||
type: FieldType.EMAILS,
|
||||
name: 'email',
|
||||
label: 'Email',
|
||||
description: 'The email of the self hosting user',
|
||||
universalIdentifier: 'a4b7892c-431a-4d44-973e-a5481652704f',
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -1,132 +0,0 @@
|
||||
import { defineFunction } from 'twenty-sdk';
|
||||
import { createClient } from '../../generated';
|
||||
|
||||
// TODO: import from twenty-sdk when 0.4.0 is deployed
|
||||
type ServerlessFunctionEvent<TBody = object> = {
|
||||
headers: Record<string, string | undefined>;
|
||||
queryStringParameters: Record<string, string | undefined>;
|
||||
pathParameters: Record<string, string | undefined>;
|
||||
body: TBody | null;
|
||||
isBase64Encoded: boolean;
|
||||
requestContext: {
|
||||
http: {
|
||||
method: string;
|
||||
path: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
type TelemetryEventPayload = {
|
||||
action: string;
|
||||
timestamp: string;
|
||||
version: string;
|
||||
payload: {
|
||||
userId: string | null;
|
||||
workspaceId: string | null;
|
||||
payload?: {
|
||||
events?: Array<{
|
||||
userId?: string;
|
||||
userEmail?: string;
|
||||
userFirstName?: string;
|
||||
userLastName?: string;
|
||||
locale?: string;
|
||||
serverUrl?: string;
|
||||
}>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
export const main = async (
|
||||
params: ServerlessFunctionEvent<TelemetryEventPayload>,
|
||||
): Promise<{ success: boolean; message: string; error?: string }> => {
|
||||
try {
|
||||
const { action, payload } = params.body || {};
|
||||
|
||||
if (action !== 'user_signup') {
|
||||
return {
|
||||
success: true,
|
||||
message: `Event type '${action}' ignored`,
|
||||
};
|
||||
}
|
||||
|
||||
const userEmail =
|
||||
payload?.payload?.events?.[0]?.userEmail ||
|
||||
payload?.payload?.events?.[0]?.userId;
|
||||
|
||||
if (!userEmail) {
|
||||
return {
|
||||
success: false,
|
||||
message: 'No email found in telemetry event',
|
||||
error: 'Missing userEmail in payload',
|
||||
};
|
||||
}
|
||||
|
||||
if (
|
||||
userEmail.toLowerCase().includes('example') ||
|
||||
userEmail.toLowerCase().includes('test')
|
||||
) {
|
||||
return {
|
||||
success: true,
|
||||
message: `Email '${userEmail}' ignored (contains test/example data)`,
|
||||
};
|
||||
}
|
||||
|
||||
const client = createClient({
|
||||
url: `${process.env.TWENTY_API_URL}/graphql`,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${process.env.TWENTY_API_KEY}`,
|
||||
},
|
||||
});
|
||||
|
||||
// Create or update selfHostingUser record
|
||||
const result = await client.mutation({
|
||||
createSelfHostingUser: {
|
||||
__args: {
|
||||
data: {
|
||||
name:
|
||||
payload?.payload?.events?.[0]?.userFirstName +
|
||||
' ' +
|
||||
payload?.payload?.events?.[0]?.userLastName,
|
||||
email: {
|
||||
primaryEmail: userEmail,
|
||||
additionalEmails: null,
|
||||
},
|
||||
},
|
||||
upsert: true,
|
||||
},
|
||||
id: true,
|
||||
email: {
|
||||
primaryEmail: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: `Self hosting user created/updated: ${result.createSelfHostingUser?.id}`,
|
||||
};
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: 'Failed to process telemetry event',
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export default defineFunction({
|
||||
universalIdentifier: '10104201-622b-4a5e-9f27-8f2af19b2a3c',
|
||||
name: 'telemetry-webhook',
|
||||
timeoutSeconds: 5,
|
||||
handler: main,
|
||||
triggers: [
|
||||
{
|
||||
universalIdentifier: '7c8e3f5a-9b4c-4d1e-8f2a-1b3c4d5e6f7a',
|
||||
type: 'route',
|
||||
path: '/webhook/telemetry',
|
||||
httpMethod: 'POST',
|
||||
isAuthRequired: false,
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,10 @@
|
||||
import { defineApplication } from 'twenty-sdk';
|
||||
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
|
||||
|
||||
export default defineApplication({
|
||||
universalIdentifier: '94f7db30-59e5-4b09-a5fe-64cd3d4a65b0',
|
||||
displayName: 'Self Hosting',
|
||||
description: 'Used to manage billing and telemetry of self-hosted instances',
|
||||
defaultRoleUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.roles.defaultRole.universalIdentifier,
|
||||
});
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
export const UNIVERSAL_IDENTIFIERS = {
|
||||
objects: {
|
||||
selfHostingUser: {
|
||||
universalIdentifier: '06f3fb53-599e-4c6b-9df6-8f731973afd7',
|
||||
fields: {
|
||||
name: { universalIdentifier: '682cccbf-9f37-4290-a94c-902c771f61e4' },
|
||||
email: { universalIdentifier: 'a4b7892c-431a-4d44-973e-a5481652704f' },
|
||||
personId: {
|
||||
universalIdentifier: 'b453a43c-1512-48ca-8604-db750ad3ffb8',
|
||||
},
|
||||
domain: {
|
||||
universalIdentifier: '1dfa7d4e-c8f5-4639-b58e-3392a8789f76',
|
||||
},
|
||||
userWorkspaceId: {
|
||||
universalIdentifier: '297a7d6b-e407-4b2d-8c03-8964bc1b7805',
|
||||
},
|
||||
userId: {
|
||||
universalIdentifier: '5c7ba3ce-1473-4e3d-8e7c-31816fcb87d8',
|
||||
},
|
||||
locale: {
|
||||
universalIdentifier: '7b39df37-a22e-4f38-ae77-91cf3ee7c076',
|
||||
},
|
||||
serverUrl: {
|
||||
universalIdentifier: 'f2516b77-2912-4cbb-8838-46ac5a5465d9',
|
||||
},
|
||||
serverId: {
|
||||
universalIdentifier: 'e68a2b15-786d-4e9d-a74d-6d6d577ae721',
|
||||
},
|
||||
numberOfEmailsWithSameDomain: {
|
||||
universalIdentifier: '0bf05db0-6771-4400-91ca-1579ec11e76e',
|
||||
},
|
||||
isEnriched: {
|
||||
universalIdentifier: 'fefe9fd6-23ae-4046-b60b-64d17e9ff7ed',
|
||||
},
|
||||
triedToBeEnriched: {
|
||||
universalIdentifier: 'd32c8cc3-8855-453d-bb7d-9c9c0b3f2128',
|
||||
},
|
||||
isPersonalEmail: {
|
||||
universalIdentifier: 'f4568391-9474-4ed8-8cbb-e36d86e0f5f9',
|
||||
},
|
||||
isTwenty: {
|
||||
universalIdentifier: 'b1acef1f-7c10-47a9-899e-aaca45b36e04',
|
||||
},
|
||||
personCity: {
|
||||
universalIdentifier: 'ca733484-e595-4257-9ca9-9a7802fb8bcb',
|
||||
},
|
||||
personCountry: {
|
||||
universalIdentifier: '18c06357-1b50-4d5b-82cf-1f71f286fbe4',
|
||||
},
|
||||
personJobFunction: {
|
||||
universalIdentifier: '26e7e2c7-ea83-41e0-8c07-1fc2549a3fb4',
|
||||
},
|
||||
personJobTitle: {
|
||||
universalIdentifier: '177908e9-1ca6-4762-9518-0df966d3e9fc',
|
||||
},
|
||||
personLinkedIn: {
|
||||
universalIdentifier: '3515683f-7f9f-4b6d-9b16-614824d277b7',
|
||||
},
|
||||
personSeniority: {
|
||||
universalIdentifier: '8b63855a-5915-4d6a-a6ed-ef7d8f8e5dd1',
|
||||
},
|
||||
companyAlexaRank: {
|
||||
universalIdentifier: '7c61335b-cd4b-4eae-8b02-0db746913e36',
|
||||
},
|
||||
companyAnnualRevenue: {
|
||||
universalIdentifier: 'a2367973-aa12-42c2-9577-fe868f61b83b',
|
||||
},
|
||||
companyAnnualRevenuePrinted: {
|
||||
universalIdentifier: 'bc02b6af-8f48-4fde-920d-1fd3e2a8557b',
|
||||
},
|
||||
companyDescription: {
|
||||
universalIdentifier: 'a9bb622e-56b6-42ba-8b03-17a47d707409',
|
||||
},
|
||||
companyEmployees: {
|
||||
universalIdentifier: '8e1dbc58-d444-470f-b8fe-9eed8da4b59e',
|
||||
},
|
||||
companyFoundedYear: {
|
||||
universalIdentifier: '3cf95527-5064-43ab-bf5e-421eb45fac5f',
|
||||
},
|
||||
companyFundingLatestStage: {
|
||||
universalIdentifier: 'a7dcd92a-6811-490b-a8dd-fad1c19091a1',
|
||||
},
|
||||
companyFundingTotalAmount: {
|
||||
universalIdentifier: '6fca8a11-b49a-4081-a7c9-9646f43ad7aa',
|
||||
},
|
||||
companyFundingTotalAmountPrinted: {
|
||||
universalIdentifier: '0078f0f0-2262-4c74-aaf8-4061c6c8a1f3',
|
||||
},
|
||||
companyIndustries: {
|
||||
universalIdentifier: '6b971b9c-6ef5-4497-989e-f9a7c72720cf',
|
||||
},
|
||||
companyIndustry: {
|
||||
universalIdentifier: 'ab84e651-d35b-4e02-8d69-1740af3e22f7',
|
||||
},
|
||||
companyLinkedIn: {
|
||||
universalIdentifier: '4c44b956-f880-434f-b4cd-854b82076e56',
|
||||
},
|
||||
companyName: {
|
||||
universalIdentifier: '1a25412b-f9ce-4406-ac53-f20d1ab8c5ea',
|
||||
},
|
||||
companyTags: {
|
||||
universalIdentifier: 'ceb64d0b-1203-4c6d-af00-39b668f5f891',
|
||||
},
|
||||
companyTech: {
|
||||
universalIdentifier: '11dd57c3-06bb-4722-bb65-96d0a899ca91',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
roles: {
|
||||
defaultRole: {
|
||||
universalIdentifier: '66972e19-9fdb-4336-87ce-442a17fd179c',
|
||||
},
|
||||
},
|
||||
views: {
|
||||
selfHostingUserView: {
|
||||
universalIdentifier: 'e903f0ee-52cb-4537-aca8-8940e30b023d',
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,29 @@
|
||||
import {
|
||||
defineField,
|
||||
FieldType,
|
||||
RelationType,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk';
|
||||
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
|
||||
|
||||
export const SELF_HOSTING_USER_ID_UNIVERSAL_IDENTIFIER =
|
||||
'9507f244-fdea-47d5-a734-725d4dae43da';
|
||||
|
||||
export default defineField({
|
||||
universalIdentifier: SELF_HOSTING_USER_ID_UNIVERSAL_IDENTIFIER,
|
||||
name: 'selfHostingUsers',
|
||||
label: 'Self hosting users',
|
||||
description: 'Self hosting user related to the person',
|
||||
type: FieldType.RELATION,
|
||||
relationTargetFieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personId
|
||||
.universalIdentifier,
|
||||
relationTargetObjectMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.universalIdentifier,
|
||||
objectUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
isNullable: true,
|
||||
universalSettings: {
|
||||
relationType: RelationType.ONE_TO_MANY,
|
||||
},
|
||||
});
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
import {
|
||||
defineLogicFunction,
|
||||
type DatabaseEventPayload,
|
||||
type ObjectRecordCreateEvent,
|
||||
type ObjectRecordUpdateEvent,
|
||||
} from 'twenty-sdk';
|
||||
import { SELF_HOSTING_USER_NAME_SINGULAR } from 'src/objects/selfHostingUser.object';
|
||||
import { type SelfHostingUser } from 'twenty-sdk/generated/core';
|
||||
import { CoreApiClient } from 'twenty-sdk/generated';
|
||||
|
||||
const handler = async (
|
||||
params: DatabaseEventPayload<
|
||||
| ObjectRecordCreateEvent<SelfHostingUser>
|
||||
| ObjectRecordUpdateEvent<SelfHostingUser>
|
||||
>,
|
||||
) => {
|
||||
const [object, action] = params.name.split('.');
|
||||
|
||||
if (object !== SELF_HOSTING_USER_NAME_SINGULAR) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!['created', 'updated'].includes(action)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const email = params.properties.after.email?.primaryEmail;
|
||||
|
||||
if (!email) {
|
||||
return;
|
||||
}
|
||||
|
||||
const client = new CoreApiClient();
|
||||
|
||||
const { people } = await client.query({
|
||||
people: {
|
||||
edges: { node: { id: true } },
|
||||
__args: {
|
||||
filter: {
|
||||
emails: {
|
||||
primaryEmail: { eq: email },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
let personId = people?.edges[0]?.node?.id;
|
||||
|
||||
if (!personId) {
|
||||
const { createPerson } = await client.mutation({
|
||||
createPerson: {
|
||||
__args: {
|
||||
data: {
|
||||
name: {
|
||||
firstName: params.properties.after.name?.firstName,
|
||||
lastName: params.properties.after.name?.lastName,
|
||||
},
|
||||
emails: {
|
||||
primaryEmail: email,
|
||||
},
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
personId = createPerson?.id;
|
||||
}
|
||||
|
||||
await client.mutation({
|
||||
updateSelfHostingUser: {
|
||||
__args: {
|
||||
id: params.properties.after.id,
|
||||
data: {
|
||||
personId,
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
export default defineLogicFunction({
|
||||
universalIdentifier: '87f0293a-997a-4c7b-85e2-e77462ccf0c5',
|
||||
name: 'match-telemetry-event-with-people',
|
||||
description:
|
||||
'Matches self hosting users with existing people based on email address',
|
||||
timeoutSeconds: 10,
|
||||
handler,
|
||||
databaseEventTriggerSettings: {
|
||||
eventName: `${SELF_HOSTING_USER_NAME_SINGULAR}.*`,
|
||||
},
|
||||
});
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
import { defineLogicFunction, type RoutePayload } from 'twenty-sdk';
|
||||
import { CoreApiClient } from 'twenty-sdk/generated';
|
||||
import { type TelemetryEvent } from 'src/logic-functions/types/telemetry-event.type';
|
||||
|
||||
export const main = async (
|
||||
params: RoutePayload<TelemetryEvent>,
|
||||
): Promise<{
|
||||
success: boolean;
|
||||
message: string;
|
||||
error?: string;
|
||||
}> => {
|
||||
try {
|
||||
const {
|
||||
action,
|
||||
workspaceId,
|
||||
userWorkspaceId,
|
||||
userId,
|
||||
userEmail,
|
||||
userFirstName,
|
||||
userLastName,
|
||||
locale,
|
||||
serverUrl,
|
||||
serverId,
|
||||
} = params.body || {};
|
||||
|
||||
if (action !== 'user_signup') {
|
||||
return {
|
||||
success: true,
|
||||
message: `Event type '${action}' ignored`,
|
||||
};
|
||||
}
|
||||
|
||||
if (!userEmail) {
|
||||
return {
|
||||
success: true,
|
||||
message: 'No email found in telemetry event',
|
||||
};
|
||||
}
|
||||
|
||||
if (
|
||||
userEmail.toLowerCase().includes('example') ||
|
||||
userEmail.toLowerCase().includes('test')
|
||||
) {
|
||||
return {
|
||||
success: true,
|
||||
message: `Email '${userEmail}' ignored (contains test/example data)`,
|
||||
};
|
||||
}
|
||||
|
||||
const client = new CoreApiClient();
|
||||
|
||||
let existingSelfHostingUserId: string | undefined = undefined;
|
||||
try {
|
||||
const { selfHostingUser: existingSelfHostingUser } = await client.query({
|
||||
selfHostingUser: {
|
||||
__args: {
|
||||
filter: {
|
||||
email: { primaryEmail: { eq: userEmail } },
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
existingSelfHostingUserId = existingSelfHostingUser?.id;
|
||||
} catch {
|
||||
//
|
||||
}
|
||||
|
||||
if (existingSelfHostingUserId) {
|
||||
await client.mutation({
|
||||
updateSelfHostingUser: {
|
||||
__args: {
|
||||
id: existingSelfHostingUserId,
|
||||
data: {
|
||||
name: { firstName: userFirstName, lastName: userLastName },
|
||||
email: { primaryEmail: userEmail, additionalEmails: null },
|
||||
userWorkspaceId,
|
||||
userId,
|
||||
locale,
|
||||
serverUrl,
|
||||
serverId,
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: `Self hosting user ${existingSelfHostingUserId} updated`,
|
||||
};
|
||||
}
|
||||
|
||||
const { createSelfHostingUser } = await client.mutation({
|
||||
createSelfHostingUser: {
|
||||
__args: {
|
||||
data: {
|
||||
name: { firstName: userFirstName, lastName: userLastName },
|
||||
email: { primaryEmail: userEmail, additionalEmails: null },
|
||||
workspaceId,
|
||||
userWorkspaceId,
|
||||
userId,
|
||||
locale,
|
||||
serverUrl,
|
||||
serverId,
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: `Self hosting user ${createSelfHostingUser?.id} created`,
|
||||
};
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: 'Failed to process telemetry event',
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export default defineLogicFunction({
|
||||
universalIdentifier: '10104201-622b-4a5e-9f27-8f2af19b2a3c',
|
||||
name: 'telemetry-webhook',
|
||||
timeoutSeconds: 10,
|
||||
handler: main,
|
||||
httpRouteTriggerSettings: {
|
||||
path: '/webhook/telemetry',
|
||||
httpMethod: 'POST',
|
||||
isAuthRequired: false,
|
||||
},
|
||||
});
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
export type TelemetryEvent = {
|
||||
action: string;
|
||||
workspaceId?: string;
|
||||
userWorkspaceId?: string;
|
||||
userId: string;
|
||||
userEmail?: string;
|
||||
userFirstName?: string;
|
||||
userLastName?: string;
|
||||
locale?: string;
|
||||
serverUrl: string;
|
||||
serverId: string;
|
||||
};
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import { defineNavigationMenuItem } from 'twenty-sdk';
|
||||
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
|
||||
|
||||
export default defineNavigationMenuItem({
|
||||
universalIdentifier: 'fe3aaca4-9eda-4565-b215-5d268fbf8164',
|
||||
name: 'Self host user',
|
||||
icon: 'IconList',
|
||||
position: 1,
|
||||
viewUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.views.selfHostingUserView.universalIdentifier,
|
||||
});
|
||||
@@ -0,0 +1,354 @@
|
||||
import {
|
||||
defineObject,
|
||||
FieldType,
|
||||
RelationType,
|
||||
OnDeleteAction,
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS,
|
||||
} from 'twenty-sdk';
|
||||
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
|
||||
|
||||
import { SELF_HOSTING_USER_ID_UNIVERSAL_IDENTIFIER } from 'src/fields/self-hosting-user-id';
|
||||
|
||||
export const SELF_HOSTING_USER_NAME_SINGULAR = 'selfHostingUser';
|
||||
|
||||
export default defineObject({
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.universalIdentifier,
|
||||
nameSingular: SELF_HOSTING_USER_NAME_SINGULAR,
|
||||
namePlural: 'selfHostingUsers',
|
||||
labelSingular: 'Self Hosting User',
|
||||
labelPlural: 'Self Hosting Users',
|
||||
fields: [
|
||||
{
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personId
|
||||
.universalIdentifier,
|
||||
name: 'person',
|
||||
label: 'Person',
|
||||
description: 'Person matching with the self hosting user',
|
||||
type: FieldType.RELATION,
|
||||
relationTargetFieldMetadataUniversalIdentifier:
|
||||
SELF_HOSTING_USER_ID_UNIVERSAL_IDENTIFIER,
|
||||
relationTargetObjectMetadataUniversalIdentifier:
|
||||
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier,
|
||||
isNullable: true,
|
||||
universalSettings: {
|
||||
relationType: RelationType.MANY_TO_ONE,
|
||||
onDelete: OnDeleteAction.SET_NULL,
|
||||
joinColumnName: 'personId',
|
||||
},
|
||||
},
|
||||
{
|
||||
type: FieldType.FULL_NAME,
|
||||
name: 'name',
|
||||
label: 'Name',
|
||||
description: 'Name of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.EMAILS,
|
||||
name: 'email',
|
||||
label: 'Email',
|
||||
description: 'The email of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.email
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.LINKS,
|
||||
name: 'domain',
|
||||
label: 'Domain',
|
||||
description:
|
||||
'Domain extracted from the email address (e.g. domain.com / https://domain.com/)',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.domain
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.UUID,
|
||||
name: 'userWorkspaceId',
|
||||
label: 'User workspace Id',
|
||||
description: 'User workspace id of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.userWorkspaceId
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.UUID,
|
||||
name: 'userId',
|
||||
label: 'User Id',
|
||||
description: 'User id of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.userId
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'locale',
|
||||
label: 'Locale',
|
||||
description: 'Locale of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.locale
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'serverUrl',
|
||||
label: 'Server url',
|
||||
description: 'Server url of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.serverUrl
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'serverId',
|
||||
label: 'Server id',
|
||||
description: 'Server id of the self hosting user',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.serverId
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.NUMBER,
|
||||
name: 'numberOfEmailsWithSameDomain',
|
||||
label: 'Number of Emails with Same Domain',
|
||||
description:
|
||||
'Aggregated count of self hosting users sharing the same business domain',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.numberOfEmailsWithSameDomain.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.BOOLEAN,
|
||||
name: 'isEnriched',
|
||||
label: 'Is Enriched',
|
||||
description: 'Whether the record has been enriched',
|
||||
defaultValue: false,
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.isEnriched
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.BOOLEAN,
|
||||
name: 'triedToBeEnriched',
|
||||
label: 'Tried to Be Enriched',
|
||||
description: 'Whether an enrichment attempt has been made',
|
||||
defaultValue: false,
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.triedToBeEnriched
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.BOOLEAN,
|
||||
name: 'isPersonalEmail',
|
||||
label: 'Is Personal Email',
|
||||
description: 'Whether the email is a personal email address',
|
||||
defaultValue: true,
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.isPersonalEmail
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.BOOLEAN,
|
||||
name: 'isTwenty',
|
||||
label: 'Is Twenty',
|
||||
description: 'Whether the user is from Twenty',
|
||||
defaultValue: false,
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.isTwenty
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'personCity',
|
||||
label: 'Person City',
|
||||
description: 'City of the person',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personCity
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'personCountry',
|
||||
label: 'Person Country',
|
||||
description: 'Country of the person',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personCountry
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'personJobFunction',
|
||||
label: 'Person Job Function',
|
||||
description: 'Job function of the person',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personJobFunction
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'personJobTitle',
|
||||
label: 'Person Job Title',
|
||||
description: 'Job title of the person',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personJobTitle
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.LINKS,
|
||||
name: 'personLinkedIn',
|
||||
label: 'Person LinkedIn',
|
||||
description: 'LinkedIn profile of the person',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personLinkedIn
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'personSeniority',
|
||||
label: 'Person Seniority',
|
||||
description: 'Seniority level of the person',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personSeniority
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.NUMBER,
|
||||
name: 'companyAlexaRank',
|
||||
label: 'Company Alexa Rank',
|
||||
description: 'Alexa rank of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyAlexaRank
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.CURRENCY,
|
||||
name: 'companyAnnualRevenue',
|
||||
label: 'Company Annual Revenue',
|
||||
description: 'Annual revenue of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyAnnualRevenue.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyAnnualRevenuePrinted',
|
||||
label: 'Company Annual Revenue Printed',
|
||||
description: 'Formatted annual revenue of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyAnnualRevenuePrinted.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyDescription',
|
||||
label: 'Company Description',
|
||||
description: 'Description of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyDescription
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.NUMBER,
|
||||
name: 'companyEmployees',
|
||||
label: 'Company Employees',
|
||||
description: 'Number of employees at the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyEmployees
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyFoundedYear',
|
||||
label: 'Company Founded Year',
|
||||
description: 'Year the company was founded',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyFoundedYear
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyFundingLatestStage',
|
||||
label: 'Company Funding Latest Stage',
|
||||
description: 'Latest funding stage of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyFundingLatestStage.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.NUMBER,
|
||||
name: 'companyFundingTotalAmount',
|
||||
label: 'Company Funding Total Amount',
|
||||
description: 'Total funding amount of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyFundingTotalAmount.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyFundingTotalAmountPrinted',
|
||||
label: 'Company Funding Total Amount Printed',
|
||||
description: 'Formatted total funding amount of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyFundingTotalAmountPrinted.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyIndustries',
|
||||
label: 'Company Industries',
|
||||
description: 'Industries the company operates in',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyIndustries
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyIndustry',
|
||||
label: 'Company Industry',
|
||||
description: 'Primary industry of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyIndustry
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.LINKS,
|
||||
name: 'companyLinkedIn',
|
||||
label: 'Company LinkedIn',
|
||||
description: 'LinkedIn page of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyLinkedIn
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.TEXT,
|
||||
name: 'companyName',
|
||||
label: 'Company Name',
|
||||
description: 'Name of the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyName
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.ARRAY,
|
||||
name: 'companyTags',
|
||||
label: 'Company Tags',
|
||||
description: 'Tags associated with the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyTags
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
type: FieldType.ARRAY,
|
||||
name: 'companyTech',
|
||||
label: 'Company Tech',
|
||||
description: 'Technologies used by the company',
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyTech
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,13 @@
|
||||
import { defineRole } from 'twenty-sdk';
|
||||
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
|
||||
|
||||
export default defineRole({
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.roles.defaultRole.universalIdentifier,
|
||||
label: 'default role',
|
||||
description: 'Add a description for your role',
|
||||
canReadAllObjectRecords: true,
|
||||
canUpdateAllObjectRecords: true,
|
||||
canSoftDeleteAllObjectRecords: true,
|
||||
canDestroyAllObjectRecords: false,
|
||||
});
|
||||
@@ -0,0 +1,308 @@
|
||||
import { defineView } from 'twenty-sdk';
|
||||
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
|
||||
|
||||
export default defineView({
|
||||
universalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.views.selfHostingUserView.universalIdentifier,
|
||||
name: 'Self hosting users',
|
||||
objectUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.universalIdentifier,
|
||||
icon: 'IconList',
|
||||
position: 0,
|
||||
fields: [
|
||||
{
|
||||
universalIdentifier: '243a2401-cd13-440c-8dcd-649e26df36bc',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.name
|
||||
.universalIdentifier,
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'dfa75ef8-d40d-416f-9f1c-3e86edfa9fce',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.email
|
||||
.universalIdentifier,
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '15cc9215-eb48-4487-a92e-a25d8e99702f',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.domain
|
||||
.universalIdentifier,
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '0f9e4f63-3664-443a-9f06-8a6cc04c1d90',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personId
|
||||
.universalIdentifier,
|
||||
position: 2.1,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'dcf88ae8-e71d-452f-b51e-d88cbc6dd273',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.userWorkspaceId
|
||||
.universalIdentifier,
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'aad70516-936b-41d1-b6c6-961a22299761',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.userId
|
||||
.universalIdentifier,
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '8c210eb0-bdda-476e-9f98-42f909872f2a',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.locale
|
||||
.universalIdentifier,
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '367abe85-11c4-440f-80a2-663edd6b4231',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.serverUrl
|
||||
.universalIdentifier,
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '32c199d6-ebf3-434b-81b4-e2b59a0518b7',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.serverId
|
||||
.universalIdentifier,
|
||||
position: 6.1,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '924ee786-ab93-44be-9d21-941ff9ffe1ac',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.numberOfEmailsWithSameDomain.universalIdentifier,
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '2feadf3d-e251-4356-add8-7fa70dea5401',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.isEnriched
|
||||
.universalIdentifier,
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'de252ae6-c723-4bf7-96cf-d93f5a539f36',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.triedToBeEnriched
|
||||
.universalIdentifier,
|
||||
position: 9,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'b121e8e6-b3eb-4f6c-b67e-c7c6d19e1bc5',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.isPersonalEmail
|
||||
.universalIdentifier,
|
||||
position: 10,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '0ada0bcc-8d6b-4df6-bcc1-78ba14cb04e6',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.isTwenty
|
||||
.universalIdentifier,
|
||||
position: 11,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'ec7c8d51-ea63-41bd-9eb1-995835b94218',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personCity
|
||||
.universalIdentifier,
|
||||
position: 12,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '7522dd84-0d23-48e7-85dd-f0a8d9e275f8',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personCountry
|
||||
.universalIdentifier,
|
||||
position: 13,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '54191cb9-4d5c-466e-affb-d9ba4adeff87',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personJobFunction
|
||||
.universalIdentifier,
|
||||
position: 14,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'ace75fc7-fb20-4e53-a9a2-6a7529befaf0',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personJobTitle
|
||||
.universalIdentifier,
|
||||
position: 15,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'a0b42d61-4553-42eb-aca4-327b9bf9f30e',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personLinkedIn
|
||||
.universalIdentifier,
|
||||
position: 16,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '74bc7dd2-fe53-4ff4-8778-2768f3439571',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.personSeniority
|
||||
.universalIdentifier,
|
||||
position: 17,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '61b34f41-8d56-472d-ab1e-414703c6ca12',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyAlexaRank
|
||||
.universalIdentifier,
|
||||
position: 18,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '5bb7d36b-6a73-4832-b41e-f67130a4708f',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyAnnualRevenue.universalIdentifier,
|
||||
position: 19,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'ae6f23ce-006c-41dd-82a1-e9fe7b65bce3',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyAnnualRevenuePrinted.universalIdentifier,
|
||||
position: 20,
|
||||
isVisible: true,
|
||||
size: 250,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'dd2a4728-a743-43bb-b096-9e7bd5125e56',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyDescription
|
||||
.universalIdentifier,
|
||||
position: 21,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'ecca02c9-db2e-41e2-b571-b5db75054b56',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyEmployees
|
||||
.universalIdentifier,
|
||||
position: 22,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '2e76775b-f8b8-4184-8cd3-72d2b93edaa2',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyFoundedYear
|
||||
.universalIdentifier,
|
||||
position: 23,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
},
|
||||
{
|
||||
universalIdentifier: 'a7eb002c-6f0c-48ba-a9eb-247c498ad9bd',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyFundingLatestStage.universalIdentifier,
|
||||
position: 24,
|
||||
isVisible: true,
|
||||
size: 240,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '61be97f6-20da-4b2b-861d-32345e0f9953',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyFundingTotalAmount.universalIdentifier,
|
||||
position: 25,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '55720810-3120-4e76-bcf2-2da9517edbbc',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields
|
||||
.companyFundingTotalAmountPrinted.universalIdentifier,
|
||||
position: 26,
|
||||
isVisible: true,
|
||||
size: 280,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '01e31752-cbc1-499a-8ecf-504dd402d7e2',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyIndustries
|
||||
.universalIdentifier,
|
||||
position: 27,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '2e1c8b8b-469b-483e-8348-1fe3d1764e17',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyIndustry
|
||||
.universalIdentifier,
|
||||
position: 28,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '976cc8ae-6cf8-4c30-8da4-5bf61e799893',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyLinkedIn
|
||||
.universalIdentifier,
|
||||
position: 29,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '5f0776b3-2849-4b9b-82f0-baa38c6d889d',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyName
|
||||
.universalIdentifier,
|
||||
position: 30,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '86f0397a-2924-4e5c-a610-3c9ad7bb4923',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyTags
|
||||
.universalIdentifier,
|
||||
position: 31,
|
||||
isVisible: true,
|
||||
},
|
||||
{
|
||||
universalIdentifier: '562084f4-1242-4e60-868b-1d9b268a35b0',
|
||||
fieldMetadataUniversalIdentifier:
|
||||
UNIVERSAL_IDENTIFIERS.objects.selfHostingUser.fields.companyTech
|
||||
.universalIdentifier,
|
||||
position: 32,
|
||||
isVisible: true,
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -5,13 +5,14 @@
|
||||
"declaration": true,
|
||||
"outDir": "./dist",
|
||||
"rootDir": ".",
|
||||
"jsx": "react-jsx",
|
||||
"moduleResolution": "node",
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"importHelpers": true,
|
||||
"allowUnreachableCode": false,
|
||||
"strictNullChecks": true,
|
||||
"strict": true,
|
||||
"alwaysStrict": true,
|
||||
"noImplicitAny": true,
|
||||
"strictBindCallApply": false,
|
||||
@@ -26,10 +27,5 @@
|
||||
"~/*": ["./*"]
|
||||
}
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"**/*.test.ts",
|
||||
"**/*.spec.ts"
|
||||
]
|
||||
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2485,6 +2485,8 @@ export type MutationAuthorizeAppArgs = {
|
||||
clientId: Scalars['String'];
|
||||
codeChallenge?: InputMaybe<Scalars['String']>;
|
||||
redirectUrl: Scalars['String'];
|
||||
scope?: InputMaybe<Scalars['String']>;
|
||||
state?: InputMaybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
|
||||
@@ -3804,6 +3806,15 @@ export type PostgresCredentials = {
|
||||
workspaceId: Scalars['UUID'];
|
||||
};
|
||||
|
||||
export type PublicApplicationRegistration = {
|
||||
__typename?: 'PublicApplicationRegistration';
|
||||
id: Scalars['UUID'];
|
||||
logoUrl?: Maybe<Scalars['String']>;
|
||||
name: Scalars['String'];
|
||||
oAuthScopes: Array<Scalars['String']>;
|
||||
websiteUrl?: Maybe<Scalars['String']>;
|
||||
};
|
||||
|
||||
export type PublicDomain = {
|
||||
__typename?: 'PublicDomain';
|
||||
createdAt: Scalars['DateTime'];
|
||||
@@ -3854,7 +3865,7 @@ export type Query = {
|
||||
eventLogs: EventLogQueryResult;
|
||||
field: Field;
|
||||
fields: FieldConnection;
|
||||
findApplicationRegistrationByClientId?: Maybe<ApplicationRegistration>;
|
||||
findApplicationRegistrationByClientId?: Maybe<PublicApplicationRegistration>;
|
||||
findApplicationRegistrationByUniversalIdentifier?: Maybe<ApplicationRegistration>;
|
||||
findApplicationRegistrationStats: ApplicationRegistrationStats;
|
||||
findApplicationRegistrationVariables: Array<ApplicationRegistrationVariable>;
|
||||
@@ -6461,7 +6472,7 @@ export type FindApplicationRegistrationByClientIdQueryVariables = Exact<{
|
||||
}>;
|
||||
|
||||
|
||||
export type FindApplicationRegistrationByClientIdQuery = { __typename?: 'Query', findApplicationRegistrationByClientId?: { __typename?: 'ApplicationRegistration', id: string, name: string, oAuthScopes: Array<string>, websiteUrl?: string | null, logoUrl?: string | null } | null };
|
||||
export type FindApplicationRegistrationByClientIdQuery = { __typename?: 'Query', findApplicationRegistrationByClientId?: { __typename?: 'PublicApplicationRegistration', id: string, name: string, oAuthScopes: Array<string>, websiteUrl?: string | null, logoUrl?: string | null } | null };
|
||||
|
||||
export type FindApplicationRegistrationStatsQueryVariables = Exact<{
|
||||
id: Scalars['String'];
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Magtiging App"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Magtiging toep en blaaier-uitbreidings soos 1Password, Authy, Microsoft Authenticator, ens. genereer eenmalige wagwoorde wat as 'n tweede faktor gebruik word om jou identiteit te verifieer wanneer daar tydens aanmelding daarom gevra word."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Gemagtigde URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Gemagtigde URL na knipbord gekopieer"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "verwyder"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Groepeer"
|
||||
msgid "Group by"
|
||||
msgstr "Groepeer volgens"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Verwyder veranderlike"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Sommige"
|
||||
msgid "Some folders"
|
||||
msgstr "Sommige vouers"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "تطبيق المصادق"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "تقوم تطبيقات المصادقة وملحقات المتصفح مثل 1Password وAuthy وMicrosoft Authenticator وغيرها بإنشاء كلمات مرور لمرة واحدة يتم استخدامها كعامل ثانٍ للتحقق من هويتك عند المطالبة أثناء تسجيل الدخول."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "معرف URI المرخص"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "تم نسخ رابط URL المرخص إلى الحافظة"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "حذف"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "مجموعة"
|
||||
msgid "Group by"
|
||||
msgstr "المجموعة حسب"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "إزالة المتغير"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "بعض"
|
||||
msgid "Some folders"
|
||||
msgstr "بعض المجلدات"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Aplicació d'autenticació"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Les aplicacions d'autenticació i extensions del navegador com 1Password, Authy, Microsoft Authenticator, etc. generen contrasenyes d'un sol ús que s'utilitzen com a segon factor per verificar la teva identitat quan se't sol·licita durant l'inici de sessió."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI autoritzat"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL autoritzat copiat al porta-retalls"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "elimina"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Agrupament"
|
||||
msgid "Group by"
|
||||
msgstr "Agrupa per"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Elimina la variable"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Alguns"
|
||||
msgid "Some folders"
|
||||
msgstr "Algunes carpetes"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Autentizační aplikace"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Autentizační aplikace a prohlížečové rozšíření, jako je 1Password, Authy, Microsoft Authenticator atd., generují jednorázová hesla, která se používají jako druhý faktor k ověření vaší identity během přihlášení."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Autorizované URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Autorizovaná URL zkopírována do schránky"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "smazat"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Skupina"
|
||||
msgid "Group by"
|
||||
msgstr "Skupina podle"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Odstranit proměnnou"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Některé"
|
||||
msgid "Some folders"
|
||||
msgstr "Některé složky"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Authenticator App"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Autentifikator apps og browserudvidelser som 1Password, Authy, Microsoft Authenticator mv. genererer engangskoder, der bruges som en anden faktor til at bekræfte din identitet, når du bliver bedt om under sign-in."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Autoriseret URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Autoriseret URL kopieret til udklipsholder"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "slet"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Gruppe"
|
||||
msgid "Group by"
|
||||
msgstr "Gruppér efter"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Fjern variabel"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Nogle"
|
||||
msgid "Some folders"
|
||||
msgstr "Nogle mapper"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13573,6 +13595,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Authentifikator-App"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Authentifikator-Apps und Browser-Erweiterungen wie 1Password, Authy, Microsoft Authenticator usw. generieren Einmalpasswörter, die als zweiter Faktor verwendet werden, um Ihre Identität bei der Anmeldung zu verifizieren."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Autorisierte URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Autorisierte URL in die Zwischenablage kopiert"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "löschen"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Gruppe"
|
||||
msgid "Group by"
|
||||
msgstr "Gruppieren nach"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Variable entfernen"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Einige"
|
||||
msgid "Some folders"
|
||||
msgstr "Einige Ordner"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Εφαρμογή Ταυτοποίησης"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Οι εφαρμογές ταυτοποίησης και οι επεκτάσεις προγράμματος περιήγησης όπως οι 1Password, Authy, Microsoft Authenticator, κ.λπ., δημιουργούν κωδικούς μιας χρήσης που χρησιμοποιούνται ως δεύτερος παράγοντας για να επαληθεύσουν την ταυτότητά σας όταν σας ζητηθεί στη διασύνδεση."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Εξουσιοδοτημένο URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Το εξουσιοδοτημένο URL αντιγράφηκε στο πρόχειρο"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "διαγραφή"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Ομάδα"
|
||||
msgid "Group by"
|
||||
msgstr "Ομαδοποίηση ανά"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Αφαίρεση μεταβλητής"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12238,6 +12255,11 @@ msgstr "Μερικά"
|
||||
msgid "Some folders"
|
||||
msgstr "Ορισμένοι φάκελοι"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13575,6 +13597,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2083,6 +2083,11 @@ msgstr "Authenticator App"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr "Authorization failed. Please try again."
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2098,6 +2103,11 @@ msgstr "Authorized URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Authorized URL copied to clipboard"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr "Authorizing..."
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4160,6 +4170,7 @@ msgstr "delete"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6647,6 +6658,11 @@ msgstr "Group"
|
||||
msgid "Group by"
|
||||
msgstr "Group by"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr "Group name"
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10848,6 +10864,7 @@ msgid "Remove variable"
|
||||
msgstr "Remove variable"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12231,6 +12248,11 @@ msgstr "Some"
|
||||
msgid "Some folders"
|
||||
msgstr "Some folders"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Something went wrong"
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13568,6 +13590,11 @@ msgstr "ul"
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr "Unable to delete member right now"
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr "Unable to load application details. Please try again later."
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Aplicación de Autenticación"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Las aplicaciones de autenticación y las extensiones de navegador como 1Password, Authy, Microsoft Authenticator, etc., generan contraseñas de un solo uso que se utilizan como un segundo factor para verificar tu identidad cuando se te solicita durante el inicio de sesión."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI autorizado"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL autorizada copiada al portapapeles"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "eliminar"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Grupo"
|
||||
msgid "Group by"
|
||||
msgstr "Agrupar por"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Eliminar variable"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Alguno"
|
||||
msgid "Some folders"
|
||||
msgstr "Algunas carpetas"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13573,6 +13595,11 @@ msgstr "ul"
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Todennussovellus"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Todennussovellukset ja selainlaajennukset kuten 1Password, Authy, Microsoft Authenticator, jne. luovat kertakäyttöisiä salasanoja, joita käytetään vaadittaessa toisen tekijän vahvistamiseen kirjautumisen yhteydessä."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Valtuutettu URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Valtuutettu URL kopioitu leikepöydälle"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "poista"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Ryhmä"
|
||||
msgid "Group by"
|
||||
msgstr "Ryhmittäin"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Poista muuttuja"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Jotkut"
|
||||
msgid "Some folders"
|
||||
msgstr "Jotkin kansiot"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Application d'authentification"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Les applications d'authentification et les extensions de navigateur telles que 1Password, Authy, Microsoft Authenticator, etc. génèrent des mots de passe à usage unique qui sont utilisés comme deuxième facteur pour vérifier votre identité lorsque vous y êtes invité lors de la connexion."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI autorisé"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL autorisée copiée dans le presse-papiers"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "supprimer"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Groupe"
|
||||
msgid "Group by"
|
||||
msgstr "Grouper par"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Supprimer la variable"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Certains"
|
||||
msgid "Some folders"
|
||||
msgstr "Certains dossiers"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13573,6 +13595,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -2088,6 +2088,11 @@ msgstr "אפליקציית מאמת"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "אפליקציות מאמת ותוספי דפדפן כמו 1Password, Authy, Microsoft Authenticator, וכו' מייצרים סיסמאות חד-פעמיות המשמשות כגורם שני לאימות זהותכם בעת התחברות."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "כתובת URI מורשית"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "כתובת URL המורשית הועתקה ללוח הגזירים"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "מחק"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "קבוצה"
|
||||
msgid "Group by"
|
||||
msgstr "קיבוץ לפי"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "הסר משתנה"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "חלק"
|
||||
msgid "Some folders"
|
||||
msgstr "כמה תיקיות"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Hitelesítő alkalmazás"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Hitelesítő alkalmazások és böngésző-kiegészítők, mint például a 1Password, Authy, Microsoft Authenticator, stb., egyszeri jelszavakat generálnak, amelyeket második tényezőként használnak fel az azonosításod megerősítésére belépéskor."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Engedélyezett URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Engedélyezett URL vágólapra másolva"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "törlés"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Csoport"
|
||||
msgid "Group by"
|
||||
msgstr "Csoportosítás"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Változó eltávolítása"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Néhány"
|
||||
msgid "Some folders"
|
||||
msgstr "Néhány mappa"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "App Authenticator"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Le app di autenticazione e le estensioni del browser come 1Password, Authy, Microsoft Authenticator, ecc. generano password monouso utilizzate come secondo fattore per verificare la tua identità quando richiesto durante l'accesso."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI autorizzato"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL autorizzato copiato negli appunti"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "elimina"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Gruppo"
|
||||
msgid "Group by"
|
||||
msgstr "Raggruppa per"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Rimuovi variabile"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Alcuni"
|
||||
msgid "Some folders"
|
||||
msgstr "Alcune cartelle"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13573,6 +13595,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "認証アプリ"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "1Password、Authy、Microsoft Authenticator などの認証アプリやブラウザー拡張機能は、サインイン時にユーザーの身元確認として使用されるワンタイム パスワードを生成します。"
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "認可されたURI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "認可されたURLがクリップボードにコピーされました"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "削除"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "グループ"
|
||||
msgid "Group by"
|
||||
msgstr "グループ化"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "変数を削除"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "一部"
|
||||
msgid "Some folders"
|
||||
msgstr "いくつかのフォルダー"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "인증 앱"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "1Password, Authy, Microsoft Authenticator 등의 인증 앱과 브라우저 확장 프로그램은 로그인 중 신원 확인 시 두 번째 인증 요소로 사용되는 일회용 비밀번호를 생성합니다."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "승인된 URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "승인된 URL이 클립보드에 복사되었습니다"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "삭제"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "그룹"
|
||||
msgid "Group by"
|
||||
msgstr "그룹별"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "변수 제거"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "일부"
|
||||
msgid "Some folders"
|
||||
msgstr "일부 폴더"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Authenticator App"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Authenticator-apps en browserextensies zoals 1Password, Authy, Microsoft Authenticator, enz. genereren eenmalige wachtwoorden die als tweede factor worden gebruikt om uw identiteit te verifiëren wanneer daarom wordt gevraagd tijdens het inloggen."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Geautoriseerde URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Geautoriseerde URL gekopieerd naar klembord"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "verwijderen"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Groep"
|
||||
msgid "Group by"
|
||||
msgstr "Groeperen op"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Variabele verwijderen"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Enkele"
|
||||
msgid "Some folders"
|
||||
msgstr "Sommige mappen"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13573,6 +13595,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Autentiseringsapp"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Autentiseringsapper og nettleserutvidelser som 1Password, Authy, Microsoft Authenticator, osv. genererer engangspassord som brukes som en andre faktor for å bekrefte din identitet når du blir bedt om det under pålogging."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Autoriserte URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Autoriserte URL kopiert til utklippstavlen"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "slett"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Gruppe"
|
||||
msgid "Group by"
|
||||
msgstr "Grupper etter"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Fjern variabel"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Noen"
|
||||
msgid "Some folders"
|
||||
msgstr "Noen mapper"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Aplikacja uwierzytelniająca"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Aplikacje uwierzytelniające i rozszerzenia przeglądarki, takie jak 1Password, Authy, Microsoft Authenticator, itp., generują jednorazowe hasła używane jako drugi czynnik do weryfikacji tożsamości podczas logowania."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Autoryzowany URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Autoryzowany URL skopiowany do schowka"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "usuń"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Grupa"
|
||||
msgid "Group by"
|
||||
msgstr "Grupuj według"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Usuń zmienną"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Niektóre"
|
||||
msgid "Some folders"
|
||||
msgstr "Niektóre foldery"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2083,6 +2083,11 @@ msgstr ""
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2098,6 +2103,11 @@ msgstr ""
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4160,6 +4170,7 @@ msgstr ""
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6647,6 +6658,11 @@ msgstr ""
|
||||
msgid "Group by"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10848,6 +10864,7 @@ msgid "Remove variable"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12231,6 +12248,11 @@ msgstr ""
|
||||
msgid "Some folders"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13566,6 +13588,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "App Autenticador"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Aplicativos de autenticadores e extensões de navegador, como 1Password, Authy, Microsoft Authenticator, etc. geram senhas de uso único que são utilizadas como um segundo fator para verificar sua identidade quando solicitado durante o login."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI Autorizado"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL autorizado copiado para a área de transferência"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "excluir"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Agrupar"
|
||||
msgid "Group by"
|
||||
msgstr "Agrupar por"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Remover variável"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Alguns"
|
||||
msgid "Some folders"
|
||||
msgstr "Algumas pastas"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Aplicativo de Autenticação"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Os aplicativos de autenticação e extensões de navegador, como 1Password, Authy, Microsoft Authenticator, etc., geram senhas de uso único que são usadas como um segundo fator para verificar sua identidade quando solicitado durante o login."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI autorizada"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL autorizada copiada para a área de transferência"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "eliminar"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Grupo"
|
||||
msgid "Group by"
|
||||
msgstr "Agrupar por"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Remover variável"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Alguns"
|
||||
msgid "Some folders"
|
||||
msgstr "Algumas pastas"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Aplicație de autentificare"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Aplicațiile de autentificare și extensiile de browser precum 1Password, Authy, Microsoft Authenticator, etc. generează parole unice care sunt utilizate ca al doilea factor pentru a verifica identitatea dumneavoastră atunci când vi se solicită în timpul autentificării."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI autorizat"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL-ul autorizat copiat în clipboard"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "șterge"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Grup"
|
||||
msgid "Group by"
|
||||
msgstr "Grupare după"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Elimină variabila"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Câteva"
|
||||
msgid "Some folders"
|
||||
msgstr "Unele foldere"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
Binary file not shown.
@@ -2088,6 +2088,11 @@ msgstr "Апликација за аутентификацију"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Апликације за аутентификацију и проширења за претраживаче као што су 1Password, Authy, Microsoft Authenticator, итд. генеришу једнократне лозинке које се користе као други фактор за проверу вашег идентитета приликом пријаве."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Ауторизован URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Ауторизовани URL копиран у клипборд"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "обриши"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Група"
|
||||
msgid "Group by"
|
||||
msgstr "Групиши по"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Уклони променљиву"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Неки"
|
||||
msgid "Some folders"
|
||||
msgstr "Неке фасцикле"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Autentiseringsapp"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Autentiseringsappar och webbläsartillägg som 1Password, Authy, Microsoft Authenticator, etc. genererar engångslösenord som används som en andra faktor för att verifiera din identitet vid inloggning."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Auktoriserad URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Auktoriserad URL kopierad till urklipp"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "ta bort"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Gruppera"
|
||||
msgid "Group by"
|
||||
msgstr "Gruppera efter"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10855,6 +10871,7 @@ msgid "Remove variable"
|
||||
msgstr "Ta bort variabel"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12240,6 +12257,11 @@ msgstr "Vissa"
|
||||
msgid "Some folders"
|
||||
msgstr "Vissa mappar"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13585,6 +13607,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Doğrulama Uygulaması"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "1Password, Authy, Microsoft Authenticator gibi doğrulama uygulamaları ve tarayıcı eklentileri, oturum açma sırasında kimliğinizi doğrulamak için ikinci faktör olarak kullanılan tek seferlik şifreler üretir."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Yetkilendirilmiş URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Yetkilendirilmiş URL panoya kopyalandı"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "sil"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Grup"
|
||||
msgid "Group by"
|
||||
msgstr "Grupla"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Değişkeni kaldır"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Bazı"
|
||||
msgid "Some folders"
|
||||
msgstr "Bazı klasörler"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Додаток для аутентифікації"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Додатки для аутентифікації та розширення для браузерів, такі як 1Password, Authy, Microsoft Authenticator тощо, генерують одноразові паролі, які використовуються як другий фактор для перевірки вашої особи, коли це запитується під час входу."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "Авторизований URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "Авторизований URL скопійовано в буфер обміну"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "видалити"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Група"
|
||||
msgid "Group by"
|
||||
msgstr "Групувати за"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Вилучити змінну"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Деякі"
|
||||
msgid "Some folders"
|
||||
msgstr "Деякі папки"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13573,6 +13595,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "Ứng dụng Xác thực"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "Các ứng dụng xác thực và tiện ích mở rộng trình duyệt như 1Password, Authy, Microsoft Authenticator, v.v... tạo mã một lần dùng làm yếu tố thứ hai để xác minh danh tính của bạn khi được yêu cầu trong quá trình đăng nhập."
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "URI được ủy quyền"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "URL được ủy quyền đã được sao chép vào bảng tạm"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "xóa"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "Nhóm"
|
||||
msgid "Group by"
|
||||
msgstr "Nhóm theo"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "Xóa biến"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "Một số"
|
||||
msgid "Some folders"
|
||||
msgstr "Một số thư mục"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "身份验证器应用"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "身份验证器应用和浏览器扩展程序(例如1Password、Authy、Microsoft Authenticator等)生成的动态密码作为第二个验证因素在登录时使用,以验证您的身份。"
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "授权 URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "授权 URL 已复制到剪贴板"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "删除"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "分组"
|
||||
msgid "Group by"
|
||||
msgstr "分组依据"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "移除变量"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "一些"
|
||||
msgid "Some folders"
|
||||
msgstr "某些文件夹"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
@@ -2088,6 +2088,11 @@ msgstr "身份驗證器應用程式"
|
||||
msgid "Authenticator apps and browser extensions like 1Password, Authy, Microsoft Authenticator, etc. generate one-time passwords that are used as a second factor to verify your identity when prompted during sign-in."
|
||||
msgstr "像 1Password、Authy、Microsoft Authenticator 等身份驗證器應用程式和瀏覽器擴充功能會生成用於二次驗證您的身份的單次密碼,這些密碼會在登錄時要求您輸入。"
|
||||
|
||||
#. js-lingui-id: SIFUTh
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorization failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yIVrHZ
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorize"
|
||||
@@ -2103,6 +2108,11 @@ msgstr "授權 URI"
|
||||
msgid "Authorized URL copied to clipboard"
|
||||
msgstr "授權 URL 已複製到剪貼板"
|
||||
|
||||
#. js-lingui-id: 8RmQki
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 2zJkmL
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelDetails.tsx
|
||||
msgid "Auto-creation"
|
||||
@@ -4165,6 +4175,7 @@ msgstr "刪除"
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminDeleteJobsConfirmationModal.tsx
|
||||
#: src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/object-record/record-field-list/record-detail-section/relation/components/RecordDetailRelationRecordsListItem.tsx
|
||||
#: src/modules/object-record/record-field/ui/meta-types/input/components/MultiItemFieldMenuItem.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
@@ -6652,6 +6663,11 @@ msgstr "群組"
|
||||
msgid "Group by"
|
||||
msgstr "分組依據"
|
||||
|
||||
#. js-lingui-id: WcF1uL
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupRenameInput.tsx
|
||||
msgid "Group name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6JlTu+
|
||||
#: src/modules/object-record/record-group/components/RecordGroupReorderConfirmationModal.tsx
|
||||
msgid "Group sorting"
|
||||
@@ -10853,6 +10869,7 @@ msgid "Remove variable"
|
||||
msgstr "移除變數"
|
||||
|
||||
#. js-lingui-id: 2wxgft
|
||||
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/components/NavigationMenuItemFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/favorites/components/FavoriteFolderNavigationDrawerItemDropdown.tsx
|
||||
#: src/modules/activities/files/components/AttachmentDropdown.tsx
|
||||
@@ -12236,6 +12253,11 @@ msgstr "一些"
|
||||
msgid "Some folders"
|
||||
msgstr "某些資料夾"
|
||||
|
||||
#. js-lingui-id: nwtY4N
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yHwG3y
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx
|
||||
#: src/modules/settings/components/SettingsCard.tsx
|
||||
@@ -13571,6 +13593,11 @@ msgstr ""
|
||||
msgid "Unable to delete member right now"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: HSLWzn
|
||||
#: src/pages/auth/Authorize.tsx
|
||||
msgid "Unable to load application details. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: l+ALBd
|
||||
#: src/modules/client-config/components/ClientConfigProvider.tsx
|
||||
msgid "Unable to Reach Back-end"
|
||||
|
||||
+9
-4
@@ -1,4 +1,4 @@
|
||||
import { css, useTheme } from '@emotion/react';
|
||||
import { css } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { useCallback, useState } from 'react';
|
||||
@@ -25,7 +25,13 @@ import { useIsRecordReadOnly } from '@/object-record/read-only/hooks/useIsRecord
|
||||
import { isRecordFieldReadOnly } from '@/object-record/read-only/utils/isRecordFieldReadOnly';
|
||||
import { getRecordFieldInputInstanceId } from '@/object-record/utils/getRecordFieldInputId';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { Chip, ChipAccent, ChipSize, ChipVariant } from 'twenty-ui/components';
|
||||
import {
|
||||
AvatarOrIcon,
|
||||
Chip,
|
||||
ChipAccent,
|
||||
ChipSize,
|
||||
ChipVariant,
|
||||
} from 'twenty-ui/components';
|
||||
import { IconCalendarEvent } from 'twenty-ui/display';
|
||||
import { beautifyPastDateRelativeToNow } from '~/utils/date-utils';
|
||||
|
||||
@@ -88,7 +94,6 @@ export const CalendarEventDetails = ({
|
||||
calendarEvent,
|
||||
}: CalendarEventDetailsProps) => {
|
||||
const { t } = useLingui();
|
||||
const theme = useTheme();
|
||||
const { objectMetadataItem } = useObjectMetadataItem({
|
||||
objectNameSingular: CoreObjectNameSingular.CalendarEvent,
|
||||
});
|
||||
@@ -202,7 +207,7 @@ export const CalendarEventDetails = ({
|
||||
size={ChipSize.Large}
|
||||
variant={ChipVariant.Highlighted}
|
||||
clickable={false}
|
||||
leftComponent={<IconCalendarEvent size={theme.icon.size.md} />}
|
||||
leftComponent={<AvatarOrIcon Icon={IconCalendarEvent} />}
|
||||
label={t`Event`}
|
||||
/>
|
||||
<StyledHeader>
|
||||
|
||||
+15
-12
@@ -2,8 +2,9 @@ import { ImageBubbleMenu } from '@/advanced-text-editor/components/ImageBubbleMe
|
||||
import { LinkBubbleMenu } from '@/advanced-text-editor/components/LinkBubbleMenu';
|
||||
import { TextBubbleMenu } from '@/advanced-text-editor/components/TextBubbleMenu';
|
||||
import { FORM_FIELD_PLACEHOLDER_STYLES } from '@/object-record/record-field/ui/form-types/constants/FormFieldPlaceholderStyles';
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import { EditorContent, type Editor } from '@tiptap/react';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledEditorContainer = styled.div<{
|
||||
readonly?: boolean;
|
||||
@@ -24,14 +25,16 @@ const StyledEditorContainer = styled.div<{
|
||||
}
|
||||
|
||||
.tiptap {
|
||||
padding: ${({ theme }) => `${theme.spacing(1)} ${theme.spacing(2)}`};
|
||||
padding: ${themeCssVariables.spacing[1]} ${themeCssVariables.spacing[2]};
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
color: ${({ theme, readonly }) =>
|
||||
readonly ? theme.font.color.light : theme.font.color.primary};
|
||||
font-family: ${({ theme }) => theme.font.family};
|
||||
font-size: ${({ theme }) => theme.font.size.sm};
|
||||
font-weight: ${({ theme }) => theme.font.weight.regular};
|
||||
color: ${({ readonly }) =>
|
||||
readonly
|
||||
? themeCssVariables.font.color.light
|
||||
: themeCssVariables.font.color.primary};
|
||||
font-family: ${themeCssVariables.font.family};
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
font-weight: ${themeCssVariables.font.weight.regular};
|
||||
border: none !important;
|
||||
|
||||
p.is-editor-empty:first-of-type::before {
|
||||
@@ -48,10 +51,10 @@ const StyledEditorContainer = styled.div<{
|
||||
}
|
||||
|
||||
.variable-tag {
|
||||
background-color: ${({ theme }) => theme.color.blue3};
|
||||
border-radius: ${({ theme }) => theme.border.radius.sm};
|
||||
color: ${({ theme }) => theme.color.blue};
|
||||
padding: ${({ theme }) => theme.spacing(1)};
|
||||
background-color: ${themeCssVariables.color.blue3};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
color: ${themeCssVariables.color.blue};
|
||||
padding: ${themeCssVariables.spacing[1]};
|
||||
}
|
||||
|
||||
h1 {
|
||||
@@ -67,7 +70,7 @@ const StyledEditorContainer = styled.div<{
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: ${({ theme }) => theme.spacing(2)};
|
||||
margin-bottom: ${themeCssVariables.spacing[2]};
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,7 +1,8 @@
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import React from 'react';
|
||||
import type { IconComponent } from 'twenty-ui/display';
|
||||
import { FloatingIconButton } from 'twenty-ui/input';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
type BubbleMenuIconButtonProps = {
|
||||
className?: string;
|
||||
@@ -14,9 +15,9 @@ type BubbleMenuIconButtonProps = {
|
||||
|
||||
const StyledBubbleMenuIconButton = styled(FloatingIconButton)`
|
||||
border: none;
|
||||
border-radius: ${({ theme }) => theme.spacing(1.5)};
|
||||
width: ${({ theme }) => theme.spacing(6)};
|
||||
height: ${({ theme }) => theme.spacing(6)};
|
||||
border-radius: ${themeCssVariables.spacing[1.5]};
|
||||
width: ${themeCssVariables.spacing[6]};
|
||||
height: ${themeCssVariables.spacing[6]};
|
||||
`;
|
||||
|
||||
export const BubbleMenuIconButton = ({
|
||||
|
||||
+7
-5
@@ -3,7 +3,7 @@ import { EditLinkPopover } from '@/advanced-text-editor/components/EditLinkPopov
|
||||
import { TurnIntoBlockDropdown } from '@/advanced-text-editor/components/TurnIntoBlockDropdown';
|
||||
import { useTextBubbleState } from '@/advanced-text-editor/hooks/useTextBubbleState';
|
||||
import { isTextSelected } from '@/advanced-text-editor/utils/isTextSelected';
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import { type Editor } from '@tiptap/core';
|
||||
import { BubbleMenu } from '@tiptap/react/menus';
|
||||
import {
|
||||
@@ -14,13 +14,15 @@ import {
|
||||
IconStrikethrough,
|
||||
IconUnderline,
|
||||
} from 'twenty-ui/display';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
export const StyledBubbleMenuContainer = styled.div`
|
||||
backdrop-filter: blur(20px);
|
||||
background-color: ${({ theme }) => theme.background.primary};
|
||||
border-radius: ${({ theme }) => theme.border.radius.md};
|
||||
box-shadow: ${({ theme }) =>
|
||||
`0px 2px 4px 0px ${theme.background.transparent.light}, 0px 0px 4px 0px ${theme.background.transparent.medium}`};
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-radius: ${themeCssVariables.border.radius.md};
|
||||
box-shadow:
|
||||
0px 2px 4px 0px ${themeCssVariables.background.transparent.light},
|
||||
0px 0px 4px 0px ${themeCssVariables.background.transparent.medium};
|
||||
display: inline-flex;
|
||||
gap: 2px;
|
||||
padding: 2px;
|
||||
|
||||
+12
-11
@@ -3,32 +3,33 @@ import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown';
|
||||
import { DropdownContent } from '@/ui/layout/dropdown/components/DropdownContent';
|
||||
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
||||
import { useToggleDropdown } from '@/ui/layout/dropdown/hooks/useToggleDropdown';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { type Editor } from '@tiptap/react';
|
||||
import { useId } from 'react';
|
||||
import { useContext, useId } from 'react';
|
||||
import { IconPilcrow } from 'twenty-ui/display';
|
||||
import { MenuItem } from 'twenty-ui/navigation';
|
||||
import { ThemeContext } from 'twenty-ui/theme';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledMenuItem = styled.button`
|
||||
align-items: center;
|
||||
background: none;
|
||||
border: none;
|
||||
color: ${({ theme }) => theme.font.color.tertiary};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
font-size: ${({ theme }) => theme.font.size.sm};
|
||||
font-weight: ${({ theme }) => theme.font.weight.regular};
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
font-weight: ${themeCssVariables.font.weight.regular};
|
||||
gap: 4px;
|
||||
height: ${({ theme }) => theme.spacing(6)};
|
||||
height: ${themeCssVariables.spacing[6]};
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
padding: 0 ${({ theme }) => theme.spacing(1.5)};
|
||||
border-radius: ${({ theme }) => theme.spacing(1.5)};
|
||||
padding: 0 ${themeCssVariables.spacing[1.5]};
|
||||
border-radius: ${themeCssVariables.spacing[1.5]};
|
||||
|
||||
:hover {
|
||||
background: ${({ theme }) => theme.background.transparent.medium};
|
||||
background: ${themeCssVariables.background.transparent.medium};
|
||||
}
|
||||
|
||||
:focus {
|
||||
@@ -43,7 +44,7 @@ type TurnIntoBlockDropdownProps = {
|
||||
export const TurnIntoBlockDropdown = ({
|
||||
editor,
|
||||
}: TurnIntoBlockDropdownProps) => {
|
||||
const theme = useTheme();
|
||||
const { theme } = useContext(ThemeContext);
|
||||
|
||||
const instanceId = useId();
|
||||
const dropdownId = `turn-into-block-dropdown-${instanceId}`;
|
||||
|
||||
+20
-18
@@ -1,11 +1,13 @@
|
||||
import { getFileType } from '@/activities/files/utils/getFileType';
|
||||
import { useFileCategoryColors } from '@/file/hooks/useFileCategoryColors';
|
||||
import { IconMapping } from '@/file/utils/fileIconMappings';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import { useContext } from 'react';
|
||||
import { type WorkflowAttachment } from 'twenty-shared/workflow';
|
||||
import { AvatarChip } from 'twenty-ui/components';
|
||||
import { AvatarOrIcon } from 'twenty-ui/components';
|
||||
import { IconX } from 'twenty-ui/display';
|
||||
import { ThemeContext } from 'twenty-ui/theme';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
type WorkflowAttachmentChipProps = {
|
||||
file: WorkflowAttachment;
|
||||
@@ -15,20 +17,20 @@ type WorkflowAttachmentChipProps = {
|
||||
|
||||
const StyledChip = styled.div<{ deletable: boolean }>`
|
||||
align-items: center;
|
||||
background-color: ${({ theme }) => theme.background.transparent.light};
|
||||
border: 1px solid ${({ theme }) => theme.border.color.medium};
|
||||
border-radius: ${({ theme }) => theme.border.radius.sm};
|
||||
column-gap: ${({ theme }) => theme.spacing(1)};
|
||||
background-color: ${themeCssVariables.background.transparent.light};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
column-gap: ${themeCssVariables.spacing[1]};
|
||||
display: inline-flex;
|
||||
flex-direction: row;
|
||||
flex-shrink: 0;
|
||||
max-width: 140px;
|
||||
padding-left: ${({ theme }) => theme.spacing(1)};
|
||||
padding-left: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledLabel = styled.span`
|
||||
color: ${({ theme }) => theme.font.color.primary};
|
||||
font-size: ${({ theme }) => theme.font.size.sm};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
@@ -43,18 +45,18 @@ const StyledDelete = styled.button`
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
font-size: ${({ theme }) => theme.font.size.sm};
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
user-select: none;
|
||||
flex-shrink: 0;
|
||||
background: none;
|
||||
border: none;
|
||||
color: ${({ theme }) => theme.font.color.tertiary};
|
||||
border-top-right-radius: ${({ theme }) => theme.border.radius.sm};
|
||||
border-bottom-right-radius: ${({ theme }) => theme.border.radius.sm};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
border-top-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
border-bottom-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
|
||||
&:hover {
|
||||
background-color: ${({ theme }) => theme.background.transparent.medium};
|
||||
color: ${({ theme }) => theme.font.color.primary};
|
||||
background-color: ${themeCssVariables.background.transparent.medium};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -64,11 +66,11 @@ export const WorkflowAttachmentChip = ({
|
||||
readonly = false,
|
||||
}: WorkflowAttachmentChipProps) => {
|
||||
const iconColors = useFileCategoryColors();
|
||||
const theme = useTheme();
|
||||
const { theme } = useContext(ThemeContext);
|
||||
|
||||
return (
|
||||
<StyledChip data-chip deletable={!readonly}>
|
||||
<AvatarChip
|
||||
<AvatarOrIcon
|
||||
Icon={IconMapping[getFileType(file.name)]}
|
||||
IconBackgroundColor={iconColors[getFileType(file.name)]}
|
||||
/>
|
||||
|
||||
+20
-19
@@ -2,13 +2,14 @@ import { WorkflowAttachmentChip } from '@/advanced-text-editor/components/Workfl
|
||||
import { useUploadWorkflowFile } from '@/advanced-text-editor/hooks/useUploadWorkflowFile';
|
||||
import { InputLabel } from '@/ui/input/components/InputLabel';
|
||||
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { type ChangeEvent, useRef } from 'react';
|
||||
import { type ChangeEvent, useContext, useRef } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { type WorkflowAttachment } from 'twenty-shared/workflow';
|
||||
import { IconUpload } from 'twenty-ui/display';
|
||||
import { ThemeContext } from 'twenty-ui/theme';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
type WorkflowSendEmailAttachmentsProps = {
|
||||
files: WorkflowAttachment[];
|
||||
@@ -26,21 +27,21 @@ const StyledFileInput = styled.input`
|
||||
`;
|
||||
|
||||
const StyledUploadArea = styled.div<{ hasFiles: boolean }>`
|
||||
background-color: ${({ theme }) => theme.background.transparent.lighter};
|
||||
border: 1px solid ${({ theme }) => theme.border.color.medium};
|
||||
border-radius: ${({ theme }) => theme.border.radius.sm};
|
||||
background-color: ${themeCssVariables.background.transparent.lighter};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: ${({ hasFiles }) => (hasFiles ? 'auto' : '24px')};
|
||||
justify-content: center;
|
||||
padding-top: ${({ theme }) => theme.spacing(1)};
|
||||
padding-bottom: ${({ theme }) => theme.spacing(1)};
|
||||
padding-left: ${({ theme }) => theme.spacing(2)};
|
||||
padding-right: ${({ theme }) => theme.spacing(2)};
|
||||
padding-top: ${themeCssVariables.spacing[1]};
|
||||
padding-bottom: ${themeCssVariables.spacing[1]};
|
||||
padding-left: ${themeCssVariables.spacing[2]};
|
||||
padding-right: ${themeCssVariables.spacing[2]};
|
||||
|
||||
&:hover {
|
||||
background-color: ${({ theme }) => theme.background.transparent.light};
|
||||
border-color: ${({ theme }) => theme.border.color.strong};
|
||||
background-color: ${themeCssVariables.background.transparent.light};
|
||||
border-color: ${themeCssVariables.border.color.strong};
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -48,17 +49,17 @@ const StyledChipsContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
gap: ${({ theme }) => theme.spacing(1)};
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledUploadAreaLabel = styled.div`
|
||||
justify-content: center;
|
||||
color: ${({ theme }) => theme.font.color.tertiary};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
display: flex;
|
||||
font-size: ${({ theme }) => theme.font.size.sm};
|
||||
font-weight: ${({ theme }) => theme.font.weight.medium};
|
||||
color: ${({ theme }) => theme.font.color.secondary};
|
||||
gap: ${({ theme }) => theme.spacing(1)};
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
font-weight: ${themeCssVariables.font.weight.medium};
|
||||
color: ${themeCssVariables.font.color.secondary};
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
export const WorkflowSendEmailAttachments = ({
|
||||
@@ -69,7 +70,7 @@ export const WorkflowSendEmailAttachments = ({
|
||||
const fileInputRef = useRef<HTMLInputElement>(null);
|
||||
const { uploadWorkflowFile } = useUploadWorkflowFile();
|
||||
const { t } = useLingui();
|
||||
const theme = useTheme();
|
||||
const { theme } = useContext(ThemeContext);
|
||||
|
||||
const handleAddFileClick = (e: React.MouseEvent) => {
|
||||
const target = e.target as HTMLElement;
|
||||
|
||||
+51
-60
@@ -1,29 +1,26 @@
|
||||
import { css } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { styled } from '@linaria/react';
|
||||
import { type NodeViewProps, NodeViewWrapper } from '@tiptap/react';
|
||||
import React, { useCallback, useRef, useState } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const IMAGE_MIN_WIDTH = 32;
|
||||
const IMAGE_MAX_WIDTH = 600;
|
||||
|
||||
const StyledNodeViewWrapper = styled(NodeViewWrapper)`
|
||||
const StyledNodeViewWrapperContainer = styled.div<{
|
||||
align?: string;
|
||||
}>`
|
||||
height: 100%;
|
||||
${({ align }) => {
|
||||
switch (align) {
|
||||
case 'left':
|
||||
return css`
|
||||
margin-left: 0;
|
||||
`;
|
||||
return 'margin-left: 0;';
|
||||
case 'right':
|
||||
return css`
|
||||
margin-right: 0;
|
||||
`;
|
||||
return 'margin-right: 0;';
|
||||
case 'center':
|
||||
return css`
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
`;
|
||||
return 'margin-left: auto; margin-right: auto;';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}}
|
||||
`;
|
||||
@@ -43,28 +40,21 @@ const StyledImage = styled.img`
|
||||
`;
|
||||
|
||||
const StyledImageHandle = styled.div<{ handle: 'left' | 'right' }>`
|
||||
border-radius: ${({ theme }) => theme.border.radius.md};
|
||||
background-color: ${({ theme }) => theme.background.primaryInverted};
|
||||
border: 1px solid ${({ theme }) => theme.background.primary};
|
||||
border-radius: ${themeCssVariables.border.radius.md};
|
||||
background-color: ${themeCssVariables.background.primaryInverted};
|
||||
border: 1px solid ${themeCssVariables.background.primary};
|
||||
cursor: col-resize;
|
||||
height: ${({ theme }) => theme.spacing(8)};
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: ${({ theme }) => theme.spacing(2)};
|
||||
width: ${themeCssVariables.spacing[2]};
|
||||
z-index: 1;
|
||||
|
||||
${({ handle, theme }) => {
|
||||
if (handle === 'left') {
|
||||
return css`
|
||||
left: ${theme.spacing(1)};
|
||||
`;
|
||||
}
|
||||
|
||||
return css`
|
||||
right: ${theme.spacing(1)};
|
||||
`;
|
||||
}}
|
||||
${({ handle }) =>
|
||||
handle === 'left'
|
||||
? `left: ${themeCssVariables.spacing[1]};`
|
||||
: `right: ${themeCssVariables.spacing[1]};`}
|
||||
`;
|
||||
|
||||
type ResizeParams = {
|
||||
@@ -179,37 +169,38 @@ export const ResizableImageView = (props: ResizableImageViewProps) => {
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<StyledNodeViewWrapper
|
||||
onMouseEnter={handleImageHover}
|
||||
onMouseLeave={handleImageHoverEnd}
|
||||
align={align}
|
||||
>
|
||||
<StyledImageWrapper
|
||||
ref={imageWrapperRef}
|
||||
style={{ width: width ? `${width}px` : 'fit-content' }}
|
||||
<NodeViewWrapper>
|
||||
<StyledNodeViewWrapperContainer
|
||||
onMouseEnter={handleImageHover}
|
||||
onMouseLeave={handleImageHoverEnd}
|
||||
align={align}
|
||||
>
|
||||
<StyledImageContainer>
|
||||
<StyledImage
|
||||
src={src}
|
||||
alt={alt}
|
||||
draggable={false}
|
||||
contentEditable={false}
|
||||
/>
|
||||
{/* Show resize handles when hovering over image OR actively resizing */}
|
||||
{(isHovering || isDefined(resizeParams)) && (
|
||||
<>
|
||||
<StyledImageHandle
|
||||
handle="left"
|
||||
onMouseDown={(e) => handleImageHandleMouseDown('left', e)}
|
||||
/>
|
||||
<StyledImageHandle
|
||||
handle="right"
|
||||
onMouseDown={(e) => handleImageHandleMouseDown('right', e)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</StyledImageContainer>
|
||||
</StyledImageWrapper>
|
||||
</StyledNodeViewWrapper>
|
||||
<StyledImageWrapper
|
||||
ref={imageWrapperRef}
|
||||
style={{ width: width ? `${width}px` : 'fit-content' }}
|
||||
>
|
||||
<StyledImageContainer>
|
||||
<StyledImage
|
||||
src={src}
|
||||
alt={alt}
|
||||
draggable={false}
|
||||
contentEditable={false}
|
||||
/>
|
||||
{(isHovering || isDefined(resizeParams)) && (
|
||||
<>
|
||||
<StyledImageHandle
|
||||
handle="left"
|
||||
onMouseDown={(e) => handleImageHandleMouseDown('left', e)}
|
||||
/>
|
||||
<StyledImageHandle
|
||||
handle="right"
|
||||
onMouseDown={(e) => handleImageHandleMouseDown('right', e)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</StyledImageContainer>
|
||||
</StyledImageWrapper>
|
||||
</StyledNodeViewWrapperContainer>
|
||||
</NodeViewWrapper>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadata
|
||||
import { getLinkToShowPage } from '@/object-metadata/utils/getLinkToShowPage';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { isNonEmptyString } from '@sniptt/guards';
|
||||
import { AvatarChip, ChipVariant, LinkChip } from 'twenty-ui/components';
|
||||
import { AvatarOrIcon, ChipVariant, LinkChip } from 'twenty-ui/components';
|
||||
|
||||
type RecordLinkProps = {
|
||||
objectNameSingular: string;
|
||||
@@ -34,7 +34,7 @@ export const RecordLink = ({
|
||||
to={linkToShowPage}
|
||||
variant={ChipVariant.Highlighted}
|
||||
leftComponent={
|
||||
<AvatarChip
|
||||
<AvatarOrIcon
|
||||
placeholder={displayName}
|
||||
placeholderColorSeed={recordId}
|
||||
avatarType="rounded"
|
||||
|
||||
@@ -6,7 +6,12 @@ import { useTheme } from '@emotion/react';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { type FileUIPart } from 'ai';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { AvatarChip, Chip, ChipVariant, LinkChip } from 'twenty-ui/components';
|
||||
import {
|
||||
AvatarOrIcon,
|
||||
Chip,
|
||||
ChipVariant,
|
||||
LinkChip,
|
||||
} from 'twenty-ui/components';
|
||||
import { type IconComponent, IconX } from 'twenty-ui/display';
|
||||
import { Loader } from 'twenty-ui/feedback';
|
||||
|
||||
@@ -36,21 +41,22 @@ export const AgentChatFilePreview = ({
|
||||
const leftComponent = isUploading ? (
|
||||
<Loader color="yellow" />
|
||||
) : (
|
||||
<AvatarChip
|
||||
<AvatarOrIcon
|
||||
Icon={FileCategoryIcon}
|
||||
IconBackgroundColor={iconBackgroundColor}
|
||||
/>
|
||||
);
|
||||
|
||||
const rightComponent = onRemove ? (
|
||||
<AvatarChip
|
||||
<AvatarOrIcon
|
||||
Icon={IconX}
|
||||
IconColor={theme.font.color.secondary}
|
||||
onClick={onRemove}
|
||||
divider="left"
|
||||
/>
|
||||
) : undefined;
|
||||
|
||||
const hasRightDivider = isDefined(onRemove);
|
||||
|
||||
if (isDefined(fileUrl)) {
|
||||
return (
|
||||
<LinkChip
|
||||
@@ -61,6 +67,7 @@ export const AgentChatFilePreview = ({
|
||||
target="_blank"
|
||||
leftComponent={leftComponent}
|
||||
rightComponent={rightComponent}
|
||||
rightComponentDivider={hasRightDivider}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -73,6 +80,7 @@ export const AgentChatFilePreview = ({
|
||||
clickable={false}
|
||||
leftComponent={leftComponent}
|
||||
rightComponent={rightComponent}
|
||||
rightComponentDivider={hasRightDivider}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
+3
-2
@@ -8,12 +8,13 @@ import { useCurrentMetered } from '@/billing/hooks/useCurrentMetered';
|
||||
import { useGetWorkflowNodeExecutionUsage } from '@/billing/hooks/useGetWorkflowNodeExecutionUsage';
|
||||
import { useNumberFormat } from '@/localization/hooks/useNumberFormat';
|
||||
import { useSubscriptionStatus } from '@/workspace/hooks/useSubscriptionStatus';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { useContext } from 'react';
|
||||
import { formatToShortNumber } from 'twenty-shared/utils';
|
||||
import { H2Title, HorizontalSeparator } from 'twenty-ui/display';
|
||||
import { ProgressBar } from 'twenty-ui/feedback';
|
||||
import { Section } from 'twenty-ui/layout';
|
||||
import { ThemeContext } from 'twenty-ui/theme';
|
||||
import { SubscriptionStatus } from '~/generated-metadata/graphql';
|
||||
|
||||
export const SettingsBillingCreditsSection = ({
|
||||
@@ -59,7 +60,7 @@ export const SettingsBillingCreditsSection = ({
|
||||
currentBillingSubscription.interval,
|
||||
);
|
||||
|
||||
const theme = useTheme();
|
||||
const { theme } = useContext(ThemeContext);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user