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

@@ -0,0 +1,32 @@
import { type } from '@ngrx/signals';
import { eventGroup } from '@ngrx/signals/events';
import {
IssuePage,
MyView,
MyViewCriteria,
} from '@task-stream/web/tracker/domain';
export const myViewsPageEvents = eventGroup({
source: 'My Work Views',
events: {
opened: type<void>(),
/** null: back to «Mis tickets». */
selected: type<string | null>(),
saveRequested: type<{ name: string; criteria: MyViewCriteria }>(),
deleteRequested: type<string>(),
},
});
export const myViewsApiEvents = eventGroup({
source: 'My Views API',
events: {
listed: type<MyView[]>(),
listFailed: type<string>(),
resultsLoaded: type<IssuePage>(),
resultsFailed: type<string>(),
saved: type<string>(),
saveFailed: type<string>(),
deleted: type<string>(),
deleteFailed: type<string>(),
},
});