aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/overview/domains/structure-domain.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-web/src/main/js/apps/overview/domains/structure-domain.js')
-rw-r--r--server/sonar-web/src/main/js/apps/overview/domains/structure-domain.js217
1 files changed, 0 insertions, 217 deletions
diff --git a/server/sonar-web/src/main/js/apps/overview/domains/structure-domain.js b/server/sonar-web/src/main/js/apps/overview/domains/structure-domain.js
deleted file mode 100644
index 7caa737642f..00000000000
--- a/server/sonar-web/src/main/js/apps/overview/domains/structure-domain.js
+++ /dev/null
@@ -1,217 +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 _ from 'underscore';
-import React from 'react';
-
-import { LanguageDistribution } from './../components/language-distribution';
-import { ComplexityDistribution } from './../components/complexity-distribution';
-import { NclocDistribution } from '../components/ncloc-distribution';
-import { getMeasures } from '../../../api/measures';
-import { DetailedMeasure } from '../components/detailed-measure';
-import { DomainTimeline } from '../components/domain-timeline';
-import { getPeriodLabel, getPeriodDate } from './../helpers/periods';
-import { TooltipsMixin } from '../../../components/mixins/tooltips-mixin';
-import { filterMetrics, filterMetricsForDomains } from '../helpers/metrics';
-import { DomainLeakTitle } from '../main/components';
-import { translate } from '../../../helpers/l10n';
-
-
-export const StructureMain = React.createClass({
- mixins: [TooltipsMixin],
-
- getInitialState() {
- return {
- ready: false,
- leakPeriodLabel: getPeriodLabel(this.props.component.periods, this.props.leakPeriodIndex),
- leakPeriodDate: getPeriodDate(this.props.component.periods, this.props.leakPeriodIndex)
- };
- },
-
- componentDidMount() {
- this.requestMeasures().then(r => {
- let measures = this.getMeasuresValues(r);
- let leak = this.getMeasuresValues(r, Number(this.props.leakPeriodIndex));
- this.setState({ ready: true, measures, leak });
- });
- },
-
- getMeasuresValues (measures, period) {
- let values = {};
- measures.forEach(measure => {
- const container = period ? _.findWhere(measure.periods, { index: period }) : measure;
- if (container) {
- values[measure.metric] = container.value;
- }
- });
- return values;
- },
-
- getMetricsForDomain() {
- return this.props.metrics
- .filter(metric => ['Size', 'Complexity', 'Documentation'].indexOf(metric.domain) !== -1)
- .map(metric => metric.key);
- },
-
- getMetricsForTimeline() {
- return filterMetricsForDomains(this.props.metrics, ['Size', 'Complexity', 'Documentation']);
- },
-
- getAllMetricsForTimeline() {
- return filterMetrics(this.props.metrics);
- },
-
- requestMeasures () {
- return getMeasures(this.props.component.key, this.getMetricsForDomain());
- },
-
- renderLoading () {
- return <div className="flex-1 text-center">
- <i className="spinner spinner-margin"/>
- </div>;
- },
-
- renderLegend () {
- return <DomainLeakTitle inline={true} label={this.state.leakPeriodLabel} date={this.state.leakPeriodDate}/>;
- },
-
- renderOtherMeasures(domain, hiddenMetrics) {
- let metrics = filterMetricsForDomains(this.props.metrics, [domain])
- .filter(metric => hiddenMetrics.indexOf(metric.key) === -1)
- .map(metric => {
- return <DetailedMeasure key={metric.key}
- {...this.props}
- {...this.state}
- metric={metric.key}
- type={metric.type}/>;
- });
- return <div>{metrics}</div>;
- },
-
- renderOtherSizeMeasures() {
- return this.renderOtherMeasures('Size', ['ncloc']);
- },
-
- renderOtherComplexityMeasures() {
- return this.renderOtherMeasures('Complexity',
- ['complexity', 'function_complexity', 'file_complexity', 'class_complexity']);
- },
-
- renderOtherDocumentationMeasures() {
- return this.renderOtherMeasures('Documentation', []);
- },
-
- renderLanguageDistribution() {
- let distribution = this.state.measures['ncloc_language_distribution'];
- if (distribution == null) {
- return null;
- }
- return <LanguageDistribution lines={Number(this.state.measures['ncloc'])} distribution={distribution}/>;
- },
-
- renderComplexityDistribution(distribution, props) {
- if (distribution == null) {
- return null;
- }
- return <ComplexityDistribution distribution={distribution} {...props}/>;
- },
-
- renderComplexityCard() {
- if (this.state.measures['complexity'] == null) {
- return null;
- }
-
- return <div className="overview-detailed-layout-column">
- <div className="overview-detailed-measures-list">
- <DetailedMeasure {...this.props}
- {...this.state}
- metric="complexity"
- type="INT"/>
- <DetailedMeasure {...this.props}
- {...this.state}
- metric="function_complexity"
- type="FLOAT">
- {this.renderComplexityDistribution(this.state.measures['function_complexity_distribution'],
- { of: 'function' })}
- </DetailedMeasure>
- <DetailedMeasure {...this.props}
- {...this.state}
- metric="file_complexity"
- type="FLOAT">
- {this.renderComplexityDistribution(this.state.measures['file_complexity_distribution'],
- { of: 'file' })}
- </DetailedMeasure>
- <DetailedMeasure {...this.props}
- {...this.state}
- metric="class_complexity"
- type="FLOAT"/>
- {this.renderOtherComplexityMeasures()}
- </div>
- </div>;
- },
-
- render () {
- if (!this.state.ready) {
- return this.renderLoading();
- }
- return <div className="overview-detailed-page">
- <div className="overview-card">
- <div className="overview-card-header">
- <div className="overview-title">{translate('overview.domain.structure')}</div>
- {this.renderLegend()}
- </div>
-
- <div className="overview-detailed-layout-size">
- <div className="overview-detailed-layout-column">
- <div className="overview-detailed-measures-list">
- <DetailedMeasure {...this.props}
- {...this.state}
- metric="ncloc"
- type="INT">
- {this.renderLanguageDistribution()}
- </DetailedMeasure>
- {this.renderOtherSizeMeasures()}
- </div>
- </div>
-
- {this.renderComplexityCard()}
-
- <div className="overview-detailed-layout-column">
- <div className="overview-detailed-measures-list">
- {this.renderOtherDocumentationMeasures()}
- </div>
- </div>
- </div>
- </div>
-
- <div className="overview-cards-list">
- <div className="overview-card">
- <DomainTimeline {...this.props} {...this.state}
- initialMetric="ncloc"
- metrics={this.getMetricsForTimeline()}
- allMetrics={this.getAllMetricsForTimeline()}/>
- </div>
- <div className="overview-card">
- <NclocDistribution {...this.props}/>
- </div>
- </div>
- </div>;
-
- }
-});