Implement ticket links and blocker state

This commit is contained in:
2026-03-25 09:12:17 +01:00
parent 3b31e6bb7d
commit 70b90f32d4
34 changed files with 1722 additions and 10 deletions
@@ -0,0 +1,14 @@
import type { TicketLinkTypeModel } from '@/types/models/ticket-link-type-model';
import type { TicketReferenceModel } from '@/types/models/ticket-reference-model';
export type TicketLinkModel = {
id: number;
linked_ticket: TicketReferenceModel;
source_ticket_id: number;
target_ticket_id: number;
ticket_link_type: TicketLinkTypeModel;
ticket_link_type_id: number;
created_at: string;
updated_at: string;
[key: string]: unknown;
};
@@ -0,0 +1,9 @@
export type TicketLinkTypeModel = {
id: number;
label: string;
position: number;
project_id: number;
created_at: string;
updated_at: string;
[key: string]: unknown;
};
@@ -7,8 +7,10 @@ export type TicketModel = {
id: number;
acceptance_criteria: string | null;
board_column_id: number | null;
blocked_comment: string | null;
description: string | null;
field_values?: TicketFieldValueModel[];
is_blocked: boolean;
parent_ticket_id: number | null;
project_id: number;
sequence_number: number;
@@ -0,0 +1,5 @@
export type TicketReferenceModel = {
id: number;
ticket_key: string;
title: string;
};
+8 -5
View File
@@ -2,6 +2,9 @@ import type { BoardColumnModel } from '@/types/models/board-column-model';
import type { ProjectModel } from '@/types/models/project-model';
import type { TeamModel } from '@/types/models/team-model';
import type { TicketFieldDefinitionModel } from '@/types/models/ticket-field-definition-model';
import type { TicketLinkModel } from '@/types/models/ticket-link-model';
import type { TicketLinkTypeModel } from '@/types/models/ticket-link-type-model';
import type { TicketReferenceModel } from '@/types/models/ticket-reference-model';
import type { TicketModel } from '@/types/models/ticket-model';
import type { TicketPriorityModel } from '@/types/models/ticket-priority-model';
import type { TicketTreeNodeModel } from '@/types/models/ticket-tree-node-model';
@@ -66,6 +69,7 @@ export type ProjectTicketMetadataSettingsPageProps = {
project: ProjectModel;
status?: string | null;
ticketFieldDefinitions: TicketFieldDefinitionModel[];
ticketLinkTypes: TicketLinkTypeModel[];
ticketPriorities: TicketPriorityModel[];
ticketTypes: TicketTypeModel[];
};
@@ -84,15 +88,14 @@ export type ProjectBacklogPageProps = {
export type ProjectTicketPageProps = {
canEditTicket: boolean;
childTicketTree: TicketTreeNodeModel[];
parentTicketOptions: Array<{
id: number;
ticket_key: string;
title: string;
}>;
linkedTickets: TicketLinkModel[];
parentTicketOptions: TicketReferenceModel[];
project: ProjectModel;
status?: string | null;
ticket: TicketModel;
ticketFieldDefinitions: TicketFieldDefinitionModel[];
ticketLinkOptions: TicketReferenceModel[];
ticketLinkTypes: TicketLinkTypeModel[];
ticketPriorities: TicketPriorityModel[];
ticketTypes: TicketTypeModel[];
users: UserModel[];