2026-07-20 18:41:02 +03:00

75 lines
2.5 KiB
JavaScript

export const DEFAULT_ACTIONS = {
ROW_CREATE: 'Создание строки',
ROW_DELETE: 'Удаление строки',
ACCESS_EXTEND: 'Продление этапа',
ACCESS_WINDOW_CHANGE: 'Изменение этапа',
USER_ROLE_CHANGE: 'Изменение роли пользователя',
CREATE_TASK: 'Создание задачи',
// UPDATE_TASK: 'Обновление задачи', //сейчас нет события
// DELETE_TASK: 'Удаление задачи',
USER_CREATE: 'Создание пользователя',
USER_ACCESS_GRANTED: 'Предоставление доступа к ССП/РФ',
USER_ACCESS_REVOKED: 'Отмена доступа к ССП/РФ',
VSP_CREATE: 'Создание ВСП',
VSP_UPDATE: 'Обновление ВСП',
DELETE_VSP: 'Удаление ВСП',
};
export const ENTITY_RUSSIAN_NAMES = {
ROW: ['строки', 'строка'],
PROJECT: ['проекта', 'проект'],
TABLE: ['таблицы', 'таблица'],
STAGE: ['этапа', 'этап'],
SSP: ['ССП/РФ', 'ССП/РФ'],
TASKS: ['задач', 'задачи'],
TASK: ['задачи', 'задача'],
USER_ACCESS: ['доступа к ССП/РФ', 'доступ к ССП/РФ'],
USER: ['пользователя', 'пользователь'],
ACCESS_WINDOW: ['этапа', 'этап'],
ACCESS: ['этапа', 'этап'],
USER_ROLE: ['роли пользователя', 'роль пользователя'],
VSP: ['ВСП', 'ВСП'],
};
export const ACTION_RUSSIAN_NAMES = {
CREATE: 'Создание',
UPDATE: 'Обновление',
DELETE: 'Удаление',
CHANGE: 'Изменение',
GET: 'Получение',
GRANTED: 'Предоставление',
REVOKED: 'Отмена',
EXTEND: 'Продление',
};
export const getRussianNamesForType = (name) => {
if (!name) return name;
let entityTranslation = '';
const sortedEntities = Object.keys(ENTITY_RUSSIAN_NAMES).sort(
(a, b) => b[0].length - a[0].length,
);
for (const entity of sortedEntities) {
if (name.includes(entity)) {
entityTranslation = ENTITY_RUSSIAN_NAMES[entity][0];
break;
}
}
let actionTranslation = '';
for (const action of Object.keys(ACTION_RUSSIAN_NAMES)) {
if (name.includes(action)) {
actionTranslation = ACTION_RUSSIAN_NAMES[action];
break;
}
}
if (!actionTranslation && !entityTranslation) {
return name;
}
return `${actionTranslation} ${entityTranslation}`.trim();
};