]> source.dussan.org Git - sonarqube.git/commitdiff
expose ratings and level components (#2257)
authorStas Vilchik <stas.vilchik@sonarsource.com>
Tue, 18 Jul 2017 09:30:11 +0000 (11:30 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 31 Jul 2017 09:27:51 +0000 (11:27 +0200)
server/sonar-web/src/main/js/app/utils/exposeLibraries.js
server/sonar-web/src/main/js/components/ui/CoverageRating.js
server/sonar-web/src/main/js/components/ui/DuplicationsRating.css
server/sonar-web/src/main/js/components/ui/DuplicationsRating.js
server/sonar-web/src/main/js/components/ui/Level.js

index 24927bd3555344c01bdaf1115b373ac4d0d4f3ce..dd928635b8bd55415ebf2f2d9a52cd2b83f76519 100644 (file)
@@ -29,6 +29,9 @@ import ListFooter from '../../components/controls/ListFooter';
 import Tooltip from '../../components/controls/Tooltip';
 import ModalForm from '../../components/common/modal-form';
 import SelectList from '../../components/SelectList';
+import CoverageRating from '../../components/ui/CoverageRating';
+import DuplicationsRating from '../../components/ui/DuplicationsRating';
+import Level from '../../components/ui/Level';
 
 const exposeLibraries = () => {
   window.moment = moment;
@@ -42,6 +45,9 @@ const exposeLibraries = () => {
     Modal,
     Tooltip,
     Select,
+    CoverageRating,
+    DuplicationsRating,
+    Level,
     // deprecated, used in Governance
     ModalForm_deprecated: ModalForm,
     SelectList
index b2edbd48c388382e26db9e5a49c05ec1a496c378..6a88cc2aa631bbbede48082309570d0fd1a710b1 100644 (file)
@@ -24,19 +24,21 @@ import { DonutChart } from '../charts/donut-chart';
 const SIZE_TO_WIDTH_MAPPING = {
   small: 16,
   normal: 24,
-  big: 40
+  big: 40,
+  huge: 60
 };
 
 const SIZE_TO_THICKNESS_MAPPING = {
   small: 2,
   normal: 3,
-  big: 3
+  big: 3,
+  huge: 4
 };
 
 export default class CoverageRating extends React.PureComponent {
   props: {
     value: number | string,
-    size?: 'small' | 'normal' | 'big',
+    size?: 'small' | 'normal' | 'big' | 'huge',
     muted?: boolean
   };
 
index f8b14c03087e14b9f8cf8984401ba15c6e54d050..77d99af4129083a390632479b663758c58c6a98d 100644 (file)
   border-width: 3px;
 }
 
+.duplications-rating-huge {
+  width: 60px;
+  height: 60px;
+  border-width: 4px;
+  border-radius: 30px;
+}
+
 .duplications-rating-muted {
   border-color: #bdbdbd !important;
 }
   height: 12px;
 }
 
+.duplications-rating-huge.duplications-rating-B:after {
+  width: 18px;
+  height: 18px;
+}
+
 .duplications-rating-C {
   border-color: #eabe06;
 }
   height: 16px;
 }
 
+.duplications-rating-huge.duplications-rating-C:after {
+  width: 24px;
+  height: 24px;
+}
+
 .duplications-rating-D {
   border-color: #ed7d20;
 }
   height: 24px;
 }
 
+.duplications-rating-huge.duplications-rating-D:after {
+  width: 36px;
+  height: 36px;
+}
+
 .duplications-rating-E {
   border-color: #d4333f;
 }
   width: 28px;
   height: 28px;
 }
+
+.duplications-rating-huge.duplications-rating-E:after {
+  width: 42px;
+  height: 42px;
+}
index d9a4e68fb6a027c8ae8e889e762e462fac327fd3..43bed15255853afb7cf41bdb6bd21431c97036cc 100644 (file)
@@ -26,7 +26,7 @@ import './DuplicationsRating.css';
 export default class DuplicationsRating extends React.PureComponent {
   props: {
     value: number,
-    size?: 'small' | 'normal' | 'big',
+    size?: 'small' | 'normal' | 'big' | 'huge',
     muted?: boolean
   };
 
@@ -40,6 +40,7 @@ export default class DuplicationsRating extends React.PureComponent {
     const className = classNames('duplications-rating', {
       'duplications-rating-small': size === 'small',
       'duplications-rating-big': size === 'big',
+      'duplications-rating-huge': size === 'huge',
       'duplications-rating-muted': muted,
       'duplications-rating-A': inRange(value, 0, 3),
       'duplications-rating-B': inRange(value, 3, 5),
index 013618021efa052ff62675d053b5cd594af3d01e..2c75e84e32c88824cca74e04402896557a867608 100644 (file)
@@ -25,6 +25,7 @@ import './Level.css';
 
 export default class Level extends React.PureComponent {
   static propTypes = {
+    className: PropTypes.string,
     level: PropTypes.oneOf(['ERROR', 'WARN', 'OK']).isRequired,
     small: PropTypes.bool,
     muted: PropTypes.bool
@@ -37,7 +38,7 @@ export default class Level extends React.PureComponent {
 
   render() {
     const formatted = formatMeasure(this.props.level, 'LEVEL');
-    const className = classNames('level', 'level-' + this.props.level, {
+    const className = classNames(this.props.className, 'level', 'level-' + this.props.level, {
       'level-small': this.props.small,
       'level-muted': this.props.muted
     });