]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7402 simplify home page
authorStas Vilchik <vilchiks@gmail.com>
Tue, 29 Mar 2016 15:15:14 +0000 (17:15 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Tue, 29 Mar 2016 15:15:14 +0000 (17:15 +0200)
server/sonar-web/src/main/js/apps/component-measures/config/domains.js
server/sonar-web/src/main/js/apps/component-measures/home/AllMeasuresDomain.js
server/sonar-web/src/main/js/apps/component-measures/home/DomainMeasures.js
server/sonar-web/src/main/js/apps/component-measures/home/MainMeasures.js [deleted file]
server/sonar-web/src/main/js/apps/component-measures/home/MeasuresList.js

index 931dbcdba57472aa26e4001b22ba8c0ea07ba075..08d97febd27b6dc6a61ba88eac0060544340a1aa 100644 (file)
  */
 export const domains = {
   'Reliability': {
-    main: [
-      'bugs',
-      'new_bugs',
-      'reliability_rating'
-    ],
     order: [
       'bugs',
       'new_bugs',
@@ -35,14 +30,10 @@ export const domains = {
   },
 
   'Security': {
-    main: [
-      'vulnerabilities',
-      'new_vulnerabilities',
-      'security_rating'
-    ],
     order: [
       'vulnerabilities',
       'new_vulnerabilities',
+      'security_rating',
       'security_remediation_effort',
       'new_security_remediation_effort',
       'effort_to_reach_security_rating_a'
@@ -50,18 +41,12 @@ export const domains = {
   },
 
   'Maintainability': {
-    main: [
-      'code_smells',
-      'new_code_smells',
-      'sqale_index',
-      'new_technical_debt',
-      'sqale_rating'
-    ],
     order: [
       'code_smells',
       'new_code_smells',
       'sqale_index',
       'new_technical_debt',
+      'sqale_rating',
       'sqale_debt_ratio',
       'new_sqale_debt_ratio',
       'effort_to_reach_maintainability_rating_a'
@@ -69,15 +54,6 @@ export const domains = {
   },
 
   'Tests': {
-    main: [
-      'overall_coverage',
-      'new_overall_coverage',
-      'coverage',
-      'new_coverage',
-      'it_coverage',
-      'new_it_coverage',
-      'tests'
-    ],
     order: [
       'overall_coverage',
       'new_overall_coverage',
@@ -124,14 +100,15 @@ export const domains = {
       'skipped_tests',
       'test_success_density',
       'test_execution_time'
+    ],
+    spaces: [
+      'coverage',
+      'it_coverage',
+      'tests'
     ]
   },
 
   'Duplication': {
-    main: [
-      'duplicated_lines_density',
-      'duplicated_blocks'
-    ],
     order: [
       'duplicated_lines_density',
       'duplicated_blocks',
@@ -141,15 +118,12 @@ export const domains = {
   },
 
   'Size': {
-    main: [
-      'ncloc',
-      'files'
-    ],
-    order: []
+    order: [
+      'ncloc'
+    ]
   },
 
   'Issues': {
-    main: [],
     order: [
       'violations',
       'new_violations',
index 5bf2d5585b1b82d0b9cc167fbbe4ec4545744f5b..42253dc2b78650ae299bbca3b2d16f1237f660d1 100644 (file)
@@ -38,14 +38,9 @@ export default class AllMeasuresDomain extends React.Component {
 
     const hasLeak = !!leakPeriodLabel;
     const { measures } = domain;
-    const domainConfig = domains[domain.name] || { main: [], order: [] };
-    const mainMetrics = domainConfig.main;
+    const domainConfig = domains[domain.name] || { order: [] };
     const orderedMeasures = domainConfig.order;
-    const [mainMeasures, otherMeasures] = partition(measures,
-        measure => mainMetrics.indexOf(measure.metric.key) !== -1);
-    const sortedMainMeasures = sortMeasures(mainMeasures, orderedMeasures);
-    const sortedOtherMeasures = sortMeasures(otherMeasures, orderedMeasures);
-    const finalMeasures = [...sortedMainMeasures, ...sortedOtherMeasures];
+    const sortedMeasures = sortMeasures(measures, orderedMeasures);
 
     return (
         <li>
@@ -56,9 +51,10 @@ export default class AllMeasuresDomain extends React.Component {
           )}
 
           <MeasuresList
-              measures={finalMeasures}
+              measures={sortedMeasures}
               hasLeak={hasLeak}
-              component={component}/>
+              component={component}
+              spaces={domainConfig.spaces || []}/>
         </li>
     );
   }
index 8dcd15583eecf4b27990ed6efff24b53096d990c..2fe75c0fd5ab2bfbe230d0444778fa5fcb2dbe51 100644 (file)
@@ -21,7 +21,6 @@ import sortBy from '../../../../../../node_modules/lodash/sortBy';
 import partition from '../../../../../../node_modules/lodash/partition';
 import React from 'react';
 
-import MainMeasures from './MainMeasures';
 import MeasuresList from './MeasuresList';
 import MeasureBubbleChartContainer from '../components/bubbleChart/MeasureBubbleChartContainer';
 import { getLeakPeriodLabel } from '../../../helpers/periods';
@@ -53,27 +52,17 @@ export default class DomainMeasures extends React.Component {
     const leakPeriodLabel = getLeakPeriodLabel(periods);
 
     const conf = domainsConf[domainName];
-    const mainMetrics = conf ? conf.main : [];
     const order = conf ? conf.order : [];
-    const [mainMeasures, otherMeasures] = partition(measures, m => mainMetrics.includes(m.metric.key));
-    const sortedMainMeasures = sortMeasures(mainMeasures, order);
-    const sortedOtherMeasures = sortMeasures(otherMeasures, order);
+    const spaces = conf && conf.spaces ? conf.spaces : [];
+    const sortedMeasures = sortMeasures(measures, order);
 
     return (
         <section id="component-measures-domain">
-          {mainMeasures.length > 0 && (
-              <MainMeasures
-                  measures={sortedMainMeasures}
-                  component={component}
-                  hasLeak={leakPeriodLabel != null}/>
-          )}
-
-          {otherMeasures.length > 0 && (
-              <MeasuresList
-                  measures={sortedOtherMeasures}
-                  component={component}
-                  hasLeak={leakPeriodLabel != null}/>
-          )}
+          <MeasuresList
+              measures={sortedMeasures}
+              component={component}
+              spaces={spaces}
+              hasLeak={leakPeriodLabel != null}/>
 
           {hasBubbleChart(domainName) && (
               <MeasureBubbleChartContainer domainName={domainName}/>
diff --git a/server/sonar-web/src/main/js/apps/component-measures/home/MainMeasures.js b/server/sonar-web/src/main/js/apps/component-measures/home/MainMeasures.js
deleted file mode 100644 (file)
index 172fb67..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact 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 React from 'react';
-import { Link } from 'react-router';
-import classNames from 'classnames';
-
-import Measure from '../components/Measure';
-import { isDiffMetric } from '../utils';
-
-const MainMeasures = ({ measures, component }) => {
-  return (
-      <ul className="domain-main-measures">
-        {measures.map(measure => (
-            <li key={measure.metric.key}>
-              <div className={classNames('measure-details-value', {
-                'measure-details-value-absolute': !isDiffMetric(measure.metric),
-                'measure-details-value-leak': isDiffMetric(measure.metric)
-              })}>
-                <Link to={{ pathname: `metric/${measure.metric.key}`, query: { id: component.key } }}>
-                  <Measure measure={measure}/>
-                </Link>
-              </div>
-
-              <div className="domain-main-measures-label">
-                {measure.metric.name}
-              </div>
-            </li>
-        ))}
-      </ul>
-  );
-};
-
-export default MainMeasures;
index 04f1415927e90c6134bcffd2a89916c98bfb005a..672503056a51a46ce1011852a741c5fe8af786c1 100644 (file)
  */
 import React from 'react';
 import { Link } from 'react-router';
+import classNames from 'classnames';
 
 import Measure from '../components/Measure';
 import { formatLeak } from '../utils';
 
-const MeasuresList = ({ measures, hasLeak, component }) => {
+const shouldPutSpace = (spaces, measure, index) => {
+  return index !== 0 && spaces.includes(measure.metric.key);
+};
+
+const MeasuresList = ({ measures, hasLeak, component, spaces }) => {
   return (
       <ul className="domain-measures">
-        {measures.map(measure => (
-            <li key={measure.metric.key} id={`measure-${measure.metric.key}`}>
+        {measures.map((measure, index) => (
+            <li
+                key={measure.metric.key}
+                id={`measure-${measure.metric.key}`}
+                className={classNames({ 'big-spacer-top': shouldPutSpace(spaces, measure, index) })}>
               <Link to={{ pathname: `metric/${measure.metric.key}`, query: { id: component.key } }}>
                 <div className="domain-measures-name">
                     <span id={`measure-${measure.metric.key}-name`}>