UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: вкладка хранилища в модальных настройках

This commit is contained in:
DCCONSTRUCTIONS
2026-04-27 15:38:23 +03:00
parent d9f534efcd
commit c3d2d78724
13 changed files with 322 additions and 9 deletions
@@ -49,6 +49,13 @@ export const WORKSPACE_SETTINGS: Record<TWorkspaceSettingsTabs, TWorkspaceSettin
access: [EUserWorkspaceRoles.ADMIN, EUserWorkspaceRoles.MEMBER],
highlight: (pathname: string, baseUrl: string) => pathname === `${baseUrl}/settings/exports/`,
},
storage: {
key: "storage",
i18n_label: "workspace_settings.settings.storage.title",
href: `/settings/storage`,
access: [EUserWorkspaceRoles.ADMIN],
highlight: (pathname: string, baseUrl: string) => pathname === `${baseUrl}/settings/storage/`,
},
webhooks: {
key: "webhooks",
i18n_label: "workspace_settings.settings.webhooks.title",
@@ -75,6 +82,7 @@ export const GROUPED_WORKSPACE_SETTINGS: Record<WORKSPACE_SETTINGS_CATEGORY, TWo
WORKSPACE_SETTINGS["members"],
WORKSPACE_SETTINGS["billing-and-plans"],
WORKSPACE_SETTINGS["export"],
WORKSPACE_SETTINGS["storage"],
],
[WORKSPACE_SETTINGS_CATEGORY.FEATURES]: [WORKSPACE_SETTINGS["ai-voice-tasker"]],
[WORKSPACE_SETTINGS_CATEGORY.DEVELOPER]: [WORKSPACE_SETTINGS["webhooks"]],
@@ -1730,6 +1730,9 @@ export default {
},
},
},
storage: {
title: "Storage",
},
webhooks: {
heading: "Webhooks",
description: "Automate notifications to external services when project events occur.",
@@ -1892,6 +1892,9 @@ export default {
},
},
},
storage: {
title: "Хранилище",
},
webhooks: {
heading: "Вебхуки",
description: "Автоматизируйте уведомления во внешние сервисы при событиях проекта.",
+1
View File
@@ -15,6 +15,7 @@ export type TWorkspaceSettingsTabs =
| "members"
| "billing-and-plans"
| "export"
| "storage"
| "webhooks"
| "ai-voice-tasker";
export type TWorkspaceSettingsItem = {
+47
View File
@@ -240,6 +240,53 @@ export interface IWorkspaceAnalyticsResponse {
completion_chart: Record<string, unknown>;
}
export interface IWorkspaceStorageProjectSummary {
id: string;
name: string;
identifier: string;
file_count: number;
blob_count: number;
logical_size: number;
physical_size: number;
dedup_savings: number;
failed_upload_count: number;
failed_upload_size: number;
soft_deleted_count: number;
soft_deleted_size: number;
uploaded_without_blob_count: number;
}
export interface IWorkspaceStorageSummaryResponse {
workspace: {
id: string;
name: string;
slug: string;
upload_file_size_limit_enabled: boolean;
upload_file_size_limit: number;
};
summary: {
file_count: number;
blob_count: number;
logical_size: number;
physical_size: number;
dedup_savings: number;
uploaded_without_blob_count: number;
};
diagnostics: {
failed_upload_count: number;
failed_upload_size: number;
stale_unuploaded_count: number;
stale_unuploaded_size: number;
soft_deleted_count: number;
soft_deleted_size: number;
orphaned_blob_count: number;
orphaned_blob_size: number;
missing_blob_count: number;
missing_blob_size: number;
};
projects: IWorkspaceStorageProjectSummary[];
}
export type TWorkspacePaginationInfo = TPaginationInfo & {
results: IWorkspace[];
};