Skip to content

Commit c146312

Browse files
Merge branch 'main' into fix--members-table-column-alignment
2 parents d3a1d7b + 9eeb50c commit c146312

File tree

535 files changed

+11752
-4753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

535 files changed

+11752
-4753
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,6 @@ dump.rdb
4343
/flake.nix
4444

4545
.crowdin.yml
46-
.react-email/
46+
.react-email/
47+
48+
mcp.json

packages/twenty-front/src/generated-metadata/graphql.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,10 +1025,10 @@ export type Mutation = {
10251025
updateWorkspace: Workspace;
10261026
updateWorkspaceFeatureFlag: Scalars['Boolean']['output'];
10271027
updateWorkspaceMemberRole: WorkspaceMember;
1028-
uploadFile: Scalars['String']['output'];
1029-
uploadImage: Scalars['String']['output'];
1030-
uploadProfilePicture: Scalars['String']['output'];
1031-
uploadWorkspaceLogo: Scalars['String']['output'];
1028+
uploadFile: SignedFileDto;
1029+
uploadImage: SignedFileDto;
1030+
uploadProfilePicture: SignedFileDto;
1031+
uploadWorkspaceLogo: SignedFileDto;
10321032
upsertObjectPermissions: Array<ObjectPermission>;
10331033
upsertSettingPermissions: Array<SettingPermission>;
10341034
userLookupAdminPanel: UserLookup;
@@ -1525,9 +1525,7 @@ export type ObjectPermission = {
15251525
canReadObjectRecords?: Maybe<Scalars['Boolean']['output']>;
15261526
canSoftDeleteObjectRecords?: Maybe<Scalars['Boolean']['output']>;
15271527
canUpdateObjectRecords?: Maybe<Scalars['Boolean']['output']>;
1528-
id: Scalars['String']['output'];
15291528
objectMetadataId: Scalars['String']['output'];
1530-
roleId: Scalars['String']['output'];
15311529
};
15321530

15331531
export type ObjectPermissionInput = {
@@ -2175,6 +2173,12 @@ export type SignUpOutput = {
21752173
workspace: WorkspaceUrlsAndId;
21762174
};
21772175

2176+
export type SignedFileDto = {
2177+
__typename?: 'SignedFileDTO';
2178+
path: Scalars['String']['output'];
2179+
token: Scalars['String']['output'];
2180+
};
2181+
21782182
export type StandardOverrides = {
21792183
__typename?: 'StandardOverrides';
21802184
description?: Maybe<Scalars['String']['output']>;
@@ -2537,6 +2541,8 @@ export type UserWorkspace = {
25372541
createdAt: Scalars['DateTime']['output'];
25382542
deletedAt?: Maybe<Scalars['DateTime']['output']>;
25392543
id: Scalars['UUID']['output'];
2544+
objectPermissions?: Maybe<Array<ObjectPermission>>;
2545+
/** @deprecated Use objectPermissions instead */
25402546
objectRecordsPermissions?: Maybe<Array<PermissionsOnAllObjectRecords>>;
25412547
settingsPermissions?: Maybe<Array<SettingPermissionType>>;
25422548
updatedAt: Scalars['DateTime']['output'];

packages/twenty-front/src/generated/graphql.tsx

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -941,10 +941,10 @@ export type Mutation = {
941941
updateWorkspace: Workspace;
942942
updateWorkspaceFeatureFlag: Scalars['Boolean'];
943943
updateWorkspaceMemberRole: WorkspaceMember;
944-
uploadFile: Scalars['String'];
945-
uploadImage: Scalars['String'];
946-
uploadProfilePicture: Scalars['String'];
947-
uploadWorkspaceLogo: Scalars['String'];
944+
uploadFile: SignedFileDto;
945+
uploadImage: SignedFileDto;
946+
uploadProfilePicture: SignedFileDto;
947+
uploadWorkspaceLogo: SignedFileDto;
948948
upsertObjectPermissions: Array<ObjectPermission>;
949949
upsertSettingPermissions: Array<SettingPermission>;
950950
userLookupAdminPanel: UserLookup;
@@ -1391,9 +1391,7 @@ export type ObjectPermission = {
13911391
canReadObjectRecords?: Maybe<Scalars['Boolean']>;
13921392
canSoftDeleteObjectRecords?: Maybe<Scalars['Boolean']>;
13931393
canUpdateObjectRecords?: Maybe<Scalars['Boolean']>;
1394-
id: Scalars['String'];
13951394
objectMetadataId: Scalars['String'];
1396-
roleId: Scalars['String'];
13971395
};
13981396

13991397
export type ObjectPermissionInput = {
@@ -1970,6 +1968,12 @@ export type SignUpOutput = {
19701968
workspace: WorkspaceUrlsAndId;
19711969
};
19721970

1971+
export type SignedFileDto = {
1972+
__typename?: 'SignedFileDTO';
1973+
path: Scalars['String'];
1974+
token: Scalars['String'];
1975+
};
1976+
19731977
export type StandardOverrides = {
19741978
__typename?: 'StandardOverrides';
19751979
description?: Maybe<Scalars['String']>;
@@ -2314,6 +2318,8 @@ export type UserWorkspace = {
23142318
createdAt: Scalars['DateTime'];
23152319
deletedAt?: Maybe<Scalars['DateTime']>;
23162320
id: Scalars['UUID'];
2321+
objectPermissions?: Maybe<Array<ObjectPermission>>;
2322+
/** @deprecated Use objectPermissions instead */
23172323
objectRecordsPermissions?: Maybe<Array<PermissionsOnAllObjectRecords>>;
23182324
settingsPermissions?: Maybe<Array<SettingPermissionType>>;
23192325
updatedAt: Scalars['DateTime'];
@@ -2554,15 +2560,15 @@ export type UploadFileMutationVariables = Exact<{
25542560
}>;
25552561

25562562

2557-
export type UploadFileMutation = { __typename?: 'Mutation', uploadFile: string };
2563+
export type UploadFileMutation = { __typename?: 'Mutation', uploadFile: { __typename?: 'SignedFileDTO', path: string, token: string } };
25582564

25592565
export type UploadImageMutationVariables = Exact<{
25602566
file: Scalars['Upload'];
25612567
fileFolder?: InputMaybe<FileFolder>;
25622568
}>;
25632569

25642570

2565-
export type UploadImageMutation = { __typename?: 'Mutation', uploadImage: string };
2571+
export type UploadImageMutation = { __typename?: 'Mutation', uploadImage: { __typename?: 'SignedFileDTO', path: string, token: string } };
25662572

25672573
export type AuthTokenFragmentFragment = { __typename?: 'AuthToken', token: string, expiresAt: string };
25682574

@@ -2848,7 +2854,7 @@ export type UpdateLabPublicFeatureFlagMutationVariables = Exact<{
28482854

28492855
export type UpdateLabPublicFeatureFlagMutation = { __typename?: 'Mutation', updateLabPublicFeatureFlag: { __typename?: 'FeatureFlagDTO', key: FeatureFlagKey, value: boolean } };
28502856

2851-
export type ObjectPermissionFragmentFragment = { __typename?: 'ObjectPermission', id: string, objectMetadataId: string, roleId: string, canReadObjectRecords?: boolean | null, canUpdateObjectRecords?: boolean | null, canSoftDeleteObjectRecords?: boolean | null, canDestroyObjectRecords?: boolean | null };
2857+
export type ObjectPermissionFragmentFragment = { __typename?: 'ObjectPermission', objectMetadataId: string, canReadObjectRecords?: boolean | null, canUpdateObjectRecords?: boolean | null, canSoftDeleteObjectRecords?: boolean | null, canDestroyObjectRecords?: boolean | null };
28522858

28532859
export type RoleFragmentFragment = { __typename?: 'Role', id: string, label: string, description?: string | null, icon?: string | null, canUpdateAllSettings: boolean, isEditable: boolean, canReadAllObjectRecords: boolean, canUpdateAllObjectRecords: boolean, canSoftDeleteAllObjectRecords: boolean, canDestroyAllObjectRecords: boolean };
28542860

@@ -2881,7 +2887,7 @@ export type UpsertObjectPermissionsMutationVariables = Exact<{
28812887
}>;
28822888

28832889

2884-
export type UpsertObjectPermissionsMutation = { __typename?: 'Mutation', upsertObjectPermissions: Array<{ __typename?: 'ObjectPermission', id: string, objectMetadataId: string, roleId: string, canReadObjectRecords?: boolean | null, canUpdateObjectRecords?: boolean | null, canSoftDeleteObjectRecords?: boolean | null, canDestroyObjectRecords?: boolean | null }> };
2890+
export type UpsertObjectPermissionsMutation = { __typename?: 'Mutation', upsertObjectPermissions: Array<{ __typename?: 'ObjectPermission', objectMetadataId: string, canReadObjectRecords?: boolean | null, canUpdateObjectRecords?: boolean | null, canSoftDeleteObjectRecords?: boolean | null, canDestroyObjectRecords?: boolean | null }> };
28852891

28862892
export type UpsertSettingPermissionsMutationVariables = Exact<{
28872893
upsertSettingPermissionsInput: UpsertSettingPermissionsInput;
@@ -2893,7 +2899,7 @@ export type UpsertSettingPermissionsMutation = { __typename?: 'Mutation', upsert
28932899
export type GetRolesQueryVariables = Exact<{ [key: string]: never; }>;
28942900

28952901

2896-
export type GetRolesQuery = { __typename?: 'Query', getRoles: Array<{ __typename?: 'Role', id: string, label: string, description?: string | null, icon?: string | null, canUpdateAllSettings: boolean, isEditable: boolean, canReadAllObjectRecords: boolean, canUpdateAllObjectRecords: boolean, canSoftDeleteAllObjectRecords: boolean, canDestroyAllObjectRecords: boolean, workspaceMembers: Array<{ __typename?: 'WorkspaceMember', id: any, colorScheme: string, avatarUrl?: string | null, locale?: string | null, userEmail: string, timeZone?: string | null, dateFormat?: WorkspaceMemberDateFormatEnum | null, timeFormat?: WorkspaceMemberTimeFormatEnum | null, name: { __typename?: 'FullName', firstName: string, lastName: string } }>, settingPermissions?: Array<{ __typename?: 'SettingPermission', id: string, setting: SettingPermissionType, roleId: string }> | null, objectPermissions?: Array<{ __typename?: 'ObjectPermission', id: string, objectMetadataId: string, roleId: string, canReadObjectRecords?: boolean | null, canUpdateObjectRecords?: boolean | null, canSoftDeleteObjectRecords?: boolean | null, canDestroyObjectRecords?: boolean | null }> | null }> };
2902+
export type GetRolesQuery = { __typename?: 'Query', getRoles: Array<{ __typename?: 'Role', id: string, label: string, description?: string | null, icon?: string | null, canUpdateAllSettings: boolean, isEditable: boolean, canReadAllObjectRecords: boolean, canUpdateAllObjectRecords: boolean, canSoftDeleteAllObjectRecords: boolean, canDestroyAllObjectRecords: boolean, workspaceMembers: Array<{ __typename?: 'WorkspaceMember', id: any, colorScheme: string, avatarUrl?: string | null, locale?: string | null, userEmail: string, timeZone?: string | null, dateFormat?: WorkspaceMemberDateFormatEnum | null, timeFormat?: WorkspaceMemberTimeFormatEnum | null, name: { __typename?: 'FullName', firstName: string, lastName: string } }>, settingPermissions?: Array<{ __typename?: 'SettingPermission', id: string, setting: SettingPermissionType, roleId: string }> | null, objectPermissions?: Array<{ __typename?: 'ObjectPermission', objectMetadataId: string, canReadObjectRecords?: boolean | null, canUpdateObjectRecords?: boolean | null, canSoftDeleteObjectRecords?: boolean | null, canDestroyObjectRecords?: boolean | null }> | null }> };
28972903

28982904
export type CreateApprovedAccessDomainMutationVariables = Exact<{
28992905
input: CreateApprovedAccessDomainInput;
@@ -2973,7 +2979,7 @@ export type UploadProfilePictureMutationVariables = Exact<{
29732979
}>;
29742980

29752981

2976-
export type UploadProfilePictureMutation = { __typename?: 'Mutation', uploadProfilePicture: string };
2982+
export type UploadProfilePictureMutation = { __typename?: 'Mutation', uploadProfilePicture: { __typename?: 'SignedFileDTO', path: string, token: string } };
29772983

29782984
export type GetCurrentUserQueryVariables = Exact<{ [key: string]: never; }>;
29792985

@@ -3104,7 +3110,7 @@ export type UploadWorkspaceLogoMutationVariables = Exact<{
31043110
}>;
31053111

31063112

3107-
export type UploadWorkspaceLogoMutation = { __typename?: 'Mutation', uploadWorkspaceLogo: string };
3113+
export type UploadWorkspaceLogoMutation = { __typename?: 'Mutation', uploadWorkspaceLogo: { __typename?: 'SignedFileDTO', path: string, token: string } };
31083114

31093115
export type CheckCustomDomainValidRecordsMutationVariables = Exact<{ [key: string]: never; }>;
31103116

@@ -3219,9 +3225,7 @@ export const AvailableSsoIdentityProvidersFragmentFragmentDoc = gql`
32193225
`;
32203226
export const ObjectPermissionFragmentFragmentDoc = gql`
32213227
fragment ObjectPermissionFragment on ObjectPermission {
3222-
id
32233228
objectMetadataId
3224-
roleId
32253229
canReadObjectRecords
32263230
canUpdateObjectRecords
32273231
canSoftDeleteObjectRecords
@@ -3570,7 +3574,10 @@ export type TrackAnalyticsMutationResult = Apollo.MutationResult<TrackAnalyticsM
35703574
export type TrackAnalyticsMutationOptions = Apollo.BaseMutationOptions<TrackAnalyticsMutation, TrackAnalyticsMutationVariables>;
35713575
export const UploadFileDocument = gql`
35723576
mutation uploadFile($file: Upload!, $fileFolder: FileFolder) {
3573-
uploadFile(file: $file, fileFolder: $fileFolder)
3577+
uploadFile(file: $file, fileFolder: $fileFolder) {
3578+
path
3579+
token
3580+
}
35743581
}
35753582
`;
35763583
export type UploadFileMutationFn = Apollo.MutationFunction<UploadFileMutation, UploadFileMutationVariables>;
@@ -3602,7 +3609,10 @@ export type UploadFileMutationResult = Apollo.MutationResult<UploadFileMutation>
36023609
export type UploadFileMutationOptions = Apollo.BaseMutationOptions<UploadFileMutation, UploadFileMutationVariables>;
36033610
export const UploadImageDocument = gql`
36043611
mutation uploadImage($file: Upload!, $fileFolder: FileFolder) {
3605-
uploadImage(file: $file, fileFolder: $fileFolder)
3612+
uploadImage(file: $file, fileFolder: $fileFolder) {
3613+
path
3614+
token
3615+
}
36063616
}
36073617
`;
36083618
export type UploadImageMutationFn = Apollo.MutationFunction<UploadImageMutation, UploadImageMutationVariables>;
@@ -5833,7 +5843,10 @@ export type DeleteUserAccountMutationResult = Apollo.MutationResult<DeleteUserAc
58335843
export type DeleteUserAccountMutationOptions = Apollo.BaseMutationOptions<DeleteUserAccountMutation, DeleteUserAccountMutationVariables>;
58345844
export const UploadProfilePictureDocument = gql`
58355845
mutation UploadProfilePicture($file: Upload!) {
5836-
uploadProfilePicture(file: $file)
5846+
uploadProfilePicture(file: $file) {
5847+
path
5848+
token
5849+
}
58375850
}
58385851
`;
58395852
export type UploadProfilePictureMutationFn = Apollo.MutationFunction<UploadProfilePictureMutation, UploadProfilePictureMutationVariables>;
@@ -6499,7 +6512,10 @@ export type UpdateWorkspaceMutationResult = Apollo.MutationResult<UpdateWorkspac
64996512
export type UpdateWorkspaceMutationOptions = Apollo.BaseMutationOptions<UpdateWorkspaceMutation, UpdateWorkspaceMutationVariables>;
65006513
export const UploadWorkspaceLogoDocument = gql`
65016514
mutation UploadWorkspaceLogo($file: Upload!) {
6502-
uploadWorkspaceLogo(file: $file)
6515+
uploadWorkspaceLogo(file: $file) {
6516+
path
6517+
token
6518+
}
65036519
}
65046520
`;
65056521
export type UploadWorkspaceLogoMutationFn = Apollo.MutationFunction<UploadWorkspaceLogoMutation, UploadWorkspaceLogoMutationVariables>;

packages/twenty-front/src/loading/components/__stories__/UserOrMetadataLoader.stories.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ import { getOperationName } from '@apollo/client/utilities';
22
import { expect } from '@storybook/jest';
33
import { Meta, StoryObj } from '@storybook/react';
44
import { within } from '@storybook/test';
5-
import { HttpResponse, graphql } from 'msw';
5+
import { HttpResponse, graphql, http } from 'msw';
66

77
import { GET_PUBLIC_WORKSPACE_DATA_BY_DOMAIN } from '@/auth/graphql/queries/getPublicWorkspaceDataByDomain';
88
import { GET_CLIENT_CONFIG } from '@/client-config/graphql/queries/getClientConfig';
99
import { FIND_MANY_OBJECT_METADATA_ITEMS } from '@/object-metadata/graphql/queries';
1010
import { GET_CURRENT_USER } from '@/users/graphql/queries/getCurrentUser';
11+
import { REACT_APP_SERVER_BASE_URL } from '~/config';
1112
import { RecordIndexPage } from '~/pages/object-record/RecordIndexPage';
1213
import {
1314
PageDecorator,
@@ -21,6 +22,9 @@ import { mockedUserData } from '~/testing/mock-data/users';
2122
const userMetadataLoaderMocks = {
2223
msw: {
2324
handlers: [
25+
http.get(`${REACT_APP_SERVER_BASE_URL}/client-config`, () => {
26+
return HttpResponse.json(mockedClientConfig);
27+
}),
2428
graphql.query(getOperationName(GET_CURRENT_USER) ?? '', () => {
2529
return HttpResponse.json({
2630
data: {

packages/twenty-front/src/locales/af-ZA.po

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2182,7 +2182,12 @@ msgstr ""
21822182

21832183
#. js-lingui-id: bVax4d
21842184
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
2185-
msgid "Failed to remove override"
2185+
#~ msgid "Failed to remove override"
2186+
#~ msgstr ""
2187+
2188+
#. js-lingui-id: A/P7PX
2189+
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
2190+
msgid "Failed to remove override"
21862191
msgstr ""
21872192

21882193
#. js-lingui-id: Dzh4a2
@@ -3357,8 +3362,8 @@ msgstr "Geen maatstawedata beskikbaar"
33573362

33583363
#. js-lingui-id: DL8pzn
33593364
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignment.tsx
3360-
msgid "No more members to assign"
3361-
msgstr "Geen meer lede om toe te wys nie"
3365+
#~ msgid "No more members to assign"
3366+
#~ msgstr "Geen meer lede om toe te wys nie"
33623367

33633368
#. js-lingui-id: tTItk7
33643369
#: src/modules/workflow/workflow-steps/components/WorkflowRunStepOutputDetail.tsx
@@ -4782,6 +4787,11 @@ msgstr "Die waardes van hierdie veld moet uniek wees"
47824787
msgid "The whole event details will be shared with your team."
47834788
msgstr "Die hele gebeurtenis besonderhede sal met jou span gedeel word."
47844789

4790+
#. js-lingui-id: MssRHl
4791+
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignment.tsx
4792+
msgid "The workspace needs at least one Admin"
4793+
msgstr ""
4794+
47854795
#. js-lingui-id: FEr96N
47864796
#: src/modules/ui/navigation/navigation-drawer/components/MultiWorkspaceDropdown/internal/MultiWorkspaceDropdownThemesComponents.tsx
47874797
msgid "Theme"
@@ -5137,14 +5147,24 @@ msgstr ""
51375147
msgid "Values"
51385148
msgstr "Waardes"
51395149

5150+
#. js-lingui-id: rawKOG
5151+
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
5152+
msgid "Variable deleted successfully."
5153+
msgstr ""
5154+
51405155
#. js-lingui-id: dY/1ir
51415156
#: src/modules/object-record/record-field/form-types/components/VariableChip.tsx
51425157
msgid "Variable not found"
51435158
msgstr "Veranderlike nie gevind nie"
51445159

51455160
#. js-lingui-id: N/89ho
51465161
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
5147-
msgid "Variable updated successfully"
5162+
#~ msgid "Variable updated successfully"
5163+
#~ msgstr ""
5164+
5165+
#. js-lingui-id: 2ushgC
5166+
#: src/modules/settings/admin-panel/config-variables/hooks/useConfigVariableActions.ts
5167+
msgid "Variable updated successfully."
51485168
msgstr ""
51495169

51505170
#. js-lingui-id: IHIWR4
@@ -5169,8 +5189,8 @@ msgstr "Sien faktuurbesonderhede"
51695189

51705190
#. js-lingui-id: igR+P/
51715191
#: src/modules/workflow/hooks/useRunWorkflowVersion.tsx
5172-
msgid "View execution details"
5173-
msgstr "Sien uitvoeringsbesonderhede"
5192+
#~ msgid "View execution details"
5193+
#~ msgstr "Sien uitvoeringsbesonderhede"
51745194

51755195
#. js-lingui-id: qZmd6a
51765196
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownViewSettingsContent.tsx
@@ -5273,13 +5293,13 @@ msgstr "Wanneer die sleutel gedeaktiveer sal word"
52735293

52745294
#. js-lingui-id: GpJjC8
52755295
#: src/modules/workflow/hooks/useRunWorkflowVersion.tsx
5276-
msgid "Workflow is running..."
5277-
msgstr "Werksvloei loop..."
5296+
#~ msgid "Workflow is running..."
5297+
#~ msgstr "Werksvloei loop..."
52785298

52795299
#. js-lingui-id: o0xBLi
52805300
#: src/modules/workflow/hooks/useRunWorkflowVersion.tsx
5281-
msgid "Workflow run failed"
5282-
msgstr "Werksvloeilopie het misluk"
5301+
#~ msgid "Workflow run failed"
5302+
#~ msgstr "Werksvloeilopie het misluk"
52835303

52845304
#. js-lingui-id: pmUArF
52855305
#: src/pages/settings/SettingsWorkspaceMembers.tsx

0 commit comments

Comments
 (0)