Skip to content

Commit

Permalink
EPMRPP-92220 || Member Viewer. Project Settings (#4169)
Browse files Browse the repository at this point in the history
* EPMRPP-92220 || Member Viewer. Project Settings

* EPMRPP-92220 || translations
  • Loading branch information
maria-hambardzumian authored Jan 23, 2025
1 parent e54f4a5 commit 6b6b652
Show file tree
Hide file tree
Showing 15 changed files with 112 additions and 73 deletions.
6 changes: 3 additions & 3 deletions app/localization/translated/be.json
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,8 @@
"NoItemsDemo.noDataTitle": "У вас няма дадзеных",
"NoPatternAnalysis.description": "Сістэма можа аўтаматычна аналізаваць вынікі тэсту, параўноўваючы трасіроўку стэка вынікаў тэсту з патэрнамі, захаванымі ў сістэме.",
"NoPatternAnalysis.title": "Няма патэрнаў",
"NoPatternsAppear.description": "Шаблоны з'явяцца тут пасля стварэння вашай камандай",
"NoPatternsYet.title": "Шаблонаў пакуль няма",
"NoProjectAssignments.noProjectAssignments": "Ніякіх праектных прызначэнняў",
"NoResultsForFilter.checkQuery": "Праверце ваш запыт і паспрабуйце зноў",
"NonPassedTestCasesTrendChart.nonPassedCases": "сцэнарыяў, якія не прайшлі",
Expand Down Expand Up @@ -1721,7 +1723,6 @@
"ProjectsPage.assignError": "Адбылася памылка пры прысваенні праекту",
"ProjectsPage.assignSuccess": "Вы прызначаныя на праект",
"ProjectsPage.deleteError": "Пры выдаленні праекта ўзнікла памылка",
"ProjectsPage.deleteProjectSuccess": "Праект ''{name}'' быў паспяхова выдалены",
"ProjectsPage.noResultsDescription": "Вашым крытэрам пошуку або фільтра не знойдзена ніводнага выніку. Калі ласка, паспрабуйце іншыя ключавыя словы або змяніце налады фільтра.",
"ProjectsPage.projectDuplicateHint": "Праект з дадзеным найменнем ўжо існуе ў сістэме",
"ProjectsPage.projectExists": "Праект з такой назвай ужо існуе ў гэтай арганізацыі",
Expand Down Expand Up @@ -2054,7 +2055,6 @@
"UserBlock.adminBadge": "Адміністратар",
"UserBlock.logout": "Выйсці",
"UserBlock.profile": "Профіль",
"UserBlock.youBadge": "Вы",
"UserInfo.submitError": "Ошибка! Не удается созранить изменения",
"UserInfo.submitSuccess": "Змены паспяхова захаваны",
"ViewTabs.disabledAnalyzer": "Сэрвіс ANALYZER не запушчаны",
Expand Down Expand Up @@ -2189,4 +2189,4 @@
"notFoundPage.oops": "Упс. Здаецца, Вы згубіліся.",
"notFoundPage.pageNotExist": "Старонка, якую Вы шукаеце, не існуе.",
"notFoundPage.toHome": "Забярыце мяне адсюль"
}
}
6 changes: 3 additions & 3 deletions app/localization/translated/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,8 @@
"NoItemsDemo.noDataTitle": "No tienes datos",
"NoPatternAnalysis.description": "El sistema puede analizar automáticamente los resultados de las pruebas comparando la traza de la pila de resultados de las pruebas con los patrones almacenados en el sistema.",
"NoPatternAnalysis.title": "No hay patrones",
"NoPatternsAppear.description": "Patterns will appear here once created by your team",
"NoPatternsYet.title": "No patterns yet",
"NoProjectAssignments.noProjectAssignments": "No project assignments",
"NoResultsForFilter.checkQuery": "Verifique su consulta e inténtelo nuevamente",
"NonPassedTestCasesTrendChart.nonPassedCases": "escenarios no aprobados",
Expand Down Expand Up @@ -1721,7 +1723,6 @@
"ProjectsPage.assignError": "Ocurrió un error al asignar al proyecto",
"ProjectsPage.assignSuccess": "Ha sido asignado al proyecto",
"ProjectsPage.deleteError": "Ocurrió un error al eliminar el proyecto",
"ProjectsPage.deleteProjectSuccess": "The project ''{name}'' has been successfully deleted",
"ProjectsPage.noResultsDescription": "Your search or filter criteria didn't match any results. Please try different keywords or adjust your filter settings.",
"ProjectsPage.projectDuplicateHint": "Ya existe un proyecto con este nombre en el esta organización",
"ProjectsPage.projectExists": "Project with the same name already exists in this organization",
Expand Down Expand Up @@ -2054,7 +2055,6 @@
"UserBlock.adminBadge": "Administrador",
"UserBlock.logout": "Cerrar sesión",
"UserBlock.profile": "Perfil",
"UserBlock.youBadge": "You",
"UserInfo.submitError": "¡Error! No se pueden guardar los cambios",
"UserInfo.submitSuccess": "Cambios guardados con éxito",
"ViewTabs.disabledAnalyzer": "El servicio de ANALIZADOR no está iniciado",
Expand Down Expand Up @@ -2189,4 +2189,4 @@
"notFoundPage.oops": "Ups. Página no encontrada.",
"notFoundPage.pageNotExist": "La página que busca no existe.",
"notFoundPage.toHome": "Llévame de aquí"
}
}
6 changes: 3 additions & 3 deletions app/localization/translated/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,8 @@
"NoItemsDemo.noDataTitle": "У вас нет данных",
"NoPatternAnalysis.description": "Система может автоматически анализировать результаты теста, сравнивая трассировку стека результатов теста с паттернами, сохраненными в системе.",
"NoPatternAnalysis.title": "Нет Паттернов",
"NoPatternsAppear.description": "Шаблоны появятся здесь после того, как будут созданы вашей командой",
"NoPatternsYet.title": "Пока шаблонов нет",
"NoProjectAssignments.noProjectAssignments": "Никаких проектных назначений",
"NoResultsForFilter.checkQuery": "Проверьте ваш запрос и попробуйте снова",
"NonPassedTestCasesTrendChart.nonPassedCases": "непрошедших сценариев",
Expand Down Expand Up @@ -1721,7 +1723,6 @@
"ProjectsPage.assignError": "В процессе назначения на проект произошла ошибка",
"ProjectsPage.assignSuccess": "Вы назначены на проект",
"ProjectsPage.deleteError": "При удалении проекта возникла ошибка",
"ProjectsPage.deleteProjectSuccess": "Проект ''{name}'' был успешно удален",
"ProjectsPage.noResultsDescription": "Ваши критерии поиска или фильтра не дали никаких результатов. Попробуйте другие ключевые слова или измените настройки фильтра.",
"ProjectsPage.projectDuplicateHint": "Проект с данным наименованием уже существует в этой организации",
"ProjectsPage.projectExists": "Проект с таким названием уже существует в этой организации",
Expand Down Expand Up @@ -2054,7 +2055,6 @@
"UserBlock.adminBadge": "Администратор",
"UserBlock.logout": "Выйти",
"UserBlock.profile": "Профиль",
"UserBlock.youBadge": "Вы",
"UserInfo.submitError": "Ошибка! Не удается созранить изменения",
"UserInfo.submitSuccess": "Изменения успешно сохранены",
"ViewTabs.disabledAnalyzer": "Сервис ANALYZER не запущен",
Expand Down Expand Up @@ -2189,4 +2189,4 @@
"notFoundPage.oops": "Упс. Страница не найдена.",
"notFoundPage.pageNotExist": "Страница, которую Вы ищете, не существует.",
"notFoundPage.toHome": "Заберите меня отсюда"
}
}
6 changes: 3 additions & 3 deletions app/localization/translated/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,8 @@
"NoItemsDemo.noDataTitle": "У вас немає даних",
"NoPatternAnalysis.description": "Система може автоматично аналізувати результати тесту, порівнюючи трасування стека результатів тесту з патернами, збереженими у системі.",
"NoPatternAnalysis.title": "Немає Патернів",
"NoPatternsAppear.description": "Шаблони з’являться тут, коли їх створить ваша команда",
"NoPatternsYet.title": "Ще немає шаблонів",
"NoProjectAssignments.noProjectAssignments": "Ніяких проектних призначень",
"NoResultsForFilter.checkQuery": "Перевірте ваш запит і спробуйте знову",
"NonPassedTestCasesTrendChart.nonPassedCases": "сценаріїв непрошедших",
Expand Down Expand Up @@ -1721,7 +1723,6 @@
"ProjectsPage.assignError": "У процесі призначення на проект сталася помилка",
"ProjectsPage.assignSuccess": "Ви призначені на проект",
"ProjectsPage.deleteError": "При видаленні проекту виникла помилка",
"ProjectsPage.deleteProjectSuccess": "Проект ''{name}'' успішно видалено",
"ProjectsPage.noResultsDescription": "Ваші критерії пошуку чи фільтра не відповідають жодному результату. Будь ласка, спробуйте інші ключові слова або змініть налаштування фільтра.",
"ProjectsPage.projectDuplicateHint": "Проект з таким найменуванням вже існує в цій організації",
"ProjectsPage.projectExists": "Проект з такою назвою вже існує в цій організації",
Expand Down Expand Up @@ -2054,7 +2055,6 @@
"UserBlock.adminBadge": "Адміністратор",
"UserBlock.logout": "Вийти",
"UserBlock.profile": "Профіль",
"UserBlock.youBadge": "Ви",
"UserInfo.submitError": "Помилка! Не вдається зберегти зміни",
"UserInfo.submitSuccess": "Зміни успішно збережено",
"ViewTabs.disabledAnalyzer": "Сервіс ANALYZER не запущено",
Expand Down Expand Up @@ -2189,4 +2189,4 @@
"notFoundPage.oops": "Упс. Сторінка не знайдена.",
"notFoundPage.pageNotExist": "Сторінка, яку Ви шукаєте, не існує.",
"notFoundPage.toHome": "Заберіть мене звідси"
}
}
6 changes: 3 additions & 3 deletions app/localization/translated/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,8 @@
"NoItemsDemo.noDataTitle": "您没有数据",
"NoPatternAnalysis.description": "系统可以通过将测试结果堆栈跟踪与系统中保存的模板进行比较来自动分析测试结果",
"NoPatternAnalysis.title": "无模板规则",
"NoPatternsAppear.description": "Patterns will appear here once created by your team",
"NoPatternsYet.title": "No patterns yet",
"NoProjectAssignments.noProjectAssignments": "No project assignments",
"NoResultsForFilter.checkQuery": "请检查您的查询条件,然后重试",
"NonPassedTestCasesTrendChart.nonPassedCases": "的未通过用例",
Expand Down Expand Up @@ -1721,7 +1723,6 @@
"ProjectsPage.assignError": "分配给项目时出现错误",
"ProjectsPage.assignSuccess": "您已被分配至该项目吗",
"ProjectsPage.deleteError": "删除项目的过程中出现错误",
"ProjectsPage.deleteProjectSuccess": "The project ''{name}'' has been successfully deleted",
"ProjectsPage.noResultsDescription": "Your search or filter criteria didn't match any results. Please try different keywords or adjust your filter settings.",
"ProjectsPage.projectDuplicateHint": "Project with the same name already exists in this organization",
"ProjectsPage.projectExists": "Project with the same name already exists in this organization",
Expand Down Expand Up @@ -2054,7 +2055,6 @@
"UserBlock.adminBadge": "管理",
"UserBlock.logout": "登出",
"UserBlock.profile": "简介",
"UserBlock.youBadge": "You",
"UserInfo.submitError": "错误!无法保存更改",
"UserInfo.submitSuccess": "已保存更改",
"ViewTabs.disabledAnalyzer": "服务分析器未运行",
Expand Down Expand Up @@ -2189,4 +2189,4 @@
"notFoundPage.oops": "哎呀,看起来您迷路了。",
"notFoundPage.pageNotExist": "您要查找的页面不存在。",
"notFoundPage.toHome": "带我离开这里"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -195,9 +195,11 @@ const AutoAnalysis = ({
>
<Checkbox>{formatMessage(messages.allMessagesShouldMatch)}</Checkbox>
</FieldElement>
<Button type="submit" disabled={isFieldDisabled} data-automation-id="submitButton">
{formatMessage(COMMON_LOCALE_KEYS.SUBMIT)}
</Button>
{hasPermission && (
<Button type="submit" disabled={isFieldDisabled} data-automation-id="submitButton">
{formatMessage(COMMON_LOCALE_KEYS.SUBMIT)}
</Button>
)}
{isPending && <LabeledPreloader text={formatMessage(COMMON_LOCALE_KEYS.processData)} />}
</form>
</Layout>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,11 @@ const SimilarItems = ({
<FieldNumber postfix="%" max={100} />
</FieldErrorHint>
</FieldElement>
<Button type="submit" disabled={isFieldDisabled} data-automation-id="submitButton">
{formatMessage(COMMON_LOCALE_KEYS.SUBMIT)}
</Button>
{hasPermission && (
<Button type="submit" disabled={isFieldDisabled} data-automation-id="submitButton">
{formatMessage(COMMON_LOCALE_KEYS.SUBMIT)}
</Button>
)}
{isPending && <LabeledPreloader text={formatMessage(COMMON_LOCALE_KEYS.processData)} />}
</form>
</Layout>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,11 @@ const UniqueErrors = ({
>
<Dropdown options={dropdownOptions} mobileDisabled />
</FieldElement>
<Button type="submit" disabled={isFieldDisabled} data-automation-id="submitButton">
{formatMessage(COMMON_LOCALE_KEYS.SUBMIT)}
</Button>
{hasPermission && (
<Button type="submit" disabled={isFieldDisabled} data-automation-id="submitButton">
{formatMessage(COMMON_LOCALE_KEYS.SUBMIT)}
</Button>
)}
{isPending && <LabeledPreloader text={formatMessage(COMMON_LOCALE_KEYS.processData)} />}
</form>
</Layout>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,19 +122,23 @@ export const DefectTypes = ({ setHeaderTitleNode }) => {

useEffect(() => {
setHeaderTitleNode(
<span className={cx('button')}>
<Button
disabled={!isEditable || !canAddNewDefectType}
onClick={() =>
onAdd(defectTypes[DEFECT_TYPES_SEQUENCE[0]][0], () =>
trackEvent(PROJECT_SETTINGS_DEFECT_TYPES_EVENTS.CLICK_CREATE_BUTTON),
)
}
data-automation-id={'createDefectTypeButton'}
>
{formatMessage(messages.createDefectHeader)}
</Button>
</span>,
<>
{isEditable && (
<span className={cx('button')}>
<Button
disabled={!isEditable || !canAddNewDefectType}
onClick={() =>
onAdd(defectTypes[DEFECT_TYPES_SEQUENCE[0]][0], () =>
trackEvent(PROJECT_SETTINGS_DEFECT_TYPES_EVENTS.CLICK_CREATE_BUTTON),
)
}
data-automation-id={'createDefectTypeButton'}
>
{formatMessage(messages.createDefectHeader)}
</Button>
</span>
)}
</>,
);

return () => setHeaderTitleNode(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,32 @@ import Parser from 'html-react-parser';
import plusIcon from 'common/img/plus-button-inline.svg';
import { Button } from '@reportportal/ui-kit';
import PropTypes from 'prop-types';
import styles from './emptyRuleState.scss';
import { canUpdateSettings } from 'common/utils/permissions';
import { userRolesSelector } from 'controllers/pages';
import { useSelector } from 'react-redux';
import { messages } from '../messages';
import styles from './emptyRuleState.scss';

const cx = classNames.bind(styles);

export const EmptyRuleState = ({ ruleName, onCreateClick }) => {
const { formatMessage } = useIntl();
const userRoles = useSelector(userRolesSelector);
const isUpdateSettingAvailable = canUpdateSettings(userRoles);
return (
<div className={cx('empty-rule-state')}>
<span className={cx('label')}>{formatMessage(messages.noItemsMessage, { ruleName })}</span>
<Button
onClick={onCreateClick}
variant={'text'}
className={cx('button')}
icon={Parser(plusIcon)}
data-automation-id="createRuleFromEmptyStateButton"
>
{formatMessage(messages.create)}
</Button>
{isUpdateSettingAvailable && (
<Button
onClick={onCreateClick}
variant={'text'}
className={cx('button')}
icon={Parser(plusIcon)}
data-automation-id="createRuleFromEmptyStateButton"
>
{formatMessage(messages.create)}
</Button>
)}
</div>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -369,9 +369,7 @@ export const RuleGroup = ({ pluginName, ruleDescription, rules, isPluginEnabled,
)}
</div>
) : (
isUpdateSettingAvailable && (
<EmptyRuleState ruleName={pluginName} onCreateClick={onAdd} />
)
<EmptyRuleState ruleName={pluginName} onCreateClick={onAdd} />
)}
</div>
</Layout>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ export const messages = defineMessages({
id: 'NoPatternAnalysis.title',
defaultMessage: 'No Pattern Rules',
},
noPatternsYetTitle: {
id: 'NoPatternsYet.title',
defaultMessage: 'No patterns yet',
},
noPatternsAppearDescription: {
id: 'NoPatternsAppear.description',
defaultMessage: 'Patterns will appear here once created by your team',
},
noPatternAnalysisDescription: {
id: 'NoPatternAnalysis.description',
defaultMessage:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,17 @@ export const PatternAnalysis = ({ setHeaderTitleNode }) => {
</SettingsPageContent>
) : (
<EmptyStatePage
title={formatMessage(messages.noPatternAnalysisTitle)}
description={formatMessage(messages.noPatternAnalysisDescription)}
buttonName={formatMessage(messages.create)}
title={formatMessage(
isAbleToCreate ? messages.noPatternAnalysisTitle : messages.noPatternsYetTitle,
)}
description={formatMessage(
isAbleToCreate
? messages.noPatternAnalysisDescription
: messages.noPatternsAppearDescription,
)}
buttonName={isAbleToCreate && formatMessage(messages.create)}
buttonDataAutomationId="createPatternButton"
documentationLink={docsReferences.emptyStatePatternAnalysisDocs}
disableButton={!isAbleToCreate}
handleButton={onAddPattern}
handleDocumentationClick={handleDocumentationClick}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ import BinIcon from 'common/img/newIcons/bin-inline.svg';
import CopyIcon from 'common/img/newIcons/copy-inline.svg';
import { docsReferences, createExternalLink } from 'common/utils';
import { PROJECT_SETTINGS_PATTERN_ANALYSIS_EVENTS } from 'analyticsEvents/projectSettingsPageEvents';
import { canUpdateSettings } from 'common/utils/permissions';
import { userRolesSelector } from 'controllers/pages';
import { PatternRuleContent, FieldElement, RuleList, FormattedDescription } from '../../elements';
import { Layout } from '../../layout';
import { messages } from '../messages';
Expand All @@ -53,14 +55,20 @@ export const PatternAnalysisContent = ({
const { formatMessage } = useIntl();
const dispatch = useDispatch();
const PAState = useSelector(PAStateSelector);
const userRoles = useSelector(userRolesSelector);
const canCreatePattern = canUpdateSettings(userRoles);

useEffect(() => {
setHeaderTitleNode(
<span className={cx('button')} onClick={onAddPattern}>
<Button disabled={disabled} data-automation-id="createPatternButton">
{formatMessage(messages.create)}
</Button>
</span>,
<>
{canCreatePattern && (
<span className={cx('button')} onClick={onAddPattern}>
<Button disabled={disabled} data-automation-id="createPatternButton">
{formatMessage(messages.create)}
</Button>
</span>
)}
</>,
);

return () => setHeaderTitleNode(null);
Expand Down
Loading

0 comments on commit 6b6b652

Please sign in to comment.