feat: saved views of my work, across my projects

A person saves named views of «my work»: projects, assigned to me, that I
follow, status categories, priorities, bugs only, overdue and text. They
are private (Mongo my_views, no history), listed and deleted by their
owner (GraphQL myViews / saveMyView / deleteMyView, REST /api/me/views),
and run as the cross-project search, which gains project, priority,
bugsOnly and overdue filters (also in MCP my_issues). The home page shows
them as a bar above «my work», with a drawer to save a new one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 14:22:20 +02:00
parent e14f445e6b
commit 5b0396bc10
46 changed files with 2648 additions and 35 deletions

View File

@@ -526,6 +526,37 @@ export class SavedFilterDto {
@ApiProperty({ format: 'date-time' }) createdAt!: string;
}
export class MyViewCriteriaResponseDto {
@ApiPropertyOptional({ type: [String], format: 'uuid' })
projectIds?: string[];
@ApiPropertyOptional() assignedToMe?: boolean;
@ApiPropertyOptional() watching?: boolean;
@ApiPropertyOptional({
enum: StatusCategory,
enumName: 'StatusCategory',
isArray: true,
})
categories?: StatusCategory[];
@ApiPropertyOptional({
enum: IssuePriority,
enumName: 'IssuePriority',
isArray: true,
})
priorities?: IssuePriority[];
@ApiPropertyOptional() bugsOnly?: boolean;
@ApiPropertyOptional() overdue?: boolean;
@ApiPropertyOptional() search?: string;
}
export class MyViewDto {
@ApiProperty({ format: 'uuid' }) id!: string;
@ApiProperty({ example: 'Bugs críticos de todos mis proyectos' })
name!: string;
@ApiProperty({ type: MyViewCriteriaResponseDto })
criteria!: MyViewCriteriaResponseDto;
@ApiProperty({ format: 'date-time' }) createdAt!: string;
}
export class SavedFilterIdDto {
@ApiProperty({ format: 'uuid' }) id!: string;
}