Add ability to save any field filter to view (#13401)
This PR adds the ability to save an any field filter to a view. It adds a new `anyFieldFilterValue` on both core view and workspace view entities. It also introduces the necessary utils that mimic the logic that manages the save of record filters and record sorts on views.
This commit is contained in:
@ -252,6 +252,7 @@ export class MigrateViewsToCoreCommand extends ActiveOrSuspendedWorkspacesMigrat
|
||||
deletedAt: workspaceView.deletedAt
|
||||
? new Date(workspaceView.deletedAt)
|
||||
: null,
|
||||
anyFieldFilterValue: workspaceView.anyFieldFilterValue,
|
||||
};
|
||||
|
||||
const repository = queryRunner.manager.getRepository(View);
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class CreateAnyFieldFilterValueColumnOnView1753349164408
|
||||
implements MigrationInterface
|
||||
{
|
||||
name = 'CreateAnyFieldFilterValueColumnOnView1753349164408';
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "core"."view" ADD "anyFieldFilterValue" text`,
|
||||
);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "core"."view" DROP COLUMN "anyFieldFilterValue"`,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -88,6 +88,9 @@ export class View {
|
||||
@DeleteDateColumn({ type: 'timestamptz' })
|
||||
deletedAt?: Date | null;
|
||||
|
||||
@Column({ nullable: true, type: 'text', default: null })
|
||||
anyFieldFilterValue?: string | null;
|
||||
|
||||
@ManyToOne(() => Workspace, {
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
|
||||
@ -444,6 +444,7 @@ export const VIEW_STANDARD_FIELD_IDS = {
|
||||
viewFilterGroups: '20202020-0318-474a-84a1-bac895ceaa5a',
|
||||
viewSorts: '20202020-891b-45c3-9fe1-80a75b4aa043',
|
||||
favorites: '20202020-c818-4a86-8284-9ec0ef0a59a5',
|
||||
anyFieldFilterValue: '20202020-3143-46c0-bb05-034063ce0703',
|
||||
};
|
||||
|
||||
export const WEBHOOK_STANDARD_FIELD_IDS = {
|
||||
|
||||
@ -307,4 +307,14 @@ export class ViewWorkspaceEntity extends BaseWorkspaceEntity {
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
kanbanAggregateOperationFieldMetadataId?: string | null;
|
||||
|
||||
@WorkspaceField({
|
||||
standardId: VIEW_STANDARD_FIELD_IDS.anyFieldFilterValue,
|
||||
type: FieldMetadataType.TEXT,
|
||||
label: msg`Any field filter value`,
|
||||
description: msg`Any field filter value`,
|
||||
defaultValue: null,
|
||||
})
|
||||
@WorkspaceIsNullable()
|
||||
anyFieldFilterValue?: string | null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user