Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5de6fe2c15 |
@@ -1,46 +0,0 @@
|
||||
name: Deploy Twenty App
|
||||
description: Build and deploy a Twenty app to a remote instance
|
||||
|
||||
inputs:
|
||||
api-url:
|
||||
description: Base URL of the target Twenty instance (e.g. https://my.twenty.instance)
|
||||
required: true
|
||||
api-key:
|
||||
description: API key or access token for the target instance
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Enable Corepack
|
||||
shell: bash
|
||||
run: corepack enable
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: yarn
|
||||
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Configure remote
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p ~/.twenty
|
||||
node -e "
|
||||
const fs = require('fs'), path = require('path'), os = require('os');
|
||||
fs.writeFileSync(path.join(os.homedir(), '.twenty', 'config.json'), JSON.stringify({
|
||||
version: 1,
|
||||
remotes: { target: { apiUrl: process.env.API_URL, apiKey: process.env.API_KEY } }
|
||||
}, null, 2));
|
||||
"
|
||||
env:
|
||||
API_URL: ${{ inputs.api-url }}
|
||||
API_KEY: ${{ inputs.api-key }}
|
||||
|
||||
- name: Deploy
|
||||
shell: bash
|
||||
run: yarn twenty deploy --remote target
|
||||
@@ -1,46 +0,0 @@
|
||||
name: Install Twenty App
|
||||
description: Install (or upgrade) a Twenty app on a specific workspace
|
||||
|
||||
inputs:
|
||||
api-url:
|
||||
description: Base URL of the target Twenty instance (e.g. https://my.twenty.instance)
|
||||
required: true
|
||||
api-key:
|
||||
description: API key or access token for the target workspace
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Enable Corepack
|
||||
shell: bash
|
||||
run: corepack enable
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: yarn
|
||||
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Configure remote
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p ~/.twenty
|
||||
node -e "
|
||||
const fs = require('fs'), path = require('path'), os = require('os');
|
||||
fs.writeFileSync(path.join(os.homedir(), '.twenty', 'config.json'), JSON.stringify({
|
||||
version: 1,
|
||||
remotes: { target: { apiUrl: process.env.API_URL, apiKey: process.env.API_KEY } }
|
||||
}, null, 2));
|
||||
"
|
||||
env:
|
||||
API_URL: ${{ inputs.api-url }}
|
||||
API_KEY: ${{ inputs.api-key }}
|
||||
|
||||
- name: Install
|
||||
shell: bash
|
||||
run: yarn twenty install --remote target
|
||||
@@ -1,47 +0,0 @@
|
||||
name: Spawn Twenty App Dev Test
|
||||
description: >
|
||||
Starts a Twenty all-in-one test instance (server, worker, database, redis)
|
||||
using the twentycrm/twenty-app-dev Docker image on port 2021.
|
||||
The server is available at http://localhost:2021 with seeded demo data.
|
||||
|
||||
inputs:
|
||||
twenty-version:
|
||||
description: 'Twenty Docker Hub image tag for twenty-app-dev (e.g., "latest" or "v1.20.0").'
|
||||
required: false
|
||||
default: 'latest'
|
||||
|
||||
outputs:
|
||||
server-url:
|
||||
description: 'URL where the Twenty test server can be reached'
|
||||
value: http://localhost:2021
|
||||
api-key:
|
||||
description: 'API key for the Twenty test instance'
|
||||
value: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ1c2VySWQiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtMDY4Ny00YzQxLWI3MDctZWQxYmZjYTk3MmE3IiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtOWUzYi00NmQ0LWE1NTYtODhiOWRkYzJiMDM1IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjQ5MDQ4ODE3MDR9.9S4wc0MOr5iczsomlFxZdOHD1IRDS4dnRSwNVNpctF4
|
||||
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- name: Start twenty-app-dev-test container
|
||||
shell: bash
|
||||
run: |
|
||||
docker run -d \
|
||||
--name twenty-app-dev-test \
|
||||
-p 2021:2021 \
|
||||
-e NODE_PORT=2021 \
|
||||
-e SERVER_URL=http://localhost:2021 \
|
||||
twentycrm/twenty-app-dev:${{ inputs.twenty-version }}
|
||||
|
||||
echo "Waiting for Twenty test instance to become healthy…"
|
||||
TIMEOUT=180
|
||||
ELAPSED=0
|
||||
until curl -sf http://localhost:2021/healthz > /dev/null 2>&1; do
|
||||
if [ "$ELAPSED" -ge "$TIMEOUT" ]; then
|
||||
echo "::error::Twenty did not become healthy within ${TIMEOUT}s"
|
||||
docker logs twenty-app-dev-test 2>&1 | tail -80
|
||||
exit 1
|
||||
fi
|
||||
sleep 3
|
||||
ELAPSED=$((ELAPSED + 3))
|
||||
echo " … waited ${ELAPSED}s"
|
||||
done
|
||||
echo "Twenty test instance is ready at http://localhost:2021 (took ~${ELAPSED}s)"
|
||||
@@ -251,14 +251,6 @@ jobs:
|
||||
rm -f /tmp/current-server.pid
|
||||
fi
|
||||
|
||||
- name: Flush Redis between server runs
|
||||
run: |
|
||||
# Clear all Redis caches to prevent stale data from the current branch
|
||||
# server contaminating the main branch server. Both servers share the
|
||||
# same Redis instance, and CoreEntityCacheService/WorkspaceCacheService
|
||||
# persist cached entities across process restarts.
|
||||
redis-cli -h localhost -p 6379 FLUSHALL || echo "::warning::Failed to flush Redis"
|
||||
|
||||
- name: Checkout main branch
|
||||
run: |
|
||||
git stash
|
||||
|
||||
@@ -25,10 +25,12 @@ jobs:
|
||||
packages/twenty-sdk/**
|
||||
packages/twenty-client-sdk/**
|
||||
packages/twenty-shared/**
|
||||
packages/twenty-server/**
|
||||
!packages/create-twenty-app/package.json
|
||||
!packages/twenty-sdk/package.json
|
||||
!packages/twenty-client-sdk/package.json
|
||||
!packages/twenty-shared/package.json
|
||||
!packages/twenty-server/package.json
|
||||
create-app-e2e-hello-world:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
@@ -53,8 +55,6 @@ jobs:
|
||||
- 6379:6379
|
||||
env:
|
||||
PUBLISHABLE_PACKAGES: twenty-client-sdk twenty-sdk create-twenty-app
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik
|
||||
steps:
|
||||
- name: Fetch custom Github Actions and base branch history
|
||||
uses: actions/checkout@v4
|
||||
@@ -139,19 +139,30 @@ jobs:
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
npx --no-install twenty --version
|
||||
|
||||
- name: Create test database
|
||||
run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
|
||||
- name: Setup server environment
|
||||
run: npx nx reset:env:e2e-testing-server twenty-server
|
||||
|
||||
- name: Setup database and start server
|
||||
run: npx nx run twenty-server:database:reset && nohup npx nx start:ci twenty-server &
|
||||
- name: Build server
|
||||
run: npx nx build twenty-server
|
||||
|
||||
- name: Wait for server to be ready
|
||||
run: npx wait-on http://localhost:3000/healthz --timeout 120000 --interval 1000
|
||||
- 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: Start server
|
||||
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: Authenticate with twenty-server
|
||||
env:
|
||||
SEED_API_KEY: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik'
|
||||
run: |
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
npx --no-install twenty remote add --api-key ${{ env.TWENTY_API_KEY }} --api-url ${{ env.TWENTY_API_URL }}
|
||||
npx --no-install twenty remote add --api-key $SEED_API_KEY --api-url http://localhost:3000
|
||||
|
||||
- name: Deploy scaffolded app
|
||||
run: |
|
||||
@@ -178,6 +189,8 @@ jobs:
|
||||
echo "$EXEC_OUTPUT" | grep -q 'Created company.*Hello World.*with id'
|
||||
|
||||
- name: Run scaffolded app integration test
|
||||
env:
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
run: |
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
yarn test
|
||||
|
||||
@@ -23,10 +23,12 @@ jobs:
|
||||
packages/twenty-sdk/**
|
||||
packages/twenty-client-sdk/**
|
||||
packages/twenty-shared/**
|
||||
packages/twenty-server/**
|
||||
!packages/create-twenty-app/package.json
|
||||
!packages/twenty-sdk/package.json
|
||||
!packages/twenty-client-sdk/package.json
|
||||
!packages/twenty-shared/package.json
|
||||
!packages/twenty-server/package.json
|
||||
create-app-e2e-minimal:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
@@ -51,8 +53,6 @@ jobs:
|
||||
- 6379:6379
|
||||
env:
|
||||
PUBLISHABLE_PACKAGES: twenty-client-sdk twenty-sdk create-twenty-app
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik
|
||||
steps:
|
||||
- name: Fetch custom Github Actions and base branch history
|
||||
uses: actions/checkout@v4
|
||||
@@ -133,19 +133,30 @@ jobs:
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
npx --no-install twenty --version
|
||||
|
||||
- name: Create test database
|
||||
run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
|
||||
- name: Setup server environment
|
||||
run: npx nx reset:env:e2e-testing-server twenty-server
|
||||
|
||||
- name: Setup database and start server
|
||||
run: npx nx run twenty-server:database:reset && nohup npx nx start:ci twenty-server &
|
||||
- name: Build server
|
||||
run: npx nx build twenty-server
|
||||
|
||||
- name: Wait for server to be ready
|
||||
run: npx wait-on http://localhost:3000/healthz --timeout 120000 --interval 1000
|
||||
- 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: Start server
|
||||
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: Authenticate with twenty-server
|
||||
env:
|
||||
SEED_API_KEY: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik'
|
||||
run: |
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
npx --no-install twenty remote add --api-key ${{ env.TWENTY_API_KEY }} --api-url ${{ env.TWENTY_API_URL }}
|
||||
npx --no-install twenty remote add --api-key $SEED_API_KEY --api-url http://localhost:3000
|
||||
|
||||
- name: Deploy scaffolded app
|
||||
run: |
|
||||
@@ -158,6 +169,8 @@ jobs:
|
||||
npx --no-install twenty install
|
||||
|
||||
- name: Run scaffolded app integration test
|
||||
env:
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
run: |
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
yarn test
|
||||
|
||||
@@ -25,10 +25,12 @@ jobs:
|
||||
packages/twenty-sdk/**
|
||||
packages/twenty-client-sdk/**
|
||||
packages/twenty-shared/**
|
||||
packages/twenty-server/**
|
||||
!packages/create-twenty-app/package.json
|
||||
!packages/twenty-sdk/package.json
|
||||
!packages/twenty-client-sdk/package.json
|
||||
!packages/twenty-shared/package.json
|
||||
!packages/twenty-server/package.json
|
||||
create-app-e2e-postcard:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
@@ -53,8 +55,6 @@ jobs:
|
||||
- 6379:6379
|
||||
env:
|
||||
PUBLISHABLE_PACKAGES: twenty-client-sdk twenty-sdk create-twenty-app
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik
|
||||
steps:
|
||||
- name: Fetch custom Github Actions and base branch history
|
||||
uses: actions/checkout@v4
|
||||
@@ -137,19 +137,30 @@ jobs:
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
npx --no-install twenty --version
|
||||
|
||||
- name: Create test database
|
||||
run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
|
||||
- name: Setup server environment
|
||||
run: npx nx reset:env:e2e-testing-server twenty-server
|
||||
|
||||
- name: Setup database and start server
|
||||
run: npx nx run twenty-server:database:reset && nohup npx nx start:ci twenty-server &
|
||||
- name: Build server
|
||||
run: npx nx build twenty-server
|
||||
|
||||
- name: Wait for server to be ready
|
||||
run: npx wait-on http://localhost:3000/healthz --timeout 120000 --interval 1000
|
||||
- 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: Start server
|
||||
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: Authenticate with twenty-server
|
||||
env:
|
||||
SEED_API_KEY: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik'
|
||||
run: |
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
npx --no-install twenty remote add --api-key ${{ env.TWENTY_API_KEY }} --api-url ${{ env.TWENTY_API_URL }}
|
||||
npx --no-install twenty remote add --api-key $SEED_API_KEY --api-url http://localhost:3000
|
||||
|
||||
- name: Deploy scaffolded app
|
||||
run: |
|
||||
@@ -176,6 +187,8 @@ jobs:
|
||||
echo "$EXEC_OUTPUT" | grep -q 'Created company.*Hello World.*with id'
|
||||
|
||||
- name: Run scaffolded app integration test
|
||||
env:
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
run: |
|
||||
cd /tmp/e2e-test-workspace/test-app
|
||||
yarn test
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
name: CI Example App Hello World
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
||||
|
||||
jobs:
|
||||
changed-files-check:
|
||||
uses: ./.github/workflows/changed-files.yaml
|
||||
with:
|
||||
files: |
|
||||
packages/twenty-apps/examples/hello-world/**
|
||||
packages/twenty-sdk/**
|
||||
packages/twenty-client-sdk/**
|
||||
packages/twenty-shared/**
|
||||
!packages/twenty-sdk/package.json
|
||||
!packages/twenty-client-sdk/package.json
|
||||
!packages/twenty-shared/package.json
|
||||
|
||||
example-app-hello-world:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
timeout-minutes: 30
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:18
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
env:
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
|
||||
- name: Build SDK packages
|
||||
run: npx nx build twenty-sdk
|
||||
|
||||
- name: Create test database
|
||||
run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
|
||||
|
||||
- name: Setup database and start server
|
||||
run: npx nx run twenty-server:database:reset && nohup npx nx start:ci twenty-server &
|
||||
|
||||
- name: Wait for server to be ready
|
||||
run: npx wait-on http://localhost:3000/healthz --timeout 120000 --interval 1000
|
||||
|
||||
- name: Run integration tests
|
||||
working-directory: packages/twenty-apps/examples/hello-world
|
||||
run: npx vitest run
|
||||
|
||||
ci-example-app-hello-world-status-check:
|
||||
if: always() && !cancelled()
|
||||
timeout-minutes: 5
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changed-files-check, example-app-hello-world]
|
||||
steps:
|
||||
- name: Fail job if any needs failed
|
||||
if: contains(needs.*.result, 'failure')
|
||||
run: exit 1
|
||||
@@ -1,86 +0,0 @@
|
||||
name: CI Example App Postcard
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
||||
|
||||
jobs:
|
||||
changed-files-check:
|
||||
uses: ./.github/workflows/changed-files.yaml
|
||||
with:
|
||||
files: |
|
||||
packages/twenty-apps/examples/postcard/**
|
||||
packages/twenty-sdk/**
|
||||
packages/twenty-client-sdk/**
|
||||
packages/twenty-shared/**
|
||||
!packages/twenty-sdk/package.json
|
||||
!packages/twenty-client-sdk/package.json
|
||||
!packages/twenty-shared/package.json
|
||||
|
||||
example-app-postcard:
|
||||
needs: changed-files-check
|
||||
if: needs.changed-files-check.outputs.any_changed == 'true'
|
||||
timeout-minutes: 30
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:18
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
env:
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/yarn-install
|
||||
|
||||
- name: Build SDK packages
|
||||
run: npx nx build twenty-sdk
|
||||
|
||||
- name: Create test database
|
||||
run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
|
||||
|
||||
- name: Setup database and start server
|
||||
run: npx nx run twenty-server:database:reset && nohup npx nx start:ci twenty-server &
|
||||
|
||||
- name: Wait for server to be ready
|
||||
run: npx wait-on http://localhost:3000/healthz --timeout 120000 --interval 1000
|
||||
|
||||
- name: Run integration tests
|
||||
working-directory: packages/twenty-apps/examples/postcard
|
||||
run: npx vitest run
|
||||
|
||||
ci-example-app-postcard-status-check:
|
||||
if: always() && !cancelled()
|
||||
timeout-minutes: 5
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changed-files-check, example-app-postcard]
|
||||
steps:
|
||||
- name: Fail job if any needs failed
|
||||
if: contains(needs.*.result, 'failure')
|
||||
run: exit 1
|
||||
@@ -70,8 +70,6 @@ jobs:
|
||||
- 6379:6379
|
||||
env:
|
||||
NODE_ENV: test
|
||||
TWENTY_API_URL: http://localhost:3000
|
||||
TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik
|
||||
steps:
|
||||
- name: Fetch custom Github Actions and base branch history
|
||||
uses: actions/checkout@v4
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "create-twenty-app",
|
||||
"version": "0.9.0-canary.0",
|
||||
"version": "0.8.0",
|
||||
"description": "Command-line interface to create Twenty application",
|
||||
"main": "dist/cli.cjs",
|
||||
"bin": "dist/cli.cjs",
|
||||
|
||||
+5
-11
@@ -6,16 +6,9 @@ on:
|
||||
- main
|
||||
pull_request: {}
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
TWENTY_VERSION: latest
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -23,11 +16,12 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Spawn Twenty test instance
|
||||
- name: Spawn Twenty instance
|
||||
id: twenty
|
||||
uses: twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main
|
||||
uses: twentyhq/twenty/.github/actions/spawn-twenty-docker-image@main
|
||||
with:
|
||||
twenty-version: ${{ env.TWENTY_VERSION }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Enable Corepack
|
||||
run: corepack enable
|
||||
@@ -36,7 +30,7 @@ jobs:
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: yarn
|
||||
cache: 'yarn'
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
@@ -45,4 +39,4 @@ jobs:
|
||||
run: yarn test
|
||||
env:
|
||||
TWENTY_API_URL: ${{ steps.twenty.outputs.server-url }}
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.api-key }}
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
@@ -1,42 +0,0 @@
|
||||
name: CD
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
TWENTY_DEPLOY_URL: http://localhost:3000
|
||||
|
||||
concurrency:
|
||||
group: cd-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
deploy-and-install:
|
||||
if: >-
|
||||
github.event_name == 'push' ||
|
||||
(github.event_name == 'pull_request' && github.event.label.name == 'deploy')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: Deploy
|
||||
uses: twentyhq/twenty/.github/actions/deploy-twenty-app@main
|
||||
with:
|
||||
api-url: ${{ env.TWENTY_DEPLOY_URL }}
|
||||
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
|
||||
|
||||
- name: Install
|
||||
uses: twentyhq/twenty/.github/actions/install-twenty-app@main
|
||||
with:
|
||||
api-url: ${{ env.TWENTY_DEPLOY_URL }}
|
||||
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
|
||||
@@ -3,51 +3,43 @@ import * as os from 'os';
|
||||
import * as path from 'path';
|
||||
import { beforeAll } from 'vitest';
|
||||
|
||||
const CONFIG_DIR = path.join(os.homedir(), '.twenty');
|
||||
const CONFIG_PATH = path.join(CONFIG_DIR, 'config.test.json');
|
||||
|
||||
beforeAll(async () => {
|
||||
const apiUrl = process.env.TWENTY_API_URL!;
|
||||
const token = process.env.TWENTY_API_KEY!;
|
||||
|
||||
if (!apiUrl || !token) {
|
||||
throw new Error(
|
||||
'TWENTY_API_URL and TWENTY_API_KEY must be set.\n' +
|
||||
'Start a local server: yarn twenty server start\n' +
|
||||
'Or set them in vitest env config.',
|
||||
);
|
||||
}
|
||||
const TWENTY_API_URL = process.env.TWENTY_API_URL ?? 'http://localhost:2020';
|
||||
const TEST_CONFIG_DIR = path.join(os.tmpdir(), '.twenty-sdk-test');
|
||||
|
||||
const assertServerIsReachable = async () => {
|
||||
let response: Response;
|
||||
|
||||
try {
|
||||
response = await fetch(`${apiUrl}/healthz`);
|
||||
response = await fetch(`${TWENTY_API_URL}/healthz`);
|
||||
} catch {
|
||||
throw new Error(
|
||||
`Twenty server is not reachable at ${apiUrl}. ` +
|
||||
`Twenty server is not reachable at ${TWENTY_API_URL}. ` +
|
||||
'Make sure the server is running before executing integration tests.',
|
||||
);
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`Server at ${apiUrl} returned ${response.status}`);
|
||||
throw new Error(`Server at ${TWENTY_API_URL} returned ${response.status}`);
|
||||
}
|
||||
};
|
||||
|
||||
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
||||
beforeAll(async () => {
|
||||
await assertServerIsReachable();
|
||||
|
||||
fs.mkdirSync(TEST_CONFIG_DIR, { recursive: true });
|
||||
|
||||
const configFile = {
|
||||
remotes: {
|
||||
local: {
|
||||
apiUrl: process.env.TWENTY_API_URL,
|
||||
apiKey: process.env.TWENTY_API_KEY,
|
||||
},
|
||||
},
|
||||
defaultRemote: 'local',
|
||||
};
|
||||
|
||||
fs.writeFileSync(
|
||||
CONFIG_PATH,
|
||||
JSON.stringify(
|
||||
{
|
||||
remotes: {
|
||||
local: { apiUrl, apiKey: token },
|
||||
},
|
||||
defaultRemote: 'local',
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
path.join(TEST_CONFIG_DIR, 'config.json'),
|
||||
JSON.stringify(configFile, null, 2),
|
||||
);
|
||||
|
||||
process.env.TWENTY_APP_ACCESS_TOKEN ??= token;
|
||||
});
|
||||
|
||||
@@ -14,11 +14,8 @@ export default defineConfig({
|
||||
include: ['src/**/*.integration-test.ts'],
|
||||
setupFiles: ['src/__tests__/setup-test.ts'],
|
||||
env: {
|
||||
TWENTY_API_URL: process.env.TWENTY_API_URL ?? 'http://localhost:2020',
|
||||
TWENTY_API_KEY:
|
||||
process.env.TWENTY_API_KEY ??
|
||||
// Tim Apple (admin) access token for twenty-app-dev
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ1c2VySWQiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtMDY4Ny00YzQxLWI3MDctZWQxYmZjYTk3MmE3IiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtOWUzYi00NmQ0LWE1NTYtODhiOWRkYzJiMDM1IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjQ5MDQ4ODE3MDR9.9S4wc0MOr5iczsomlFxZdOHD1IRDS4dnRSwNVNpctF4',
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -21,7 +21,7 @@ export const copyBaseApplicationProject = async ({
|
||||
console.log(chalk.gray('Generating application project...'));
|
||||
await fs.copy(join(__dirname, './constants/template'), appDirectory);
|
||||
|
||||
await renameDotfiles({ appDirectory });
|
||||
await renameGitignore({ appDirectory });
|
||||
|
||||
await generateUniversalIdentifiers({
|
||||
appDisplayName,
|
||||
@@ -32,20 +32,11 @@ export const copyBaseApplicationProject = async ({
|
||||
await updatePackageJson({ appName, appDirectory });
|
||||
};
|
||||
|
||||
// npm strips dotfiles/dotdirs (.gitignore, .github/) from published packages,
|
||||
// so we store them without the leading dot and rename after copying.
|
||||
const renameDotfiles = async ({ appDirectory }: { appDirectory: string }) => {
|
||||
const renames = [
|
||||
{ from: 'gitignore', to: '.gitignore' },
|
||||
{ from: 'github', to: '.github' },
|
||||
];
|
||||
const renameGitignore = async ({ appDirectory }: { appDirectory: string }) => {
|
||||
const gitignorePath = join(appDirectory, 'gitignore');
|
||||
|
||||
for (const { from, to } of renames) {
|
||||
const sourcePath = join(appDirectory, from);
|
||||
|
||||
if (await fs.pathExists(sourcePath)) {
|
||||
await fs.rename(sourcePath, join(appDirectory, to));
|
||||
}
|
||||
if (await fs.pathExists(gitignorePath)) {
|
||||
await fs.rename(gitignorePath, join(appDirectory, '.gitignore'));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
name: CD
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
TWENTY_DEPLOY_URL: http://localhost:3000
|
||||
|
||||
concurrency:
|
||||
group: cd-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
deploy-and-install:
|
||||
if: >-
|
||||
github.event_name == 'push' ||
|
||||
(github.event_name == 'pull_request' && github.event.label.name == 'deploy')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: Deploy
|
||||
uses: twentyhq/twenty/.github/actions/deploy-twenty-app@main
|
||||
with:
|
||||
api-url: ${{ env.TWENTY_DEPLOY_URL }}
|
||||
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
|
||||
|
||||
- name: Install
|
||||
uses: twentyhq/twenty/.github/actions/install-twenty-app@main
|
||||
with:
|
||||
api-url: ${{ env.TWENTY_DEPLOY_URL }}
|
||||
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
|
||||
@@ -6,16 +6,9 @@ on:
|
||||
- main
|
||||
pull_request: {}
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
TWENTY_VERSION: latest
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -23,11 +16,12 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Spawn Twenty test instance
|
||||
- name: Spawn Twenty instance
|
||||
id: twenty
|
||||
uses: twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main
|
||||
uses: twentyhq/twenty/.github/actions/spawn-twenty-docker-image@main
|
||||
with:
|
||||
twenty-version: ${{ env.TWENTY_VERSION }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Enable Corepack
|
||||
run: corepack enable
|
||||
@@ -36,7 +30,7 @@ jobs:
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: yarn
|
||||
cache: 'yarn'
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
@@ -45,4 +39,4 @@ jobs:
|
||||
run: yarn test
|
||||
env:
|
||||
TWENTY_API_URL: ${{ steps.twenty.outputs.server-url }}
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.api-key }}
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
|
||||
@@ -3,51 +3,43 @@ import * as os from 'os';
|
||||
import * as path from 'path';
|
||||
import { beforeAll } from 'vitest';
|
||||
|
||||
const CONFIG_DIR = path.join(os.homedir(), '.twenty');
|
||||
const CONFIG_PATH = path.join(CONFIG_DIR, 'config.test.json');
|
||||
|
||||
beforeAll(async () => {
|
||||
const apiUrl = process.env.TWENTY_API_URL!;
|
||||
const token = process.env.TWENTY_API_KEY!;
|
||||
|
||||
if (!apiUrl || !token) {
|
||||
throw new Error(
|
||||
'TWENTY_API_URL and TWENTY_API_KEY must be set.\n' +
|
||||
'Start a local server: yarn twenty server start\n' +
|
||||
'Or set them in vitest env config.',
|
||||
);
|
||||
}
|
||||
const TWENTY_API_URL = process.env.TWENTY_API_URL ?? 'http://localhost:3000';
|
||||
const TEST_CONFIG_DIR = path.join(os.tmpdir(), '.twenty-sdk-test');
|
||||
|
||||
const assertServerIsReachable = async () => {
|
||||
let response: Response;
|
||||
|
||||
try {
|
||||
response = await fetch(`${apiUrl}/healthz`);
|
||||
response = await fetch(`${TWENTY_API_URL}/healthz`);
|
||||
} catch {
|
||||
throw new Error(
|
||||
`Twenty server is not reachable at ${apiUrl}. ` +
|
||||
`Twenty server is not reachable at ${TWENTY_API_URL}. ` +
|
||||
'Make sure the server is running before executing integration tests.',
|
||||
);
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`Server at ${apiUrl} returned ${response.status}`);
|
||||
throw new Error(`Server at ${TWENTY_API_URL} returned ${response.status}`);
|
||||
}
|
||||
};
|
||||
|
||||
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
||||
beforeAll(async () => {
|
||||
await assertServerIsReachable();
|
||||
|
||||
fs.mkdirSync(TEST_CONFIG_DIR, { recursive: true });
|
||||
|
||||
const configFile = {
|
||||
remotes: {
|
||||
local: {
|
||||
apiUrl: process.env.TWENTY_API_URL,
|
||||
apiKey: process.env.TWENTY_API_KEY,
|
||||
},
|
||||
},
|
||||
defaultRemote: 'local',
|
||||
};
|
||||
|
||||
fs.writeFileSync(
|
||||
CONFIG_PATH,
|
||||
JSON.stringify(
|
||||
{
|
||||
remotes: {
|
||||
local: { apiUrl, apiKey: token },
|
||||
},
|
||||
defaultRemote: 'local',
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
path.join(TEST_CONFIG_DIR, 'config.json'),
|
||||
JSON.stringify(configFile, null, 2),
|
||||
);
|
||||
|
||||
process.env.TWENTY_APP_ACCESS_TOKEN ??= token;
|
||||
});
|
||||
|
||||
@@ -14,11 +14,9 @@ export default defineConfig({
|
||||
include: ['src/**/*.integration-test.ts'],
|
||||
setupFiles: ['src/__tests__/setup-test.ts'],
|
||||
env: {
|
||||
TWENTY_API_URL: process.env.TWENTY_API_URL ?? 'http://localhost:2020',
|
||||
TWENTY_API_URL: 'http://localhost:3000',
|
||||
TWENTY_API_KEY:
|
||||
process.env.TWENTY_API_KEY ??
|
||||
// Tim Apple (admin) access token for twenty-app-dev
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ1c2VySWQiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtMDY4Ny00YzQxLWI3MDctZWQxYmZjYTk3MmE3IiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtOWUzYi00NmQ0LWE1NTYtODhiOWRkYzJiMDM1IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjQ5MDQ4ODE3MDR9.9S4wc0MOr5iczsomlFxZdOHD1IRDS4dnRSwNVNpctF4',
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
name: CD
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
TWENTY_DEPLOY_URL: http://localhost:3000
|
||||
|
||||
concurrency:
|
||||
group: cd-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
deploy-and-install:
|
||||
if: >-
|
||||
github.event_name == 'push' ||
|
||||
(github.event_name == 'pull_request' && github.event.label.name == 'deploy')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
|
||||
- name: Deploy
|
||||
uses: twentyhq/twenty/.github/actions/deploy-twenty-app@main
|
||||
with:
|
||||
api-url: ${{ env.TWENTY_DEPLOY_URL }}
|
||||
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
|
||||
|
||||
- name: Install
|
||||
uses: twentyhq/twenty/.github/actions/install-twenty-app@main
|
||||
with:
|
||||
api-url: ${{ env.TWENTY_DEPLOY_URL }}
|
||||
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
|
||||
@@ -6,16 +6,9 @@ on:
|
||||
- main
|
||||
pull_request: {}
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
TWENTY_VERSION: latest
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -23,11 +16,12 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Spawn Twenty test instance
|
||||
- name: Spawn Twenty instance
|
||||
id: twenty
|
||||
uses: twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main
|
||||
uses: twentyhq/twenty/.github/actions/spawn-twenty-docker-image@main
|
||||
with:
|
||||
twenty-version: ${{ env.TWENTY_VERSION }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Enable Corepack
|
||||
run: corepack enable
|
||||
@@ -36,7 +30,7 @@ jobs:
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: yarn
|
||||
cache: 'yarn'
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
@@ -45,4 +39,4 @@ jobs:
|
||||
run: yarn test
|
||||
env:
|
||||
TWENTY_API_URL: ${{ steps.twenty.outputs.server-url }}
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.api-key }}
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
|
||||
@@ -3,51 +3,43 @@ import * as os from 'os';
|
||||
import * as path from 'path';
|
||||
import { beforeAll } from 'vitest';
|
||||
|
||||
const CONFIG_DIR = path.join(os.homedir(), '.twenty');
|
||||
const CONFIG_PATH = path.join(CONFIG_DIR, 'config.test.json');
|
||||
|
||||
beforeAll(async () => {
|
||||
const apiUrl = process.env.TWENTY_API_URL!;
|
||||
const token = process.env.TWENTY_API_KEY!;
|
||||
|
||||
if (!apiUrl || !token) {
|
||||
throw new Error(
|
||||
'TWENTY_API_URL and TWENTY_API_KEY must be set.\n' +
|
||||
'Start a local server: yarn twenty server start\n' +
|
||||
'Or set them in vitest env config.',
|
||||
);
|
||||
}
|
||||
const TWENTY_API_URL = process.env.TWENTY_API_URL ?? 'http://localhost:2020';
|
||||
const TEST_CONFIG_DIR = path.join(os.tmpdir(), '.twenty-sdk-test');
|
||||
|
||||
const assertServerIsReachable = async () => {
|
||||
let response: Response;
|
||||
|
||||
try {
|
||||
response = await fetch(`${apiUrl}/healthz`);
|
||||
response = await fetch(`${TWENTY_API_URL}/healthz`);
|
||||
} catch {
|
||||
throw new Error(
|
||||
`Twenty server is not reachable at ${apiUrl}. ` +
|
||||
`Twenty server is not reachable at ${TWENTY_API_URL}. ` +
|
||||
'Make sure the server is running before executing integration tests.',
|
||||
);
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`Server at ${apiUrl} returned ${response.status}`);
|
||||
throw new Error(`Server at ${TWENTY_API_URL} returned ${response.status}`);
|
||||
}
|
||||
};
|
||||
|
||||
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
||||
beforeAll(async () => {
|
||||
await assertServerIsReachable();
|
||||
|
||||
fs.mkdirSync(TEST_CONFIG_DIR, { recursive: true });
|
||||
|
||||
const configFile = {
|
||||
remotes: {
|
||||
local: {
|
||||
apiUrl: process.env.TWENTY_API_URL,
|
||||
apiKey: process.env.TWENTY_API_KEY,
|
||||
},
|
||||
},
|
||||
defaultRemote: 'local',
|
||||
};
|
||||
|
||||
fs.writeFileSync(
|
||||
CONFIG_PATH,
|
||||
JSON.stringify(
|
||||
{
|
||||
remotes: {
|
||||
local: { apiUrl, apiKey: token },
|
||||
},
|
||||
defaultRemote: 'local',
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
path.join(TEST_CONFIG_DIR, 'config.json'),
|
||||
JSON.stringify(configFile, null, 2),
|
||||
);
|
||||
|
||||
process.env.TWENTY_APP_ACCESS_TOKEN ??= token;
|
||||
});
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
import { CoreApiClient } from 'twenty-client-sdk/core';
|
||||
import { definePostInstallLogicFunction } from 'twenty-sdk';
|
||||
|
||||
const POST_CARDS_TO_SEED = [
|
||||
{
|
||||
name: 'Greetings from Paris',
|
||||
content:
|
||||
'Wish you were here! The Eiffel Tower looks even better in person. - Alex',
|
||||
},
|
||||
{
|
||||
name: 'Hello from Tokyo',
|
||||
content:
|
||||
'The cherry blossoms are amazing this time of year. See you soon! - Sam',
|
||||
},
|
||||
];
|
||||
|
||||
const handler = async (): Promise<{
|
||||
message: string;
|
||||
createdIds: string[];
|
||||
}> => {
|
||||
console.log('Seeding 2 post cards...');
|
||||
const client = new CoreApiClient();
|
||||
|
||||
const createdIds: string[] = [];
|
||||
|
||||
for (const postCard of POST_CARDS_TO_SEED) {
|
||||
const { createPostCard } = await client.mutation({
|
||||
createPostCard: {
|
||||
__args: {
|
||||
data: {
|
||||
name: postCard.name,
|
||||
content: postCard.content,
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!createPostCard?.id) {
|
||||
throw new Error(`Failed to create post card "${postCard.name}"`);
|
||||
}
|
||||
|
||||
createdIds.push(createPostCard.id);
|
||||
}
|
||||
|
||||
console.log('Seeding complete!');
|
||||
return {
|
||||
message: `Seeded ${createdIds.length} post cards`,
|
||||
createdIds,
|
||||
};
|
||||
};
|
||||
|
||||
export default definePostInstallLogicFunction({
|
||||
universalIdentifier: '9f3d8c21-b471-4a82-8e5c-6f3a7b8c9d01',
|
||||
name: 'seed-post-cards',
|
||||
description: 'Seeds the workspace with 2 sample post card records.',
|
||||
timeoutSeconds: 10,
|
||||
handler,
|
||||
});
|
||||
@@ -33,7 +33,7 @@ export default defineRole({
|
||||
objectUniversalIdentifier: POST_CARD_UNIVERSAL_IDENTIFIER,
|
||||
fieldUniversalIdentifier: CONTENT_FIELD_UNIVERSAL_IDENTIFIER,
|
||||
canReadFieldValue: false,
|
||||
canUpdateFieldValue: true,
|
||||
canUpdateFieldValue: false,
|
||||
},
|
||||
],
|
||||
permissionFlags: [PermissionFlag.APPLICATIONS],
|
||||
|
||||
@@ -14,11 +14,8 @@ export default defineConfig({
|
||||
include: ['src/**/*.integration-test.ts'],
|
||||
setupFiles: ['src/__tests__/setup-test.ts'],
|
||||
env: {
|
||||
TWENTY_API_URL: process.env.TWENTY_API_URL ?? 'http://localhost:2020',
|
||||
TWENTY_API_KEY:
|
||||
process.env.TWENTY_API_KEY ??
|
||||
// Tim Apple (admin) access token for twenty-app-dev
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ1c2VySWQiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtMDY4Ny00YzQxLWI3MDctZWQxYmZjYTk3MmE3IiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtOWUzYi00NmQ0LWE1NTYtODhiOWRkYzJiMDM1IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjQ5MDQ4ODE3MDR9.9S4wc0MOr5iczsomlFxZdOHD1IRDS4dnRSwNVNpctF4',
|
||||
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "twenty-client-sdk",
|
||||
"version": "0.9.0-canary.0",
|
||||
"version": "0.8.0",
|
||||
"sideEffects": false,
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
|
||||
@@ -584,7 +584,7 @@ type ViewField {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
isOverridden: Boolean @deprecated(reason: "isOverridden is deprecated")
|
||||
isOverridden: Boolean!
|
||||
}
|
||||
|
||||
enum AggregateOperations {
|
||||
@@ -693,7 +693,7 @@ type ViewFieldGroup {
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
viewFields: [ViewField!]!
|
||||
isOverridden: Boolean! @deprecated(reason: "isOverridden is deprecated")
|
||||
isOverridden: Boolean!
|
||||
}
|
||||
|
||||
type View {
|
||||
@@ -899,7 +899,7 @@ type PageLayoutWidget {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
isOverridden: Boolean @deprecated(reason: "isOverridden is deprecated")
|
||||
isOverridden: Boolean!
|
||||
}
|
||||
|
||||
enum WidgetType {
|
||||
@@ -1233,7 +1233,7 @@ type PageLayoutTab {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
isOverridden: Boolean @deprecated(reason: "isOverridden is deprecated")
|
||||
isOverridden: Boolean!
|
||||
}
|
||||
|
||||
type PageLayout {
|
||||
@@ -2575,7 +2575,7 @@ type CommandMenuItem {
|
||||
position: Float!
|
||||
isPinned: Boolean!
|
||||
availabilityType: CommandMenuItemAvailabilityType!
|
||||
payload: CommandMenuItemPayload
|
||||
payload: JSON
|
||||
hotKeys: [String!]
|
||||
conditionalAvailabilityExpression: String
|
||||
availabilityObjectMetadataId: UUID
|
||||
@@ -2659,16 +2659,6 @@ enum CommandMenuItemAvailabilityType {
|
||||
FALLBACK
|
||||
}
|
||||
|
||||
union CommandMenuItemPayload = PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload
|
||||
|
||||
type PathCommandMenuItemPayload {
|
||||
path: String!
|
||||
}
|
||||
|
||||
type ObjectMetadataCommandMenuItemPayload {
|
||||
objectMetadataItemId: UUID!
|
||||
}
|
||||
|
||||
type ToolIndexEntry {
|
||||
name: String!
|
||||
description: String!
|
||||
@@ -3471,7 +3461,6 @@ type Mutation {
|
||||
destroyPageLayout(id: String!): Boolean!
|
||||
updatePageLayoutWithTabsAndWidgets(id: String!, input: UpdatePageLayoutWithTabsInput!): PageLayout!
|
||||
resetPageLayoutWidgetToDefault(id: String!): PageLayoutWidget!
|
||||
resetPageLayoutTabToDefault(id: String!): PageLayoutTab!
|
||||
createPageLayoutWidget(input: CreatePageLayoutWidgetInput!): PageLayoutWidget!
|
||||
updatePageLayoutWidget(id: String!, input: UpdatePageLayoutWidgetInput!): PageLayoutWidget!
|
||||
destroyPageLayoutWidget(id: String!): Boolean!
|
||||
|
||||
@@ -416,8 +416,7 @@ export interface ViewField {
|
||||
createdAt: Scalars['DateTime']
|
||||
updatedAt: Scalars['DateTime']
|
||||
deletedAt?: Scalars['DateTime']
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: Scalars['Boolean']
|
||||
isOverridden: Scalars['Boolean']
|
||||
__typename: 'ViewField'
|
||||
}
|
||||
|
||||
@@ -494,7 +493,6 @@ export interface ViewFieldGroup {
|
||||
updatedAt: Scalars['DateTime']
|
||||
deletedAt?: Scalars['DateTime']
|
||||
viewFields: ViewField[]
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden: Scalars['Boolean']
|
||||
__typename: 'ViewFieldGroup'
|
||||
}
|
||||
@@ -674,8 +672,7 @@ export interface PageLayoutWidget {
|
||||
createdAt: Scalars['DateTime']
|
||||
updatedAt: Scalars['DateTime']
|
||||
deletedAt?: Scalars['DateTime']
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: Scalars['Boolean']
|
||||
isOverridden: Scalars['Boolean']
|
||||
__typename: 'PageLayoutWidget'
|
||||
}
|
||||
|
||||
@@ -959,8 +956,7 @@ export interface PageLayoutTab {
|
||||
createdAt: Scalars['DateTime']
|
||||
updatedAt: Scalars['DateTime']
|
||||
deletedAt?: Scalars['DateTime']
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: Scalars['Boolean']
|
||||
isOverridden: Scalars['Boolean']
|
||||
__typename: 'PageLayoutTab'
|
||||
}
|
||||
|
||||
@@ -2290,7 +2286,7 @@ export interface CommandMenuItem {
|
||||
position: Scalars['Float']
|
||||
isPinned: Scalars['Boolean']
|
||||
availabilityType: CommandMenuItemAvailabilityType
|
||||
payload?: CommandMenuItemPayload
|
||||
payload?: Scalars['JSON']
|
||||
hotKeys?: Scalars['String'][]
|
||||
conditionalAvailabilityExpression?: Scalars['String']
|
||||
availabilityObjectMetadataId?: Scalars['UUID']
|
||||
@@ -2304,18 +2300,6 @@ export type EngineComponentKey = 'NAVIGATE_TO_NEXT_RECORD' | 'NAVIGATE_TO_PREVIO
|
||||
|
||||
export type CommandMenuItemAvailabilityType = 'GLOBAL' | 'RECORD_SELECTION' | 'FALLBACK'
|
||||
|
||||
export type CommandMenuItemPayload = (PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload) & { __isUnion?: true }
|
||||
|
||||
export interface PathCommandMenuItemPayload {
|
||||
path: Scalars['String']
|
||||
__typename: 'PathCommandMenuItemPayload'
|
||||
}
|
||||
|
||||
export interface ObjectMetadataCommandMenuItemPayload {
|
||||
objectMetadataItemId: Scalars['UUID']
|
||||
__typename: 'ObjectMetadataCommandMenuItemPayload'
|
||||
}
|
||||
|
||||
export interface ToolIndexEntry {
|
||||
name: Scalars['String']
|
||||
description: Scalars['String']
|
||||
@@ -2923,7 +2907,6 @@ export interface Mutation {
|
||||
destroyPageLayout: Scalars['Boolean']
|
||||
updatePageLayoutWithTabsAndWidgets: PageLayout
|
||||
resetPageLayoutWidgetToDefault: PageLayoutWidget
|
||||
resetPageLayoutTabToDefault: PageLayoutTab
|
||||
createPageLayoutWidget: PageLayoutWidget
|
||||
updatePageLayoutWidget: PageLayoutWidget
|
||||
destroyPageLayoutWidget: Scalars['Boolean']
|
||||
@@ -3530,7 +3513,6 @@ export interface ViewFieldGenqlSelection{
|
||||
createdAt?: boolean | number
|
||||
updatedAt?: boolean | number
|
||||
deletedAt?: boolean | number
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
@@ -3605,7 +3587,6 @@ export interface ViewFieldGroupGenqlSelection{
|
||||
updatedAt?: boolean | number
|
||||
deletedAt?: boolean | number
|
||||
viewFields?: ViewFieldGenqlSelection
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
@@ -3777,7 +3758,6 @@ export interface PageLayoutWidgetGenqlSelection{
|
||||
createdAt?: boolean | number
|
||||
updatedAt?: boolean | number
|
||||
deletedAt?: boolean | number
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
@@ -4089,7 +4069,6 @@ export interface PageLayoutTabGenqlSelection{
|
||||
createdAt?: boolean | number
|
||||
updatedAt?: boolean | number
|
||||
deletedAt?: boolean | number
|
||||
/** @deprecated isOverridden is deprecated */
|
||||
isOverridden?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
@@ -5507,7 +5486,7 @@ export interface CommandMenuItemGenqlSelection{
|
||||
position?: boolean | number
|
||||
isPinned?: boolean | number
|
||||
availabilityType?: boolean | number
|
||||
payload?: CommandMenuItemPayloadGenqlSelection
|
||||
payload?: boolean | number
|
||||
hotKeys?: boolean | number
|
||||
conditionalAvailabilityExpression?: boolean | number
|
||||
availabilityObjectMetadataId?: boolean | number
|
||||
@@ -5518,24 +5497,6 @@ export interface CommandMenuItemGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface CommandMenuItemPayloadGenqlSelection{
|
||||
on_PathCommandMenuItemPayload?:PathCommandMenuItemPayloadGenqlSelection,
|
||||
on_ObjectMetadataCommandMenuItemPayload?:ObjectMetadataCommandMenuItemPayloadGenqlSelection,
|
||||
__typename?: boolean | number
|
||||
}
|
||||
|
||||
export interface PathCommandMenuItemPayloadGenqlSelection{
|
||||
path?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ObjectMetadataCommandMenuItemPayloadGenqlSelection{
|
||||
objectMetadataItemId?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ToolIndexEntryGenqlSelection{
|
||||
name?: boolean | number
|
||||
description?: boolean | number
|
||||
@@ -6196,7 +6157,6 @@ export interface MutationGenqlSelection{
|
||||
destroyPageLayout?: { __args: {id: Scalars['String']} }
|
||||
updatePageLayoutWithTabsAndWidgets?: (PageLayoutGenqlSelection & { __args: {id: Scalars['String'], input: UpdatePageLayoutWithTabsInput} })
|
||||
resetPageLayoutWidgetToDefault?: (PageLayoutWidgetGenqlSelection & { __args: {id: Scalars['String']} })
|
||||
resetPageLayoutTabToDefault?: (PageLayoutTabGenqlSelection & { __args: {id: Scalars['String']} })
|
||||
createPageLayoutWidget?: (PageLayoutWidgetGenqlSelection & { __args: {input: CreatePageLayoutWidgetInput} })
|
||||
updatePageLayoutWidget?: (PageLayoutWidgetGenqlSelection & { __args: {id: Scalars['String'], input: UpdatePageLayoutWidgetInput} })
|
||||
destroyPageLayoutWidget?: { __args: {id: Scalars['String']} }
|
||||
@@ -8469,30 +8429,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const CommandMenuItemPayload_possibleTypes: string[] = ['PathCommandMenuItemPayload','ObjectMetadataCommandMenuItemPayload']
|
||||
export const isCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is CommandMenuItemPayload => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isCommandMenuItemPayload"')
|
||||
return CommandMenuItemPayload_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const PathCommandMenuItemPayload_possibleTypes: string[] = ['PathCommandMenuItemPayload']
|
||||
export const isPathCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is PathCommandMenuItemPayload => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isPathCommandMenuItemPayload"')
|
||||
return PathCommandMenuItemPayload_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const ObjectMetadataCommandMenuItemPayload_possibleTypes: string[] = ['ObjectMetadataCommandMenuItemPayload']
|
||||
export const isObjectMetadataCommandMenuItemPayload = (obj?: { __typename?: any } | null): obj is ObjectMetadataCommandMenuItemPayload => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isObjectMetadataCommandMenuItemPayload"')
|
||||
return ObjectMetadataCommandMenuItemPayload_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const ToolIndexEntry_possibleTypes: string[] = ['ToolIndexEntry']
|
||||
export const isToolIndexEntry = (obj?: { __typename?: any } | null): obj is ToolIndexEntry => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isToolIndexEntry"')
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -756,7 +756,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
After syncing with `yarn twenty dev` (or running a one-shot `yarn twenty dev --once`), the quick action appears in the top-right corner of the page:
|
||||
After syncing with `yarn twenty dev`, the quick action appears in the top-right corner of the page:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Quick action button in the top-right corner" />
|
||||
@@ -1402,7 +1402,7 @@ export default defineFrontComponent({
|
||||
|
||||
### How bundling works
|
||||
|
||||
The build step uses esbuild to produce a single self-contained file per logic function and per front component. All imported packages are inlined into the bundle.
|
||||
The build step (`yarn twenty dev` or `yarn twenty build`) uses esbuild to produce a single self-contained file per logic function and per front component. All imported packages are inlined into the bundle.
|
||||
|
||||
**Logic functions** run in a Node.js environment. Node built-in modules (`fs`, `path`, `crypto`, `http`, etc.) are available and do not need to be installed.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ Dev mode is only available on Twenty instances running in development (`NODE_ENV
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Dev mode terminal output" />
|
||||
</div>
|
||||
|
||||
#### One-shot sync with `yarn twenty dev --once`
|
||||
|
||||
If you do not want a watcher running in the background (for example in a CI pipeline, a git hook, or a scripted workflow), pass the `--once` flag. It runs the same pipeline as `yarn twenty dev` — build manifest, bundle files, upload, sync, regenerate the typed API client — but **exits as soon as the sync completes**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Command | Behavior | When to use |
|
||||
|---------|----------|-------------|
|
||||
| `yarn twenty dev` | Watches your source files and re-syncs on every change. Keeps running until you stop it. | Interactive local development — you want the live status panel and instant feedback loop. |
|
||||
| `yarn twenty dev --once` | Performs a single build + sync, then exits with code `0` on success or `1` on failure. | Scripts, CI, pre-commit hooks, AI agents, and any non-interactive workflow. |
|
||||
|
||||
Both modes require a Twenty server running in development mode and an authenticated remote — the same prerequisites apply.
|
||||
|
||||
### See your app in Twenty
|
||||
|
||||
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in your browser. Navigate to **Settings > Apps** and select the **Developer** tab. You should see your app listed under **Your Apps**:
|
||||
|
||||
@@ -66,18 +66,12 @@ The share link uses the server's base URL (without any workspace subdomain) so i
|
||||
|
||||
### Version management
|
||||
|
||||
When updating an already deployed tarball app, the server requires the `version` in `package.json` to be **strictly higher** (per [semver](https://semver.org) ordering) than the currently deployed version. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
To release an update:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. Bump the `version` field in your `package.json`
|
||||
2. Run `yarn twenty deploy` (or `yarn twenty deploy --remote production`)
|
||||
3. Workspaces that have the app installed will see the upgrade available in their settings
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## Publishing to npm
|
||||
@@ -195,12 +189,3 @@ You can also install apps from the command line:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
- Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
- Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -755,7 +755,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
بعد المزامنة باستخدام `yarn twenty dev` (أو تشغيل الأمر لمرة واحدة `yarn twenty dev --once`)، يظهر الإجراء السريع في الزاوية العلوية اليمنى من الصفحة:
|
||||
بعد المزامنة باستخدام `yarn twenty dev`، يظهر الإجراء السريع في الزاوية العلوية اليمنى من الصفحة:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="زر إجراء سريع في الزاوية العلوية اليمنى" />
|
||||
@@ -1401,7 +1401,7 @@ export default defineFrontComponent({
|
||||
|
||||
### كيف يعمل التجميع
|
||||
|
||||
تستخدم خطوة البناء أداة esbuild لإنتاج ملف واحد مستقل لكل دالة منطقية ولكل مكوّن أمامي. تُضمَّن جميع الحزم المستوردة داخل الحزمة.
|
||||
تستخدم خطوة البناء (`yarn twenty dev` أو `yarn twenty build`) أداة esbuild لإنتاج ملف واحد مستقل لكل دالة منطقية وكل مكوّن أمامي. تُضمَّن جميع الحزم المستوردة داخل الحزمة.
|
||||
|
||||
**الدوال المنطقية** تعمل في بيئة Node.js. الوحدات المدمجة في Node (`fs` و`path` و`crypto` و`http` وغيرها) متاحة ولا تحتاج إلى تثبيت.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ yarn twenty dev --verbose
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="مخرجات الطرفية في وضع التطوير" />
|
||||
</div>
|
||||
|
||||
#### مزامنة لمرة واحدة باستخدام `yarn twenty dev --once`
|
||||
|
||||
إذا كنت لا تريد تشغيل مراقب في الخلفية (مثلًا في خط أنابيب CI، أو خطاف Git، أو سير عمل مُؤتمت عبر سكربت)، فمرِّر الخيار `--once`. يُشغِّل خط الأنابيب نفسه مثل `yarn twenty dev` — إنشاء بيان البناء، تجميع الملفات، الرفع، المزامنة، إعادة توليد عميل API مضبوط الأنواع — ولكنه **ينهي التنفيذ فور اكتمال المزامنة**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| أمر | السلوك | متى يُستخدم |
|
||||
| ------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | يراقب ملفات المصدر ويعيد المزامنة عند كل تغيير. يستمر بالتشغيل حتى توقفه. | تطوير محلي تفاعلي — تريد لوحة حالة مباشرة وحلقة تغذية راجعة فورية. |
|
||||
| `yarn twenty dev --once` | يجري عملية بناء واحدة + مزامنة واحدة، ثم ينهي التنفيذ برمز `0` عند النجاح أو `1` عند الفشل. | البرامج النصية، وCI، وخطافات ما قبل الالتزام، ووكلاء الذكاء الاصطناعي، وأي سير عمل غير تفاعلي. |
|
||||
|
||||
كلا الوضعين يتطلبان خادم Twenty يعمل في وضع التطوير وجهة بعيدة موثَّقة — تنطبق المتطلبات المسبقة نفسها.
|
||||
|
||||
### اعرض تطبيقك في Twenty
|
||||
|
||||
افتح [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) في متصفحك. انتقل إلى **Settings > Apps** واختر علامة التبويب **Developer**. يُفترض أن ترى تطبيقك مُدرجًا تحت **Your Apps**:
|
||||
|
||||
@@ -66,18 +66,12 @@ yarn twenty deploy
|
||||
|
||||
### إدارة الإصدارات
|
||||
|
||||
عند تحديث تطبيق tarball منشور مسبقًا، يشترط الخادم أن تكون قيمة `version` في `package.json` **أعلى قطعًا** (وفق ترتيب [الإصدار الدلالي](https://semver.org)) من الإصدار المنشور حاليًا. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
لطرح تحديث:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. ارفع قيمة الحقل `version` في ملف `package.json`
|
||||
2. شغّل `yarn twenty deploy` (أو `yarn twenty deploy --remote production`)
|
||||
3. سترى مساحات العمل التي ثبّتت التطبيق الترقية متاحة في إعداداتها
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## النشر على npm
|
||||
@@ -195,12 +189,3 @@ jobs:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ description: دليل شامل لاستكشاف أخطاء استيراد CSV و
|
||||
#### تاريخ
|
||||
|
||||
**المشكلة:** تنسيق تاريخ غير معروف
|
||||
**الحل:** استخدم تنسيق `YYYY-MM-DD` بشكل متّسق في جميع أنحاء الملف
|
||||
**الحل:** استخدم تنسيقًا متّسقًا في جميع أنحاء الملف
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recommended)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### هاتف
|
||||
|
||||
@@ -103,6 +103,8 @@ description: دليل كامل خطوة بخطوة لتنسيق بياناتك
|
||||
استخدم تنسيقًا موحدًا في كامل ملفك:
|
||||
|
||||
* `YYYY-MM-DD` (مُوصى به): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### حقول الأرقام
|
||||
|
||||
@@ -756,7 +756,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Po synchronizaci pomocí `yarn twenty dev` (nebo po jednorázovém spuštění `yarn twenty dev --once`) se rychlá akce zobrazí v pravém horním rohu stránky:
|
||||
Po synchronizaci pomocí `yarn twenty dev` se rychlá akce zobrazí v pravém horním rohu stránky:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Tlačítko rychlé akce v pravém horním rohu" />
|
||||
@@ -1402,7 +1402,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Jak funguje bundlování
|
||||
|
||||
Krok sestavení používá esbuild k vytvoření jediného samostatného souboru pro každou logickou funkci a každou frontendovou komponentu. Všechny importované balíčky jsou vloženy přímo do bundlu.
|
||||
Krok sestavení (`yarn twenty dev` nebo `yarn twenty build`) používá esbuild k vytvoření jediného samostatného souboru pro každou logickou funkci a každou frontendovou komponentu. Všechny importované balíčky jsou vloženy přímo do bundlu.
|
||||
|
||||
**Logické funkce** běží v prostředí Node.js. Vestavěné moduly Node (`fs`, `path`, `crypto`, `http` atd.) jsou k dispozici a není je třeba instalovat.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ Vývojový režim je k dispozici pouze na instancích Twenty běžících v rež
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Výstup terminálu ve vývojovém režimu" />
|
||||
</div>
|
||||
|
||||
#### Jednorázová synchronizace pomocí `yarn twenty dev --once`
|
||||
|
||||
Pokud nechcete, aby na pozadí běžel watcher (například v CI pipeline, git hooku nebo skriptovaném workflow), použijte příznak `--once`. Spouští stejnou pipeline jako `yarn twenty dev` — sestaví manifest, zabalí soubory, nahraje, synchronizuje, znovu vygeneruje typovaného klienta API — ale **ukončí se, jakmile se synchronizace dokončí**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Příkaz | Chování | Kdy použít |
|
||||
| ------------------------ | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Sleduje vaše zdrojové soubory a při každé změně znovu spustí synchronizaci. Zůstává spuštěný, dokud jej nezastavíte. | Interaktivní lokální vývoj — chcete živý panel stavu a okamžitou zpětnovazebnou smyčku. |
|
||||
| `yarn twenty dev --once` | Provede jedno sestavení + synchronizaci, poté ukončí běh s kódem `0` při úspěchu nebo `1` při neúspěchu. | Skripty, CI, pre-commit hooky, AI agenti a jakýkoli neinteraktivní pracovní postup. |
|
||||
|
||||
Oba režimy vyžadují server Twenty běžící v režimu vývoje a autentizovaný remote — platí stejné požadavky.
|
||||
|
||||
### Zobrazte svou aplikaci v Twenty
|
||||
|
||||
Otevřete ve svém prohlížeči [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer). Přejděte do **Settings > Apps** a vyberte kartu **Developer**. Vaše aplikace by měla být uvedena v části **Your Apps**:
|
||||
|
||||
@@ -66,18 +66,12 @@ Odkaz ke sdílení používá základní adresu URL serveru (bez jakékoli subdo
|
||||
|
||||
### Správa verzí
|
||||
|
||||
Při aktualizaci již nasazené tarballové aplikace server vyžaduje, aby hodnota `version` v `package.json` byla **přísně vyšší** (podle řazení [semver](https://semver.org)) než aktuálně nasazená verze. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
Chcete-li vydat aktualizaci:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. Zvyšte hodnotu pole `version` v souboru `package.json`
|
||||
2. Spusťte `yarn twenty deploy` (nebo `yarn twenty deploy --remote production`)
|
||||
3. Pracovní prostory, které mají aplikaci nainstalovanou, uvidí dostupnou aktualizaci ve svém nastavení
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## Publikování na npm
|
||||
@@ -195,12 +189,3 @@ Aplikace můžete nainstalovat také z příkazového řádku:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ Data neodpovídají očekávanému formátu pro tento typ pole.
|
||||
#### Datum
|
||||
|
||||
**Problém:** Nerozpoznaný formát data
|
||||
**Řešení:** Používejte formát `YYYY-MM-DD` jednotně v celém souboru
|
||||
**Řešení:** Používejte jednotný formát v celém souboru
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recommended)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Telefon
|
||||
|
||||
@@ -103,6 +103,8 @@ Adresa je **vnořené pole** s více sloupci (některé mohou zůstat prázdné)
|
||||
Používejte jednotný formát v celém souboru:
|
||||
|
||||
* `YYYY-MM-DD` (doporučeno): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Číselná pole
|
||||
|
||||
@@ -755,7 +755,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Nach dem Synchronisieren mit `yarn twenty dev` (oder durch einmaliges Ausführen von `yarn twenty dev --once`) erscheint die Schnellaktion oben rechts auf der Seite:
|
||||
Nach dem Synchronisieren mit `yarn twenty dev` erscheint die Schnellaktion oben rechts auf der Seite:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Schnellaktionsschaltfläche oben rechts" />
|
||||
@@ -1401,7 +1401,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Wie das Bundling funktioniert
|
||||
|
||||
Der Build-Schritt verwendet esbuild, um pro Logikfunktion und pro Frontend-Komponente eine einzelne, in sich geschlossene Datei zu erzeugen. Alle importierten Pakete werden in das Bundle eingebettet.
|
||||
Der Build-Schritt (`yarn twenty dev` oder `yarn twenty build`) verwendet esbuild, um pro Logikfunktion und pro Frontend-Komponente eine einzelne, in sich geschlossene Datei zu erzeugen. Alle importierten Pakete werden in das Bundle eingebettet.
|
||||
|
||||
**Logikfunktionen** laufen in einer Node.js-Umgebung. Eingebaute Node.js-Module (`fs`, `path`, `crypto`, `http` usw.) stehen zur Verfügung und müssen nicht installiert werden.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ Der Dev-Modus ist nur auf Twenty-Instanzen verfügbar, die im Entwicklungsmodus
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Terminalausgabe im Dev-Modus" />
|
||||
</div>
|
||||
|
||||
#### Einmalige Synchronisierung mit `yarn twenty dev --once`
|
||||
|
||||
Wenn Sie keinen Watcher im Hintergrund ausführen lassen möchten (zum Beispiel in einer CI-Pipeline, einem Git-Hook oder einem skriptgesteuerten Workflow), geben Sie das Flag `--once` an. Es führt dieselbe Pipeline aus wie `yarn twenty dev` — Build-Manifest erstellen, Dateien bündeln, hochladen, synchronisieren, den typisierten API-Client neu generieren — beendet sich jedoch, **sobald die Synchronisierung abgeschlossen ist**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Befehl | Verhalten | Wann verwenden |
|
||||
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Überwacht Ihre Quelldateien und synchronisiert bei jeder Änderung erneut. Läuft weiter, bis Sie es stoppen. | Interaktive lokale Entwicklung — Sie möchten das Live-Status-Panel und eine sofortige Feedback-Schleife. |
|
||||
| `yarn twenty dev --once` | Führt einen einzelnen Build + Sync aus und beendet sich anschließend mit Code `0` bei Erfolg oder `1` bei einem Fehler. | Skripte, CI, Pre-Commit-Hooks, KI-Agenten und jeder nicht-interaktive Workflow. |
|
||||
|
||||
Beide Modi erfordern einen Twenty-Server, der im Entwicklungsmodus läuft, und ein authentifiziertes Remote — es gelten dieselben Voraussetzungen.
|
||||
|
||||
### Sehen Sie sich Ihre App in Twenty an
|
||||
|
||||
Öffnen Sie [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in Ihrem Browser. Navigieren Sie zu **Settings > Apps** und wählen Sie die Registerkarte **Developer**. Unter **Your Apps** sollte Ihre App aufgeführt sein:
|
||||
|
||||
@@ -66,18 +66,12 @@ Der Freigabelink verwendet die Basis-URL des Servers (ohne Workspace-Subdomain),
|
||||
|
||||
### Versionsverwaltung
|
||||
|
||||
Beim Aktualisieren einer bereits bereitgestellten Tarball-App verlangt der Server, dass die `version` in `package.json` **strikt höher** (gemäß der [semver](https://semver.org)-Reihenfolge) ist als die derzeit bereitgestellte Version. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
So veröffentlichen Sie ein Update:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. Erhöhen Sie das Feld `version` in Ihrer `package.json`
|
||||
2. Führen Sie `yarn twenty deploy` aus (oder `yarn twenty deploy --remote production`)
|
||||
3. Arbeitsbereiche, die die App installiert haben, sehen in ihren Einstellungen, dass ein Upgrade verfügbar ist.
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## Auf npm veröffentlichen
|
||||
@@ -195,12 +189,3 @@ Sie können Apps auch über die Befehlszeile installieren:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ Die Daten entsprechen nicht dem erwarteten Format für diesen Feldtyp.
|
||||
#### Datum
|
||||
|
||||
**Problem:** Nicht erkanntes Datumsformat
|
||||
**Lösung:** Verwenden Sie in der gesamten Datei durchgängig das Format `YYYY-MM-DD`
|
||||
**Lösung:** Verwenden Sie in der gesamten Datei ein einheitliches Format
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - empfohlen)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Telefon
|
||||
|
||||
@@ -103,6 +103,8 @@ Adresse ist ein **verschachteltes Feld** mit mehreren Spalten (einige können le
|
||||
Verwenden Sie in Ihrer Datei ein einheitliches Format:
|
||||
|
||||
* `YYYY-MM-DD` (empfohlen): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Zahlenfelder
|
||||
|
||||
@@ -755,7 +755,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Dopo la sincronizzazione con `yarn twenty dev` (o eseguendo una volta sola `yarn twenty dev --once`), l'azione rapida appare nell'angolo in alto a destra della pagina:
|
||||
Dopo la sincronizzazione con `yarn twenty dev`, l'azione rapida appare nell'angolo in alto a destra della pagina:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Pulsante di azione rapida nell'angolo in alto a destra" />
|
||||
@@ -1401,7 +1401,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Come funziona il bundling
|
||||
|
||||
La fase di build usa esbuild per produrre un singolo file autonomo per ogni funzione logica e per ogni componente front-end. Tutti i pacchetti importati sono incorporati nel bundle.
|
||||
La fase di build (`yarn twenty dev` o `yarn twenty build`) usa esbuild per produrre un singolo file autonomo per ogni funzione logica e per ogni componente front-end. Tutti i pacchetti importati sono incorporati nel bundle.
|
||||
|
||||
**Le funzioni logiche** vengono eseguite in un ambiente Node.js. I moduli integrati di Node (`fs`, `path`, `crypto`, `http`, ecc.) sono disponibili e non necessitano di essere installati.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ La modalità di sviluppo è disponibile solo sulle istanze di Twenty in esecuzio
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Output del terminale in modalità sviluppo" />
|
||||
</div>
|
||||
|
||||
#### Sincronizzazione una tantum con `yarn twenty dev --once`
|
||||
|
||||
Se non vuoi un watcher in esecuzione in background (ad esempio in una pipeline CI, un hook di Git o un flusso di lavoro scriptato), passa il flag `--once`. Esegue la stessa pipeline di `yarn twenty dev` — genera il manifest, effettua il bundling dei file, carica, sincronizza, rigenera il client API tipizzato — ma **termina non appena la sincronizzazione è completata**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Comando | Comportamento | Quando usarlo |
|
||||
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Monitora i file sorgente e risincronizza a ogni modifica. Rimane in esecuzione finché non lo interrompi. | Sviluppo locale interattivo — vuoi il pannello di stato in tempo reale e un ciclo di feedback immediato. |
|
||||
| `yarn twenty dev --once` | Esegue una singola build + sincronizzazione, quindi termina con codice `0` in caso di successo o `1` in caso di errore. | Script, CI, hook pre-commit, agenti IA e qualsiasi flusso di lavoro non interattivo. |
|
||||
|
||||
Entrambe le modalità richiedono un server Twenty in esecuzione in modalità di sviluppo e un remote autenticato — si applicano gli stessi prerequisiti.
|
||||
|
||||
### Visualizza la tua app in Twenty
|
||||
|
||||
Apri [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) nel browser. Vai su **Settings > Apps** e seleziona la scheda **Developer**. Dovresti vedere la tua app elencata in **Your Apps**:
|
||||
|
||||
@@ -66,18 +66,12 @@ Il link di condivisione utilizza l'URL di base del server (senza alcun sottodomi
|
||||
|
||||
### Gestione delle versioni
|
||||
|
||||
Quando si aggiorna un'app in formato tarball già distribuita, il server richiede che la `version` in `package.json` sia **strettamente superiore** (per l'ordinamento [semver](https://semver.org)) rispetto alla versione attualmente distribuita. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
Per rilasciare un aggiornamento:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. Incrementa il campo `version` nel tuo `package.json`
|
||||
2. Esegui `yarn twenty deploy` (oppure `yarn twenty deploy --remote production`)
|
||||
3. Gli spazi di lavoro che hanno l'app installata vedranno l'aggiornamento disponibile nelle proprie impostazioni
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## Pubblicazione su npm
|
||||
@@ -195,12 +189,3 @@ Puoi anche installare le app dalla riga di comando:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ I dati non corrispondono al formato previsto per quel tipo di campo.
|
||||
#### Data
|
||||
|
||||
**Problema:** formato data non riconosciuto
|
||||
**Soluzione:** Usa il formato `YYYY-MM-DD` in modo coerente in tutto il file
|
||||
**Soluzione:** usa un formato coerente in tutto il file
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recommended)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Telefono
|
||||
|
||||
@@ -103,6 +103,8 @@ Indirizzo è un **campo annidato** con più colonne (alcune possono essere lasci
|
||||
Usa un formato coerente in tutto il file:
|
||||
|
||||
* `YYYY-MM-DD` (consigliato): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Campi numerici
|
||||
|
||||
@@ -755,7 +755,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Após sincronizar com `yarn twenty dev` (ou executando uma única vez o `yarn twenty dev --once`), a ação rápida aparece no canto superior direito da página:
|
||||
Após sincronizar com `yarn twenty dev`, a ação rápida aparece no canto superior direito da página:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Botão de ação rápida no canto superior direito" />
|
||||
@@ -1401,7 +1401,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Como o empacotamento funciona
|
||||
|
||||
A etapa de build usa o esbuild para produzir um único arquivo independente por função lógica e por componente de front-end. Todos os pacotes importados são incorporados ao bundle.
|
||||
A etapa de build (`yarn twenty dev` ou `yarn twenty build`) usa o esbuild para produzir um único arquivo independente por função lógica e por componente de front-end. Todos os pacotes importados são incorporados ao bundle.
|
||||
|
||||
**Funções lógicas** são executadas em um ambiente Node.js. Módulos nativos do Node (`fs`, `path`, `crypto`, `http`, etc.) estão disponíveis e não precisam ser instalados.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ O modo de desenvolvimento só está disponível em instâncias do Twenty em modo
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Saída do terminal no modo de desenvolvimento" />
|
||||
</div>
|
||||
|
||||
#### Sincronização única com `yarn twenty dev --once`
|
||||
|
||||
Se você não quiser um monitor em execução em segundo plano (por exemplo, em um pipeline de CI, um hook do git ou um fluxo de trabalho com script), passe a flag `--once`. Ele executa o mesmo pipeline que `yarn twenty dev` — gerar o manifesto, empacotar arquivos, fazer upload, sincronizar, regenerar o cliente de API tipado — mas **encerra assim que a sincronização for concluída**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Comando | Comportamento | Quando usar |
|
||||
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Monitora seus arquivos-fonte e ressincroniza a cada alteração. Continua em execução até você interrompê-lo. | Desenvolvimento local interativo — você quer o painel de status em tempo real e um ciclo de feedback instantâneo. |
|
||||
| `yarn twenty dev --once` | Executa uma única compilação + sincronização e, em seguida, encerra com o código `0` em caso de sucesso ou `1` em caso de falha. | Scripts, CI, hooks de pre-commit, agentes de IA e qualquer fluxo de trabalho não interativo. |
|
||||
|
||||
Ambos os modos exigem um servidor Twenty em execução no modo de desenvolvimento e um remoto autenticado — aplicam-se os mesmos pré-requisitos.
|
||||
|
||||
### Veja seu aplicativo no Twenty
|
||||
|
||||
Abra [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) no seu navegador. Navegue até **Settings > Apps** e selecione a aba **Developer**. Você deverá ver seu aplicativo listado em **Your Apps**:
|
||||
|
||||
@@ -66,18 +66,12 @@ O link de compartilhamento usa a URL base do servidor (sem qualquer subdomínio
|
||||
|
||||
### Gerenciamento de versões
|
||||
|
||||
Ao atualizar um aplicativo empacotado como tarball já implantado, o servidor exige que o `version` no `package.json` seja **estritamente maior** (de acordo com a ordenação do [semver](https://semver.org)) do que a versão atualmente implantada. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
Para lançar uma atualização:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. Atualize o campo `version` no seu `package.json`
|
||||
2. Execute `yarn twenty deploy` (ou `yarn twenty deploy --remote production`)
|
||||
3. Os espaços de trabalho que têm o aplicativo instalado verão a atualização disponível em suas configurações
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## Publicação no npm
|
||||
@@ -195,12 +189,3 @@ Você também pode instalar apps pela linha de comando:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ Os dados não correspondem ao formato esperado para esse tipo de campo.
|
||||
#### Data
|
||||
|
||||
**Problema:** Formato de data não reconhecido
|
||||
**Solução:** Use o formato `YYYY-MM-DD` de forma consistente em todo o ficheiro
|
||||
**Solução:** Use um formato consistente em todo o ficheiro
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recomendado)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Telefone
|
||||
|
||||
@@ -103,6 +103,8 @@ Endereço é um **campo aninhado** com várias colunas (algumas podem ficar em b
|
||||
Use formatação consistente em todo o seu arquivo:
|
||||
|
||||
* `YYYY-MM-DD` (recomendado): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Campos Numéricos
|
||||
|
||||
@@ -756,7 +756,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
După sincronizarea cu `yarn twenty dev` (sau prin rularea o singură dată a comenzii `yarn twenty dev --once`), acțiunea rapidă apare în colțul din dreapta sus al paginii:
|
||||
După sincronizarea cu `yarn twenty dev`, acțiunea rapidă apare în colțul din dreapta sus al paginii:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Buton de acțiune rapidă în colțul din dreapta sus" />
|
||||
@@ -1402,7 +1402,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Cum funcționează împachetarea
|
||||
|
||||
Pasul de build folosește esbuild pentru a produce un singur fișier autonom pentru fiecare funcție logică și pentru fiecare componentă frontend. Toate pachetele importate sunt integrate în bundle.
|
||||
Pasul de build (`yarn twenty dev` sau `yarn twenty build`) folosește esbuild pentru a produce un singur fișier autonom per funcție logică și per componentă frontend. Toate pachetele importate sunt integrate în bundle.
|
||||
|
||||
**Funcțiile logice** rulează într-un mediu Node.js. Modulele built-in Node (`fs`, `path`, `crypto`, `http` etc.) sunt disponibile și nu trebuie instalate.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ Modul de dezvoltare este disponibil doar pe instanțele Twenty care rulează în
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Ieșirea terminalului în modul de dezvoltare" />
|
||||
</div>
|
||||
|
||||
#### One-shot sync with `yarn twenty dev --once`
|
||||
|
||||
If you do not want a watcher running in the background (for example in a CI pipeline, a git hook, or a scripted workflow), pass the `--once` flag. It runs the same pipeline as `yarn twenty dev` — build manifest, bundle files, upload, sync, regenerate the typed API client — but **exits as soon as the sync completes**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Comandă | Comportament | When to use |
|
||||
| ------------------------ | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Watches your source files and re-syncs on every change. Keeps running until you stop it. | Interactive local development — you want the live status panel and instant feedback loop. |
|
||||
| `yarn twenty dev --once` | Performs a single build + sync, then exits with code `0` on success or `1` on failure. | Scripts, CI, pre-commit hooks, AI agents, and any non-interactive workflow. |
|
||||
|
||||
Both modes require a Twenty server running in development mode and an authenticated remote — the same prerequisites apply.
|
||||
|
||||
### Vedeți aplicația în Twenty
|
||||
|
||||
Deschideți [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) în browser. Navigați la **Settings > Apps** și selectați fila **Developer**. Ar trebui să vedeți aplicația listată la **Your Apps**:
|
||||
|
||||
@@ -755,7 +755,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
После синхронизации с помощью `yarn twenty dev` (или однократного запуска `yarn twenty dev --once`) быстрое действие появится в правом верхнем углу страницы:
|
||||
После синхронизации с помощью `yarn twenty dev` быстрое действие появится в правом верхнем углу страницы:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Кнопка быстрого действия в правом верхнем углу" />
|
||||
@@ -1401,7 +1401,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Как работает бандлинг
|
||||
|
||||
Этап сборки использует esbuild для создания одного самодостаточного файла на каждую логическую функцию и на каждый компонент фронтенда. Все импортированные пакеты встроены в бандл.
|
||||
Этап сборки (`yarn twenty dev` или `yarn twenty build`) использует esbuild для создания одного самодостаточного файла на каждую логическую функцию и на каждый компонент фронтенда. Все импортированные пакеты встроены в бандл.
|
||||
|
||||
**Логические функции** выполняются в среде Node.js. Встроенные модули Node (`fs`, `path`, `crypto`, `http` и т. д.) доступны и не требуют установки.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ yarn twenty dev --verbose
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Вывод терминала в режиме разработки" />
|
||||
</div>
|
||||
|
||||
#### Разовая синхронизация с `yarn twenty dev --once`
|
||||
|
||||
Если вы не хотите, чтобы в фоновом режиме работал наблюдатель (например, в конвейере CI, хуке Git или скриптовом рабочем процессе), передайте флаг `--once`. Он запускает тот же конвейер, что и `yarn twenty dev` — собирает манифест, упаковывает файлы, загружает, синхронизирует, повторно генерирует типизированный клиент API — но **выходит сразу после завершения синхронизации**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Команда | Поведение | Когда использовать |
|
||||
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Отслеживает ваши исходные файлы и повторно синхронизирует при каждом изменении. Продолжает работать, пока вы его не остановите. | Интерактивная локальная разработка — вам нужна панель статуса в реальном времени и мгновенная обратная связь. |
|
||||
| `yarn twenty dev --once` | Выполняет одну сборку и синхронизацию, затем завершает работу с кодом `0` при успехе или `1` при ошибке. | Скрипты, CI, хуки pre-commit, AI-агенты и любые неинтерактивные рабочие процессы. |
|
||||
|
||||
Оба режима требуют сервер Twenty, запущенный в режиме разработки, и аутентифицированный удалённый ресурс — действуют те же предварительные требования.
|
||||
|
||||
### Посмотрите своё приложение в Twenty
|
||||
|
||||
Откройте [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) в браузере. Перейдите в **Settings > Apps** и выберите вкладку **Developer**. Вы должны увидеть своё приложение в разделе **Your Apps**:
|
||||
|
||||
@@ -66,18 +66,12 @@ yarn twenty deploy
|
||||
|
||||
### Управление версиями
|
||||
|
||||
When updating an already deployed tarball app, the server requires the `version` in `package.json` to be **strictly higher** (per [semver](https://semver.org) ordering) than the currently deployed version. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
Чтобы выпустить обновление:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. Обновите значение поля `version` в файле `package.json`
|
||||
2. Выполните `yarn twenty deploy` (или `yarn twenty deploy --remote production`)
|
||||
3. Рабочие пространства, в которых установлено приложение, увидят доступное обновление в своих настройках
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## Публикация в npm
|
||||
@@ -195,12 +189,3 @@ jobs:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ description: Полное руководство по устранению ош
|
||||
#### Дата
|
||||
|
||||
**Проблема:** Нераспознанный формат даты
|
||||
**Решение:** Используйте формат `YYYY-MM-DD` последовательно по всему файлу
|
||||
**Решение:** Используйте единый формат по всему файлу
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recommended)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Телефон
|
||||
|
||||
@@ -103,6 +103,8 @@ Twenty требует уникальности для некоторых пол
|
||||
Используйте единый формат по всему файлу:
|
||||
|
||||
* `YYYY-MM-DD` (рекомендуется): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Числовые поля
|
||||
|
||||
@@ -756,7 +756,7 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
`yarn twenty dev` ile senkronize ettikten sonra (veya tek seferlik bir `yarn twenty dev --once` çalıştırdıktan sonra), hızlı işlem sayfanın sağ üst köşesinde görünür:
|
||||
`yarn twenty dev` ile senkronize ettikten sonra, hızlı işlem sayfanın sağ üst köşesinde görünür:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Sağ üst köşedeki hızlı işlem düğmesi" />
|
||||
@@ -1402,7 +1402,7 @@ export default defineFrontComponent({
|
||||
|
||||
### Paketleme nasıl çalışır
|
||||
|
||||
Derleme adımı, her mantık işlevi ve her ön uç bileşeni için tek bir bağımsız dosya üretmek üzere esbuild kullanır. Tüm içe aktarılan paketler pakete satır içi eklenir.
|
||||
Derleme adımı (`yarn twenty dev` veya `yarn twenty build`), her mantık işlevi ve her ön uç bileşeni için tek bir bağımsız dosya üretmek üzere esbuild kullanır. Tüm içe aktarılan paketler pakete satır içi eklenir.
|
||||
|
||||
**Mantık işlevleri**, Node.js ortamında çalışır. Node yerleşik modülleri (`fs`, `path`, `crypto`, `http` vb.) kullanılabilir ve kurulmaları gerekmez.
|
||||
|
||||
|
||||
@@ -98,21 +98,6 @@ Geliştirme modu yalnızca geliştirme ortamında (`NODE_ENV=development`) çal
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Geliştirme modu terminal çıktısı" />
|
||||
</div>
|
||||
|
||||
#### Tek seferlik eşitleme `yarn twenty dev --once` ile
|
||||
|
||||
Arka planda bir izleyicinin çalışmasını istemiyorsanız (örneğin bir CI ardışık düzeni içinde, bir git hook veya betik tabanlı bir iş akışı içinde), `--once` bayrağını belirtin. `yarn twenty dev` ile aynı ardışık düzeni çalıştırır — derleme manifestosunu oluşturur, dosyaları paketler, yükler, eşitler, tiplendirilmiş API istemcisini yeniden oluşturur — ancak **eşitleme tamamlanır tamamlanmaz çıkış yapar**:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --once
|
||||
```
|
||||
|
||||
| Komut | Davranış | Ne zaman kullanılmalı |
|
||||
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `yarn twenty dev` | Kaynak dosyalarınızı izler ve her değişiklikte yeniden eşitler. Siz durdurana kadar çalışmaya devam eder. | Etkileşimli yerel geliştirme — canlı durum paneli ve anlık geri bildirim döngüsü istersiniz. |
|
||||
| `yarn twenty dev --once` | Tek bir derleme + eşitleme gerçekleştirir, ardından başarı durumunda `0` veya başarısızlık durumunda `1` koduyla çıkar. | Betikler, CI, pre-commit hooks, AI ajanları ve etkileşimsiz herhangi bir iş akışı. |
|
||||
|
||||
Her iki mod da geliştirme modunda çalışan bir Twenty sunucusu ve kimliği doğrulanmış bir uzak gerektirir — aynı önkoşullar geçerlidir.
|
||||
|
||||
### Uygulamanızı Twenty'de görün
|
||||
|
||||
Tarayıcınızda [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) adresini açın. **Settings > Apps** bölümüne gidin ve **Developer** sekmesini seçin. **Your Apps** altında uygulamanızın listelendiğini görmelisiniz:
|
||||
|
||||
@@ -66,18 +66,12 @@ Paylaşım bağlantısı, sunucunun temel URL’sini (herhangi bir çalışma al
|
||||
|
||||
### Sürüm yönetimi
|
||||
|
||||
Halihazırda dağıtılmış bir tarball uygulamasını güncellerken, sunucu `package.json` içindeki `version` değerinin, şu anda dağıtılmış sürümden ([semver](https://semver.org) sıralamasına göre) **kesinlikle daha yüksek** olmasını gerektirir. Re-deploying the same version, or pushing a lower one, is rejected before the tarball is stored — you'll see a `VERSION_ALREADY_EXISTS` error from the CLI.
|
||||
|
||||
Bir güncelleme yayımlamak için:
|
||||
|
||||
1. Bump the `version` field in your `package.json` (e.g. `1.2.3` → `1.2.4`, `1.3.0`, or `2.0.0`)
|
||||
1. `package.json` içindeki `version` alanını artırın
|
||||
2. `yarn twenty deploy` (veya `yarn twenty deploy --remote production`) komutunu çalıştırın
|
||||
3. Uygulamayı kurmuş olan çalışma alanları, ayarlarında mevcut güncellemeyi görecektir
|
||||
|
||||
<Note>
|
||||
Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allowed, and a final release like `1.0.0` is correctly recognized as higher than `1.0.0-rc.5`. The version in `package.json` must itself be a valid semver string.
|
||||
</Note>
|
||||
|
||||
{/* TODO: add screenshot of the Upgrade button */}
|
||||
|
||||
## npm’ye yayımlama
|
||||
@@ -195,12 +189,3 @@ Uygulamaları komut satırından da yükleyebilirsiniz:
|
||||
```bash filename="Terminal"
|
||||
yarn twenty install
|
||||
```
|
||||
|
||||
<Note>
|
||||
The server enforces semver versioning on install, mirroring the rules on deploy:
|
||||
|
||||
* Installing the same version that is already installed in your workspace is rejected with an `APP_ALREADY_INSTALLED` error.
|
||||
* Installing a lower version than the one currently installed is rejected with a `CANNOT_DOWNGRADE_APPLICATION` error.
|
||||
|
||||
To install a newer version, deploy or publish it first, then re-run `yarn twenty install`.
|
||||
</Note>
|
||||
|
||||
@@ -140,12 +140,12 @@ Veriler, o alan türü için beklenen biçimle eşleşmiyor.
|
||||
#### Tarih
|
||||
|
||||
**Sorun:** Tanınmayan tarih biçimi
|
||||
**Çözüm:** Dosya genelinde tutarlı bir şekilde `YYYY-MM-DD` biçimini kullanın
|
||||
**Çözüm:** Dosya genelinde tutarlı bir biçim kullanın
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recommended)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Telefon
|
||||
|
||||
@@ -103,6 +103,8 @@ Adres, birden çok sütundan oluşan **iç içe bir alandır** (bazıları boş
|
||||
Dosyanızın tamamında tutarlı bir biçim kullanın:
|
||||
|
||||
* `YYYY-MM-DD` (önerilir): `2024-03-15`
|
||||
* `MM/DD/YYYY`: `03/15/2024`
|
||||
* `DD/MM/YYYY`: `15/03/2024`
|
||||
* ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Sayı Alanları
|
||||
|
||||
@@ -127,12 +127,12 @@ The data doesn't match the expected format for that field type.
|
||||
|
||||
#### Date
|
||||
**Problem:** Unrecognized date format
|
||||
**Solution:** Use `YYYY-MM-DD` format consistently throughout file
|
||||
**Solution:** Use consistent format throughout file
|
||||
|
||||
```
|
||||
✓ 2024-03-15 (YYYY-MM-DD)
|
||||
❌ 03/15/2024 (MM/DD/YYYY)
|
||||
❌ 15/03/2024 (DD/MM/YYYY)
|
||||
✓ 2024-03-15 (YYYY-MM-DD - recommended)
|
||||
✓ 03/15/2024 (MM/DD/YYYY)
|
||||
✓ 15/03/2024 (DD/MM/YYYY)
|
||||
```
|
||||
|
||||
#### Phone
|
||||
|
||||
@@ -93,6 +93,8 @@ Address is a **nested field** with multiple columns (some can be left empty):
|
||||
### Date Fields
|
||||
Use consistent formatting throughout your file:
|
||||
- `YYYY-MM-DD` (recommended): `2024-03-15`
|
||||
- `MM/DD/YYYY`: `03/15/2024`
|
||||
- `DD/MM/YYYY`: `15/03/2024`
|
||||
- ISO 8601: `2024-03-15T10:30:00Z`
|
||||
|
||||
### Number Fields
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Jy het nie toestemming om toegang tot die {fieldsList}
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} krediete"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "'n Fout het voorgekom tydens die oplaai van die prent."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Paneelbord suksesvol gedupliseer"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Data"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Volle toegang"
|
||||
msgid "Function name"
|
||||
msgstr "Funksienaam"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funksies"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Begin handmatig"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Logbewaring"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Aangemeld as {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Rekordbladsy"
|
||||
msgid "Record Selection"
|
||||
msgstr "Rekord Seleksie"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Rekordtabel"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Stuur e-pos weer"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Stel terug"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Herstel na"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Funksie word uitgevoer"
|
||||
msgid "Running..."
|
||||
msgstr "Word uitgevoer..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Looptyd"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Soek kleure"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Soek kleure..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Instelling van jou databasis..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Oortjie Instellings"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14260,11 +14255,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Hierdie week"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14541,7 +14531,6 @@ msgstr "Probeer tydperk het verstryk. Werk asseblief u faktureringsbesonderhede
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Aansitter"
|
||||
|
||||
@@ -15387,9 +15376,7 @@ msgid "view"
|
||||
msgstr "aansig"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, zero {ليس لديك إذن للوصول إلى حقل {fie
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} أرصدة"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "حدث خطأ أثناء تحميل الصورة."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "تم تكرار لوحة القيادة بنجاح"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "بيانات"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "وصول كامل"
|
||||
msgid "Function name"
|
||||
msgstr "اسم الوظيفة"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "الوظائف"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "التشغيل يدويًا"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "الاحتفاظ بالسجلات"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "تسجيل الدخول كــ {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "صفحة السجل"
|
||||
msgid "Record Selection"
|
||||
msgstr "\\\\"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "جدول السجلات"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "إعادة إرسال البريد الإلكتروني"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "إعادة تعيين"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "\\\\"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "الدالة قيد التشغيل"
|
||||
msgid "Running..."
|
||||
msgstr "جارٍ التنفيذ..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "وقت التشغيل"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "ابحث عن الألوان"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "ابحث عن الألوان..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "إعداد قاعدة البيانات الخاصة بك..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "إعدادات علامة التبويب"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14260,11 +14255,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "هذا الأسبوع"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14541,7 +14531,6 @@ msgstr "انتهت الفترة التجريبية. يرجى تحديث تفاص
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "تحفيز"
|
||||
|
||||
@@ -15387,9 +15376,7 @@ msgid "view"
|
||||
msgstr "عرض"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {No teniu permís per accedir al camp {fieldsList}} othe
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} crèdits"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "S'ha produït un error en carregar la imatge."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Quadre de comandament duplicat correctament"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Dades"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Accés complet"
|
||||
msgid "Function name"
|
||||
msgstr "Nom de la funció"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funcions"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Llança manualment"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Retenció de registres"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Iniciat com {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Pàgina de registre"
|
||||
msgid "Record Selection"
|
||||
msgstr "Selecció d'enregistrament"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Taula de registres"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Reenviar correu electrònic"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Restableix"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Reinicia a"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Funció en execució"
|
||||
msgid "Running..."
|
||||
msgstr "S'està executant..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Entorn d'execució"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Cerca colors"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Cerca colors..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Configurant la teva base de dades..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Configuració de la pestanya"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14260,11 +14255,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Aquesta setmana"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14541,7 +14531,6 @@ msgstr "Prova finalitzada. Si us plau, actualitza les teves dades de facturació
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Activador"
|
||||
|
||||
@@ -15387,9 +15376,7 @@ msgid "view"
|
||||
msgstr "vista"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Nemáte povolení pro přístup k poli {fieldsList}} fe
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} kreditů"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Při nahrávání obrázku došlo k chybě."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Ovládací panel byl úspěšně duplikován"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Data"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Plný přístup"
|
||||
msgid "Function name"
|
||||
msgstr "Název funkce"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funkce"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Spustit ručně"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Uchovávání protokolů"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Přihlášen jako {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Záznamová stránka"
|
||||
msgid "Record Selection"
|
||||
msgstr "Výběr záznamů"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Tabulka záznamů"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Znovu odeslat e-mail"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Obnovit"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Obnovit na"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Spouští se funkce"
|
||||
msgid "Running..."
|
||||
msgstr "Běží..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Runtime"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Hledat barvy"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Hledat barvy..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Nastavení vaší databáze..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Nastavení karet"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14260,11 +14255,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Tento týden"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14541,7 +14531,6 @@ msgstr "Zkušební verze vypršela. Prosím, aktualizujte své fakturační úda
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Spustit"
|
||||
|
||||
@@ -15387,9 +15376,7 @@ msgid "view"
|
||||
msgstr "pohled"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Du har ikke tilladelse til at få adgang til {fieldsLis
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} kreditter"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Der opstod en fejl under upload af billedet."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Dashboard duplikeret med succes"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Data"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Fuld adgang"
|
||||
msgid "Function name"
|
||||
msgstr "Funktionsnavn"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funktioner"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Start manuelt"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Opbevaringsperiode for logge"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Logget ind som {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Post Side"
|
||||
msgid "Record Selection"
|
||||
msgstr "Optag valg"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Posttabel"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Send e-mail igen"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Nulstil"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Nulstil til"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Kører funktion"
|
||||
msgid "Running..."
|
||||
msgstr "Kører..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Runtime"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Søg farver"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Søg farver..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Opsætning af din database..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Fanens indstillinger"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14262,11 +14257,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Denne uge"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14543,7 +14533,6 @@ msgstr "Prøveperiode udløbet. Opdater venligst dine faktureringsoplysninger."
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Udløser"
|
||||
|
||||
@@ -15389,9 +15378,7 @@ msgid "view"
|
||||
msgstr "visning"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Sie haben keine Berechtigung, auf das Feld {fieldsList}
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} Credits"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Beim Hochladen des Bildes ist ein Fehler aufgetreten."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Dashboard erfolgreich dupliziert"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Daten"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Vollzugriff"
|
||||
msgid "Function name"
|
||||
msgstr "Funktionsname"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funktionen"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Manuell auslösen"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Protokollaufbewahrung"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Eingeloggt als {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Rekordseite"
|
||||
msgid "Record Selection"
|
||||
msgstr "Datensatz-Auswahl"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Datensatztabelle"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "E-Mail erneut senden"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Zurücksetzen auf"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Funktion wird ausgeführt"
|
||||
msgid "Running..."
|
||||
msgstr "Wird ausgeführt..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Laufzeit"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Farben suchen"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Farben suchen..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Einrichten Ihrer Datenbank..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Registerkarteneinstellungen"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14260,11 +14255,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Diese Woche"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14541,7 +14531,6 @@ msgstr "Probezeit abgelaufen. Bitte aktualisieren Sie Ihre Rechnungsdaten."
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Auslöser"
|
||||
|
||||
@@ -15387,9 +15376,7 @@ msgid "view"
|
||||
msgstr "ansicht"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Δεν έχετε άδεια πρόσβασης στο
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} πιστώσεις"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Παρουσιάστηκε σφάλμα κατά τη μεταφόρτω
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Ο πίνακας ελέγχου αντιγράφηκε με επιτυ
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Δεδομένα"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Πλήρης πρόσβαση"
|
||||
msgid "Function name"
|
||||
msgstr "Όνομα συνάρτησης"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Λειτουργίες"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Εκκίνηση χειροκίνητα"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Διατήρηση αρχείων καταγραφής"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Συνδεδεμένος ως {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Σελίδα εγγραφής"
|
||||
msgid "Record Selection"
|
||||
msgstr "Επιλογή Εγγραφών"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Πίνακας εγγραφών"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Επαναποστολή email"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Επαναφορά"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Επαναφορά σε"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Εκτέλεση λειτουργίας"
|
||||
msgid "Running..."
|
||||
msgstr "Εκτελείται..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Περιβάλλον εκτέλεσης"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Αναζήτηση χρωμάτων"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Αναζήτηση χρωμάτων..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Ρύθμιση της βάσης δεδομένων σας..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13815,7 +13811,6 @@ msgstr "Ρυθμίσεις Καρτέλας"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14264,11 +14259,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Αυτή την εβδομάδα"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14545,7 +14535,6 @@ msgstr "Η δοκιμαστική περίοδος έληξε. Ενημερώσ
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Σκανδάλη"
|
||||
|
||||
@@ -15391,9 +15380,7 @@ msgid "view"
|
||||
msgstr "προβολή"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -153,16 +153,6 @@ msgstr "{0, plural, one {You do not have permission to access the {fieldsList} f
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} credits"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr "{0} shown"
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1725,7 +1715,6 @@ msgstr "An error occurred while uploading the picture."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4268,6 +4257,7 @@ msgstr "Dashboard duplicated successfully"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Data"
|
||||
@@ -7021,6 +7011,11 @@ msgstr "Full access"
|
||||
msgid "Function name"
|
||||
msgstr "Function name"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Functions"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8366,7 +8361,6 @@ msgstr "Launch manually"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8677,11 +8671,6 @@ msgstr "Log retention"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Logged in as {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr "Logic"
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11567,6 +11556,12 @@ msgstr "Record Page"
|
||||
msgid "Record Selection"
|
||||
msgstr "Record Selection"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Record Table"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11889,7 +11884,6 @@ msgstr "Resend email"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Reset"
|
||||
|
||||
@@ -11912,8 +11906,6 @@ msgstr "Reset to"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12184,6 +12176,11 @@ msgstr "Running function"
|
||||
msgid "Running..."
|
||||
msgstr "Running..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Runtime"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12396,7 +12393,7 @@ msgid "Search colors"
|
||||
msgstr "Search colors"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Search colors..."
|
||||
|
||||
@@ -12951,7 +12948,6 @@ msgstr "Setting up your database..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13808,7 +13804,6 @@ msgstr "Tab Settings"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14257,11 +14252,6 @@ msgstr "This view uses {usageLabel} on object \"{0}\" which is not accessible."
|
||||
msgid "This week"
|
||||
msgstr "This week"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14538,7 +14528,6 @@ msgstr "Trial expired. Please update your billing details."
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Trigger"
|
||||
|
||||
@@ -15384,9 +15373,7 @@ msgid "view"
|
||||
msgstr "view"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {No tienes permiso para acceder al campo {fieldsList}} o
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} créditos"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Se produjo un error al subir la imagen."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Se duplicó el tablero con éxito"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Datos"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Acceso total"
|
||||
msgid "Function name"
|
||||
msgstr "Nombre de la función"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funciones"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Lanzar manualmente"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Retención de registros"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Conectado como {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Página de registro"
|
||||
msgid "Record Selection"
|
||||
msgstr "Selección de registros"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Tabla de registros"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Reenviar correo electrónico"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Restablecer"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Restablecer a"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Ejecutando función"
|
||||
msgid "Running..."
|
||||
msgstr "Ejecutando..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Tiempo de ejecución"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Buscar colores"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Buscar colores..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Configurando su base de datos..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Configuración de la pestaña"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14262,11 +14257,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Esta semana"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14543,7 +14533,6 @@ msgstr "Periodo de prueba expirado. Por favor, actualice sus datos de facturaci
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Desencadenar"
|
||||
|
||||
@@ -15389,9 +15378,7 @@ msgid "view"
|
||||
msgstr "vista"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Sinulla ei ole oikeuksia käyttää kenttää {fieldsLi
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} krediittiä"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Kuvaa ladattaessa tapahtui virhe."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Hallintapaneeli monistettiin onnistuneesti"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Data"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Täysi pääsy"
|
||||
msgid "Function name"
|
||||
msgstr "Funktion nimi"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Funktiot"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Käynnistä manuaalisesti"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Lokien säilytysaika"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Kirjautuneena käyttäjänä {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Tietuesivu"
|
||||
msgid "Record Selection"
|
||||
msgstr "Valitse tietueet"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Tietuetaulukko"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Lähetä sähköposti uudelleen"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Nollaa"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Palauta"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Suoritetaan funktiota"
|
||||
msgid "Running..."
|
||||
msgstr "Suoritetaan..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Suoritusympäristö"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Etsi värejä"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Etsi värejä..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Asetetaan tietokantaasi..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Välilehden asetukset"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14260,11 +14255,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Tämä viikko"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14541,7 +14531,6 @@ msgstr "Kokeilujakso päättynyt. Päivitä laskutustietosi."
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Laukaisin"
|
||||
|
||||
@@ -15387,9 +15376,7 @@ msgid "view"
|
||||
msgstr "näkymä"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
@@ -158,16 +158,6 @@ msgstr "{0, plural, one {Vous n'avez pas la permission d'accéder au champ {fiel
|
||||
msgid "{0} credits"
|
||||
msgstr "{0} crédits"
|
||||
|
||||
#. js-lingui-id: peiknr
|
||||
#. placeholder {0}: activeVisibleFieldLabels.length
|
||||
#. placeholder {0}: activeFilterLabels.length
|
||||
#. placeholder {0}: activeSortLabels.length
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/hooks/useRecordTableSettingsDescriptions.ts
|
||||
msgid "{0} shown"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: r4l/MK
|
||||
#. placeholder {0}: formatUsageValue(totalCredits)
|
||||
#: src/pages/settings/SettingsUsageUserDetail.tsx
|
||||
@@ -1730,7 +1720,6 @@ msgstr "Une erreur s'est produite lors du téléversement de l'image."
|
||||
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
|
||||
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
|
||||
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
|
||||
#: src/modules/object-metadata/hooks/useDeleteOneObjectMetadataItem.ts
|
||||
@@ -4273,6 +4262,7 @@ msgstr "Tableau de bord dupliqué avec succès"
|
||||
#: src/modules/side-panel/pages/workflow/trigger-type/components/SidePanelWorkflowSelectTriggerTypeContent.tsx
|
||||
#: src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/constants/ChartSettingsHeadings.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Data"
|
||||
msgstr "Données"
|
||||
@@ -7026,6 +7016,11 @@ msgstr "Accès complet"
|
||||
msgid "Function name"
|
||||
msgstr "Nom de la fonction"
|
||||
|
||||
#. js-lingui-id: xANKBj
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Functions"
|
||||
msgstr "Fonctions"
|
||||
|
||||
#. js-lingui-id: tkr79G
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Functions - Settings"
|
||||
@@ -8371,7 +8366,6 @@ msgstr "Lancer manuellement"
|
||||
#: src/modules/side-panel/utils/getSidePanelSubPageTitle.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldsSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/record-page/SidePanelRecordPageFieldSettings.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
|
||||
msgid "Layout"
|
||||
@@ -8682,11 +8676,6 @@ msgstr "Rétention des journaux"
|
||||
msgid "Logged in as {impersonatedUser}"
|
||||
msgstr "Connecté en tant que {impersonatedUser}"
|
||||
|
||||
#. js-lingui-id: wuCnq1
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationDetailContentTab.tsx
|
||||
msgid "Logic"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: sTlKkx
|
||||
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -11572,6 +11561,12 @@ msgstr "Page d'enregistrement"
|
||||
msgid "Record Selection"
|
||||
msgstr "Sélection des enregistrements"
|
||||
|
||||
#. js-lingui-id: J9Cfll
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
msgid "Record Table"
|
||||
msgstr "Table des enregistrements"
|
||||
|
||||
#. js-lingui-id: NxW0+c
|
||||
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
|
||||
msgid "Record Table Settings"
|
||||
@@ -11894,7 +11889,6 @@ msgstr "Renvoyer l'email"
|
||||
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
|
||||
#: src/modules/views/components/ViewBarDetails.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "Reset"
|
||||
msgstr "Réinitialiser"
|
||||
|
||||
@@ -11917,8 +11911,6 @@ msgstr "Réinitialiser à"
|
||||
#. js-lingui-id: L+rMC9
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
|
||||
#: src/modules/command-menu-item/server-items/edit/components/SidePanelCommandMenuItemEditPage.tsx
|
||||
msgid "Reset to default"
|
||||
@@ -12189,6 +12181,11 @@ msgstr "Exécution de la fonction"
|
||||
msgid "Running..."
|
||||
msgstr "Exécution en cours..."
|
||||
|
||||
#. js-lingui-id: eo1n1s
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Runtime"
|
||||
msgstr "Environnement d'exécution"
|
||||
|
||||
#. js-lingui-id: nji0/X
|
||||
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
|
||||
msgid "Russian"
|
||||
@@ -12401,7 +12398,7 @@ msgid "Search colors"
|
||||
msgstr "Rechercher des couleurs"
|
||||
|
||||
#. js-lingui-id: AR3FV/
|
||||
#: src/modules/ui/input/components/ThemeColorPickerMenu.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelEditColorOption.tsx
|
||||
msgid "Search colors..."
|
||||
msgstr "Rechercher des couleurs..."
|
||||
|
||||
@@ -12956,7 +12953,6 @@ msgstr "Configuration de votre base de données..."
|
||||
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownDefaultComponents.tsx
|
||||
#: src/modules/sign-in-background-mock/components/SignInAppNavigationDrawerMock.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||||
#: src/modules/settings/roles/role/components/SettingsRole.tsx
|
||||
#: src/modules/settings/accounts/components/SettingsAccountsSettingsSection.tsx
|
||||
@@ -13813,7 +13809,6 @@ msgstr "Paramètres de l'onglet"
|
||||
#. js-lingui-id: 4hJhzz
|
||||
#: src/pages/settings/security/event-logs/components/EventLogTableSelector.tsx
|
||||
#: src/modules/views/view-picker/constants/ViewPickerTypeSelectOptions.ts
|
||||
#: src/modules/side-panel/pages/page-layout/components/dashboard/SidePanelDashboardRecordTableSettings.tsx
|
||||
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutContent.tsx
|
||||
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
|
||||
msgid "Table"
|
||||
@@ -14262,11 +14257,6 @@ msgstr ""
|
||||
msgid "This week"
|
||||
msgstr "Cette semaine"
|
||||
|
||||
#. js-lingui-id: DF2voz
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutTabSettingsContent.tsx
|
||||
msgid "This will cancel all modifications done on the tab and its widgets. Edit mode will be canceled and the page will refresh. This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VbVocX
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
|
||||
msgid "This will cancel all modifications done on the widget. This action cannot be undone."
|
||||
@@ -14543,7 +14533,6 @@ msgstr "Essai expiré. Veuillez mettre à jour vos informations de facturation."
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/side-panel/components/SidePanelWorkflowStepInfo.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionsTable.tsx
|
||||
msgid "Trigger"
|
||||
msgstr "Déclencheur"
|
||||
|
||||
@@ -15389,9 +15378,7 @@ msgid "view"
|
||||
msgstr "vue"
|
||||
|
||||
#. js-lingui-id: jpctdh
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutDashboardWidgetTypeSelect.tsx
|
||||
#: src/modules/side-panel/components/SidePanelObjectViewRecordInfo.tsx
|
||||
#: src/modules/side-panel/components/hooks/usePageLayoutHeaderInfo.ts
|
||||
#: src/modules/settings/developers/components/WebhookEntitySelect.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
|
||||
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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user