ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: зеркалирование комментариев, вложений и активности внешнего контура

This commit is contained in:
DCCONSTRUCTIONS
2026-04-19 08:53:41 +03:00
parent 8195c3fc80
commit 61a8625a5c
16 changed files with 525 additions and 13 deletions
@@ -336,7 +336,31 @@ export default {
duplicate_of: "Duplicate of",
},
readonly_source_view:
"This request is shown in source-side mode. Direct access to the target contour is not required, and detailed activity and attachments will be synchronized in the next stage.",
"This request is shown in source-side mode. Direct access to the target contour is not required, and changes, comments, and attachments are mirrored here.",
mirror: {
attachments_title: "Attachments from the external contour",
attachments_empty: "No attachments have been added in the external contour yet.",
comments_title: "Comments from the external contour",
comments_empty: "No comments have been added in the external contour yet.",
activity_title: "External contour activity",
activity_empty: "No actions have been recorded for this request in the external contour yet.",
system_actor: "System",
comment_edited: "Edited",
activity_created: "{actor} created the request",
activity_changed: "{actor} changed the “{field}” field",
activity_changed_to: "{actor} changed the “{field}” field to “{newValue}”",
activity_changed_from_to: "{actor} changed the “{field}” field: “{oldValue}” → “{newValue}”",
fields: {
request: "request",
name: "title",
description: "description",
state: "status",
priority: "priority",
due_date: "due date",
assignees: "assignees",
labels: "labels",
},
},
traceability: {
title: "Routing",
description:
@@ -493,7 +493,31 @@ export default {
duplicate_of: "Дубликат",
},
readonly_source_view:
"Запрос показан в source-side режиме. Прямой доступ к целевому контуру не требуется, а подробная активность и вложения будут синхронизированы следующим этапом.",
"Запрос показан в source-side режиме. Прямой доступ к целевому контуру не требуется, а изменения, комментарии и вложения подтягиваются сюда в зеркальном виде.",
mirror: {
attachments_title: "Вложения из внешнего контура",
attachments_empty: "Во внешнем контуре пока нет вложений.",
comments_title: "Комментарии из внешнего контура",
comments_empty: "Во внешнем контуре пока нет комментариев.",
activity_title: "Активность внешнего контура",
activity_empty: "Во внешнем контуре пока нет действий по этому запросу.",
system_actor: "Система",
comment_edited: "Изменено",
activity_created: "{actor} создал(а) запрос",
activity_changed: "{actor} изменил(а) поле «{field}»",
activity_changed_to: "{actor} изменил(а) поле «{field}» на «{newValue}»",
activity_changed_from_to: "{actor} изменил(а) поле «{field}»: «{oldValue}» → «{newValue}»",
fields: {
request: "запрос",
name: "заголовок",
description: "описание",
state: "статус",
priority: "приоритет",
due_date: "срок выполнения",
assignees: "исполнители",
labels: "метки",
},
},
traceability: {
title: "Маршрутизация",
description: "Здесь отображается, из какого контура ушёл запрос, куда он направлен и с каким связанным элементом он сейчас работает.",
@@ -19,11 +19,48 @@ export type TExternalContourIssue = TIssue & {
state_detail?: IStateLite | null;
};
export type TExternalContourMirroredAttachment = {
id: string;
asset_url?: string | null;
attributes?: {
name?: string;
size?: number;
type?: string;
} | null;
download_url?: string | null;
updated_at: string;
uploaded_by?: string | null;
};
export type TExternalContourMirroredComment = {
id: string;
comment_html: string;
created_at: string;
updated_at: string;
edited_at?: string | null;
parent_id?: string | null;
actor_detail?: Pick<IUser, "id" | "display_name" | "avatar_url"> | null;
};
export type TExternalContourMirroredActivity = {
id: string;
verb?: string | null;
field?: string | null;
old_value?: string | null;
new_value?: string | null;
comment?: string | null;
created_at: string;
actor_detail?: Pick<IUser, "id" | "display_name" | "avatar_url"> | null;
};
export type TExternalContourRequest = {
created_at: string;
created_by: string | null;
id: string;
issue: TExternalContourIssue;
mirrored_activity?: TExternalContourMirroredActivity[];
mirrored_attachments?: TExternalContourMirroredAttachment[];
mirrored_comments?: TExternalContourMirroredComment[];
source_decision?: "accepted" | null;
source_decision_at?: string | null;
source_decision_by_name?: string | null;