diff options
author | stanislavh <stanislav.honcharov@sonarsource.com> | 2023-10-09 14:50:19 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-10-10 20:02:45 +0000 |
commit | 7b7e4bcfc75cb76a8e2c87a67a462c6625382658 (patch) | |
tree | 3b754a790bce746c2e7f55045704f338ba6a873c /server/sonar-web | |
parent | d2980aff4d6bc9b1a0b6a0e698146aaa916de158 (diff) | |
download | sonarqube-7b7e4bcfc75cb76a8e2c87a67a462c6625382658.tar.gz sonarqube-7b7e4bcfc75cb76a8e2c87a67a462c6625382658.zip |
[NO-JIRA] Add override icon on rules list
Diffstat (limited to 'server/sonar-web')
4 files changed, 49 insertions, 5 deletions
diff --git a/server/sonar-web/design-system/src/components/icons/OverridenIcon.tsx b/server/sonar-web/design-system/src/components/icons/OverridenIcon.tsx new file mode 100644 index 00000000000..45419b6b54d --- /dev/null +++ b/server/sonar-web/design-system/src/components/icons/OverridenIcon.tsx @@ -0,0 +1,44 @@ +/* + * SonarQube + * Copyright (C) 2009-2023 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +import { useTheme } from '@emotion/react'; +import { themeColor } from '../../helpers/theme'; +import { CustomIcon, IconProps } from './Icon'; + +export function OverridenIcon({ fill = 'currentColor', ...iconProps }: Readonly<IconProps>) { + const theme = useTheme(); + const fillColor = themeColor(fill)({ theme }); + return ( + <CustomIcon {...iconProps}> + <path + clipRule="evenodd" + d="M2.5 2.5L2.5 5.5L5.5 5.5L5.5 2.5L2.5 2.5ZM1.5 1C1.22386 1 1 1.22386 1 1.5L0.999999 6.5C0.999999 6.77614 1.22386 7 1.5 7L6.5 7C6.77614 7 7 6.77614 7 6.5L7 1.5C7 1.22386 6.77614 1 6.5 1L1.5 1Z" + fill={fillColor} + fillRule="evenodd" + /> + <path + clipRule="evenodd" + d="M3.25 11V7H4.78913V11C4.78913 11.1381 4.90398 11.25 5.04565 11.25H9.15V12.75H5.04565C4.05394 12.75 3.25 11.9665 3.25 11Z" + fill={fillColor} + fillRule="evenodd" + /> + <circle cx="11.5" cy="11.5" fill={fillColor} r="3.5" /> + </CustomIcon> + ); +} diff --git a/server/sonar-web/design-system/src/components/icons/index.ts b/server/sonar-web/design-system/src/components/icons/index.ts index 5bb8abda23c..8671cd76022 100644 --- a/server/sonar-web/design-system/src/components/icons/index.ts +++ b/server/sonar-web/design-system/src/components/icons/index.ts @@ -54,6 +54,7 @@ export { MenuSearchIcon } from './MenuSearchIcon'; export { NoDataIcon } from './NoDataIcon'; export { OpenCloseIndicator } from './OpenCloseIndicator'; export { OpenNewTabIcon } from './OpenNewTabIcon'; +export { OverridenIcon } from './OverridenIcon'; export { OverviewQGNotComputedIcon } from './OverviewQGNotComputedIcon'; export { OverviewQGPassedIcon } from './OverviewQGPassedIcon'; export { PencilIcon } from './PencilIcon'; diff --git a/server/sonar-web/src/main/js/api/quality-profiles.ts b/server/sonar-web/src/main/js/api/quality-profiles.ts index 9821c59aabd..b58a77561fe 100644 --- a/server/sonar-web/src/main/js/api/quality-profiles.ts +++ b/server/sonar-web/src/main/js/api/quality-profiles.ts @@ -195,7 +195,7 @@ export function getProfileChangelog( export interface RuleCompare { key: string; name: string; - cleanCodeAttributeCategory: CleanCodeAttributeCategory; + cleanCodeAttributeCategory?: CleanCodeAttributeCategory; impacts: Array<{ softwareQuality: SoftwareQuality; severity: SoftwareImpactSeverity; diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx index f00c8d36352..6915112c558 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx +++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx @@ -25,13 +25,13 @@ import { InheritanceIcon, Link, Note, + OverridenIcon, themeBorder, } from 'design-system'; import * as React from 'react'; import { Profile, deactivateRule } from '../../../api/quality-profiles'; import ConfirmButton from '../../../components/controls/ConfirmButton'; import Tooltip from '../../../components/controls/Tooltip'; -import SeverityIcon from '../../../components/icons/SeverityIcon'; import { CleanCodeAttributePill } from '../../../components/shared/CleanCodeAttributePill'; import SoftwareImpactPill from '../../../components/shared/SoftwareImpactPill'; import TagsList from '../../../components/tags/TagsList'; @@ -99,7 +99,6 @@ export default class RuleListItem extends React.PureComponent<Props> { return ( <div className="sw-mr-2 sw-shrink-0"> - <SeverityIcon severity={activation.severity} /> {selectedProfile && selectedProfile.parentName && ( <> {activation.inherit === 'OVERRIDES' && ( @@ -110,7 +109,7 @@ export default class RuleListItem extends React.PureComponent<Props> { selectedProfile.parentName, )} > - <InheritanceIcon className="sw-ml-1" fill="destructiveIconFocus" /> + <OverridenIcon className="sw-ml-1" /> </Tooltip> )} {activation.inherit === 'INHERITED' && ( @@ -121,7 +120,7 @@ export default class RuleListItem extends React.PureComponent<Props> { selectedProfile.parentName, )} > - <InheritanceIcon className="sw-ml-1" fill="currentColor" /> + <InheritanceIcon className="sw-ml-1" /> </Tooltip> )} </> |