feat(#240): Mission Control Strip — backend + frontend implementation #245

Merged
marcel merged 26 commits from feat/issue-240-mission-control-strip into main 2026-04-16 13:41:34 +02:00
2 changed files with 155 additions and 77 deletions
Showing only changes of commit 23410aa4b8 - Show all commits

View File

@@ -660,6 +660,70 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/transcription/weekly-stats": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getWeeklyStats"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/transcription/transcription-queue": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getTranscriptionQueue"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/transcription/segmentation-queue": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getSegmentationQueue"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/transcription/ready-to-read": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["getReadyToRead"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/tags": {
parameters: {
query?: never;
@@ -676,32 +740,6 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/transcription/segmentation-queue": {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
get: operations["getSegmentationQueue"];
put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never;
};
"/api/transcription/transcription-queue": {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
get: operations["getTranscriptionQueue"];
put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never;
};
"/api/transcription/ready-to-read": {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
get: operations["getReadyToRead"];
put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never;
};
"/api/transcription/weekly-stats": {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
get: operations["getTranscriptionWeeklyStats"];
put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never;
};
"/api/documents/{id}/needs-expert": {
parameters: { query?: never; header?: never; path: { id: string; }; cookie?: never; };
get?: never; put?: never; post?: never; delete?: never; options?: never; head?: never;
patch: operations["toggleNeedsExpert"];
trace?: never;
};
"/api/stats": {
parameters: {
query?: never;
@@ -1476,11 +1514,13 @@ export interface components {
/** Format: double */
height?: number;
};
StatsDTO: {
TranscriptionWeeklyStatsDTO: {
/** Format: int64 */
totalPersons?: number;
segmentationCount: number;
/** Format: int64 */
totalDocuments?: number;
transcriptionCount: number;
/** Format: int64 */
readyCount: number;
};
TranscriptionQueueItemDTO: {
/** Format: uuid */
@@ -1495,20 +1535,17 @@ export interface components {
/** Format: int32 */
reviewedBlockCount: number;
};
TranscriptionWeeklyStatsDTO: {
StatsDTO: {
/** Format: int64 */
segmentationCount: number;
totalPersons?: number;
/** Format: int64 */
transcriptionCount: number;
/** Format: int64 */
readyCount: number;
totalDocuments?: number;
};
PersonSummaryDTO: {
title?: string;
/** Format: uuid */
id?: string;
displayName?: string;
personType?: string;
firstName?: string;
lastName?: string;
/** Format: int64 */
@@ -1519,6 +1556,7 @@ export interface components {
deathYear?: number;
alias?: string;
notes?: string;
personType?: string;
};
TrainingInfoResponse: {
/** Format: int32 */
@@ -1560,10 +1598,10 @@ export interface components {
timeout?: number;
};
PageNotificationDTO: {
/** Format: int32 */
totalPages?: number;
/** Format: int64 */
totalElements?: number;
/** Format: int32 */
totalPages?: number;
pageable?: components["schemas"]["PageableObject"];
first?: boolean;
last?: boolean;
@@ -3141,6 +3179,86 @@ export interface operations {
};
};
};
getWeeklyStats: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["TranscriptionWeeklyStatsDTO"];
};
};
};
};
getTranscriptionQueue: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["TranscriptionQueueItemDTO"][];
};
};
};
};
getSegmentationQueue: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["TranscriptionQueueItemDTO"][];
};
};
};
};
getReadyToRead: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["TranscriptionQueueItemDTO"][];
};
};
};
};
searchTags: {
parameters: {
query?: {
@@ -3163,46 +3281,6 @@ export interface operations {
};
};
};
getSegmentationQueue: {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
requestBody?: never;
responses: {
/** @description OK */
200: { headers: { [name: string]: unknown; }; content: { "*/*": components["schemas"]["TranscriptionQueueItemDTO"][]; }; };
};
};
getTranscriptionQueue: {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
requestBody?: never;
responses: {
/** @description OK */
200: { headers: { [name: string]: unknown; }; content: { "*/*": components["schemas"]["TranscriptionQueueItemDTO"][]; }; };
};
};
getReadyToRead: {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
requestBody?: never;
responses: {
/** @description OK */
200: { headers: { [name: string]: unknown; }; content: { "*/*": components["schemas"]["TranscriptionQueueItemDTO"][]; }; };
};
};
getTranscriptionWeeklyStats: {
parameters: { query?: never; header?: never; path?: never; cookie?: never; };
requestBody?: never;
responses: {
/** @description OK */
200: { headers: { [name: string]: unknown; }; content: { "*/*": components["schemas"]["TranscriptionWeeklyStatsDTO"]; }; };
};
};
toggleNeedsExpert: {
parameters: { query?: never; header?: never; path: { id: string; }; cookie?: never; };
requestBody?: never;
responses: {
/** @description OK */
200: { headers: { [name: string]: unknown; }; content: { "*/*": components["schemas"]["Document"]; }; };
};
};
getStats: {
parameters: {
query?: never;