diff --git a/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/__tests__/buildRecordTableWidgetViewSnapshot.test.ts b/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/__tests__/buildRecordTableWidgetViewSnapshot.test.ts new file mode 100644 index 0000000000..365f698a3c --- /dev/null +++ b/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/__tests__/buildRecordTableWidgetViewSnapshot.test.ts @@ -0,0 +1,13 @@ +import { buildRecordTableWidgetViewSnapshot } from '@/page-layout/widgets/record-table/utils/buildRecordTableWidgetViewSnapshot'; +import { ViewVisibility } from '~/generated-metadata/graphql'; +import { getMockObjectMetadataItemOrThrow } from '~/testing/utils/getMockObjectMetadataItemOrThrow'; + +describe('buildRecordTableWidgetViewSnapshot', () => { + const objectMetadataItem = getMockObjectMetadataItemOrThrow('company'); + + it('should create the widget view with WORKSPACE visibility so it is shared with all workspace members', () => { + const { view } = buildRecordTableWidgetViewSnapshot(objectMetadataItem); + + expect(view.visibility).toBe(ViewVisibility.WORKSPACE); + }); +}); diff --git a/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/buildRecordTableWidgetViewSnapshot.ts b/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/buildRecordTableWidgetViewSnapshot.ts index 17401f59ee..973e85c063 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/buildRecordTableWidgetViewSnapshot.ts +++ b/packages/twenty-front/src/modules/page-layout/widgets/record-table/utils/buildRecordTableWidgetViewSnapshot.ts @@ -28,7 +28,7 @@ export const buildRecordTableWidgetViewSnapshot = ( isCompact: false, position: 0, openRecordIn: ViewOpenRecordIn.RECORD_PAGE, - visibility: ViewVisibility.UNLISTED, + visibility: ViewVisibility.WORKSPACE, shouldHideEmptyGroups: false, isActive: true, }; diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/2-14/2-14-instance-command-slow-1781515653781-set-table-widget-views-visibility-to-workspace.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/2-14/2-14-instance-command-slow-1781515653781-set-table-widget-views-visibility-to-workspace.ts new file mode 100644 index 0000000000..f4dbabe82c --- /dev/null +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/2-14/2-14-instance-command-slow-1781515653781-set-table-widget-views-visibility-to-workspace.ts @@ -0,0 +1,20 @@ +import { DataSource, QueryRunner } from 'typeorm'; + +import { RegisteredInstanceCommand } from 'src/engine/core-modules/upgrade/decorators/registered-instance-command.decorator'; +import { SlowInstanceCommand } from 'src/engine/core-modules/upgrade/interfaces/slow-instance-command.interface'; + +@RegisteredInstanceCommand('2.14.0', 1781515653781, { type: 'slow' }) +export class SetTableWidgetViewsVisibilityToWorkspaceSlowInstanceCommand implements SlowInstanceCommand { + async runDataMigration(dataSource: DataSource): Promise { + await dataSource.query( + `UPDATE "core"."view" + SET "visibility" = 'WORKSPACE' + WHERE "type" = 'TABLE_WIDGET' + AND "visibility" = 'UNLISTED'`, + ); + } + + public async up(_queryRunner: QueryRunner): Promise {} + + public async down(_queryRunner: QueryRunner): Promise {} +} diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts index 1f3d4c736f..19ea4e264e 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts @@ -69,6 +69,7 @@ import { ViewOverridableEntityFastInstanceCommand } from 'src/database/commands/ import { RenameIsUiReadOnlyToIsUiEditableFastInstanceCommand } from 'src/database/commands/upgrade-version-command/2-13/2-13-instance-command-fast-1781277453604-rename-is-ui-read-only-to-is-ui-editable'; import { BackfillNonUiCreatableStandardSystemObjectsSlowInstanceCommand } from 'src/database/commands/upgrade-version-command/2-13/2-13-instance-command-slow-1781277480000-backfill-non-ui-creatable-standard-system-objects'; import { CommandMenuItemOverridableEntityFastInstanceCommand } from 'src/database/commands/upgrade-version-command/2-13/2-13-instance-command-fast-1781253016028-command-menu-item-overridable-entity'; +import { SetTableWidgetViewsVisibilityToWorkspaceSlowInstanceCommand } from 'src/database/commands/upgrade-version-command/2-14/2-14-instance-command-slow-1781515653781-set-table-widget-views-visibility-to-workspace'; export const INSTANCE_COMMANDS = [ AddViewFieldGroupIdIndexOnViewFieldFastInstanceCommand, @@ -140,4 +141,5 @@ export const INSTANCE_COMMANDS = [ RenameIsUiReadOnlyToIsUiEditableFastInstanceCommand, BackfillNonUiCreatableStandardSystemObjectsSlowInstanceCommand, CommandMenuItemOverridableEntityFastInstanceCommand, + SetTableWidgetViewsVisibilityToWorkspaceSlowInstanceCommand, ];