From aac3504de58a2edf08b6bb0381e5992f2ae24d77 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Fri, 16 May 2014 12:53:53 +0200 Subject: [PATCH] SONAR-5209 Show real data inside coverage bar --- .../coffee/component-viewer/header.coffee | 11 +++- .../main/coffee/component-viewer/main.coffee | 42 ++++++++++++- .../header/_coverage-header.hbs | 60 +++++++++++-------- 3 files changed, 85 insertions(+), 28 deletions(-) diff --git a/sonar-server/src/main/coffee/component-viewer/header.coffee b/sonar-server/src/main/coffee/component-viewer/header.coffee index 4286116e72d..477059ca863 100644 --- a/sonar-server/src/main/coffee/component-viewer/header.coffee +++ b/sonar-server/src/main/coffee/component-viewer/header.coffee @@ -31,12 +31,14 @@ define [ 'click .js-filter-covered-lines': 'filterByCoveredLines' 'click .js-filter-uncovered-lines': 'filterByUncoveredLines' 'click .js-filter-branches-to-cover': 'filterByBranchesToCover' + 'click .js-filter-covered-branches': 'filterByCoveredBranches' 'click .js-filter-uncovered-branches': 'filterByUncoveredBranches' 'click .js-filter-lines-to-cover-it': 'filterByLinesToCoverIT' 'click .js-filter-covered-lines-it': 'filterByCoveredLinesIT' 'click .js-filter-uncovered-lines-it': 'filterByUncoveredLinesIT' 'click .js-filter-branches-to-cover-it': 'filterByBranchesToCoverIT' + 'click .js-filter-covered-branches-it': 'filterByCoveredBranchesIT' 'click .js-filter-uncovered-branches-it': 'filterByUncoveredBranchesIT' @@ -59,7 +61,12 @@ define [ scope = el.data 'scope' @ui.expandedBars.hide() if scope - @ui.expandedBars.filter("[data-scope=#{scope}]").show() + unless @options.main.component.has 'msr' + @options.main.requestMeasures(@options.main.key).done => + @render() + @ui.expandedBars.filter("[data-scope=#{scope}]").show() + else + @ui.expandedBars.filter("[data-scope=#{scope}]").show() changeSettings: -> @@ -92,12 +99,14 @@ define [ filterByCoveredLines: (e) -> @filterByCoverage e, 'filterByCoveredLines' filterByUncoveredLines: (e) -> @filterByCoverage e, 'filterByUncoveredLines' filterByBranchesToCover: (e) -> @filterByCoverage e, 'filterByBranchesToCover' + filterByCoveredBranches: (e) -> @filterByCoverage e, 'filterByCoveredBranches' filterByUncoveredBranches: (e) -> @filterByCoverage e, 'filterByUncoveredBranches' filterByLinesToCoverIT: (e) -> @filterByCoverage e, 'filterByLinesToCoverIT' filterByCoveredLinesIT: (e) -> @filterByCoverage e, 'filterByCoveredLinesIT' filterByUncoveredLinesIT: (e) -> @filterByCoverage e, 'filterByUncoveredLinesIT' filterByBranchesToCoverIT: (e) -> @filterByCoverage e, 'filterByBranchesToCoverIT' + filterByCoveredBranchesIT: (e) -> @filterByCoverage e, 'filterByCoveredBranchesIT' filterByUncoveredBranchesIT: (e) -> @filterByCoverage e, 'filterByUncoveredBranchesIT' diff --git a/sonar-server/src/main/coffee/component-viewer/main.coffee b/sonar-server/src/main/coffee/component-viewer/main.coffee index 865964fdb89..c2680c88aa0 100644 --- a/sonar-server/src/main/coffee/component-viewer/main.coffee +++ b/sonar-server/src/main/coffee/component-viewer/main.coffee @@ -22,10 +22,24 @@ define [ API_SOURCES = "#{baseUrl}/api/sources/show" API_COVERAGE = "#{baseUrl}/api/coverage/show" API_SCM = "#{baseUrl}/api/sources/scm" + API_MEASURES = "#{baseUrl}/api/resources" LINES_AROUND_ISSUE = 4 LINES_AROUND_COVERED_LINE = 1 + SOURCE_METRIC_LIST = 'lines,ncloc,functions,accessors,classes,statements,complexity,function_complexity,' + + 'comment_lines_density,comment_lines,public_documented_api_density,public_undocumented_api,' + + 'public_api' + + COVERAGE_METRIC_LIST = 'coverage,line_coverage,lines_to_cover,covered_lines,uncovered_lines,' + + 'branch_coverage,conditions_to_cover,uncovered_conditions,' + + 'it_coverage,it_line_coverage,it_lines_to_cover,it_covered_lines,it_uncovered_lines,' + + 'it_branch_coverage,it_conditions_to_cover,it_uncovered_conditions' + + ISSUES_METRIC_LIST = 'blocker_violations,critical_violations,major_violations,minor_violations,info_violations' + + DUPLICATIONS_METRIC_LIST = 'duplicated_lines_density,duplicated_blocks,duplicated_files,duplicated_lines' + class ComponentViewer extends Marionette.Layout @@ -81,6 +95,28 @@ define [ @component.set data + requestMeasures: (key) -> + metrics = [SOURCE_METRIC_LIST, COVERAGE_METRIC_LIST, ISSUES_METRIC_LIST, DUPLICATIONS_METRIC_LIST].join ',' + $.get API_MEASURES, resource: key, metrics: metrics, (data) => + measuresList = data[0].msr || [] + measures = {} + measuresList.forEach (m) -> measures[m.key] = m.frmt_val + + if measures['lines_to_cover']? && measures['uncovered_lines']? + measures['covered_lines'] = measures['lines_to_cover'] - measures['uncovered_lines'] + + if measures['conditions_to_cover']? && measures['uncovered_conditions']? + measures['covered_conditions'] = measures['conditions_to_cover'] - measures['uncovered_conditions'] + + if measures['it_lines_to_cover']? && measures['it_uncovered_lines']? + measures['it_covered_lines'] = measures['it_lines_to_cover'] - measures['it_uncovered_lines'] + + if measures['it_conditions_to_cover']? && measures['it_uncovered_conditions']? + measures['it_covered_conditions'] = measures['it_conditions_to_cover'] - measures['it_uncovered_conditions'] + + @component.set 'msr', measures + + requestSource: (key) -> $.get API_SOURCES, key: key, (data) => @source.set source: data.sources @@ -207,15 +243,17 @@ define [ # Unit Tests filterByLinesToCover: -> @filterByCoverage (c) -> c[1]? filterByCoveredLines: -> @filterByCoverage (c) -> c[1]? && c[1] - filterLinesByUncoveredLines: -> @filterByCoverage (c) -> c[1]? && !c[1] + filterByUncoveredLines: -> @filterByCoverage (c) -> c[1]? && !c[1] filterByBranchesToCover: -> @filterByCoverage (c) -> c[3]? + filterByCoveredBranches: -> @filterByCoverage (c) -> c[3]? && c[4]? && (c[4] > 0) filterByUncoveredBranches: -> @filterByCoverage (c) -> c[3]? && c[4]? && (c[3] > c[4]) # Integration Tests filterByLinesToCoverIT: -> @filterByCoverageIT (c) -> c[1]? filterByCoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && c[1] - filterLinesByUncoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && !c[1] + filterByUncoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && !c[1] filterByBranchesToCoverIT: -> @filterByCoverageIT (c) -> c[3]? + filterByCoveredBranchesIT: -> @filterByCoverageIT (c) -> c[3]? && c[4]? && (c[4] > 0) filterByUncoveredBranchesIT: -> @filterByCoverageIT (c) -> c[3]? && c[4]? && (c[3] > c[4]) diff --git a/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs b/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs index 8a0eea94b1a..ac32560b189 100644 --- a/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs +++ b/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs @@ -3,25 +3,25 @@ @@ -33,16 +33,21 @@
  •  
  • Branch coverage - 75.0% + {{component.msr.branch_coverage}}
  • Branches to cover - 16 + {{component.msr.conditions_to_cover}} + +
  • +
  • + Covered branches + {{component.msr.covered_conditions}}
  • Uncovered branches - 4 + {{component.msr.uncovered_conditions}}
  • @@ -50,29 +55,29 @@
    -
    Unit Tests
    +
    Integration Tests
    @@ -84,16 +89,21 @@
  •  
  • Branch coverage - 75.0% + {{component.msr.it_branch_coverage}}
  • Branches to cover - 16 + {{component.msr.it_conditions_to_cover}} + +
  • +
  • + Covered branches + {{component.msr.it_covered_conditions}}
  • Uncovered branches - 4 + {{component.msr.it_uncovered_conditions}}
  • -- 2.39.5