diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2014-07-09 17:26:55 +0600 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2014-07-09 17:27:03 +0600 |
commit | 9078aa7e35bd95a9c9ef75827e61ee2fdbe1a7f6 (patch) | |
tree | bb51bb8c1a683adaba74eb48f9a2b58992b5de0e /sonar-server/src/main | |
parent | 3b5dea75542292728a77c046dfedee88ad098673 (diff) | |
download | sonarqube-9078aa7e35bd95a9c9ef75827e61ee2fdbe1a7f6.tar.gz sonarqube-9078aa7e35bd95a9c9ef75827e61ee2fdbe1a7f6.zip |
SONAR-5207 Different enhancements
Diffstat (limited to 'sonar-server/src/main')
-rw-r--r-- | sonar-server/src/main/coffee/widgets/base.coffee | 9 | ||||
-rw-r--r-- | sonar-server/src/main/coffee/widgets/treemap.coffee | 46 | ||||
-rw-r--r-- | sonar-server/src/main/less/style.less | 6 |
3 files changed, 47 insertions, 14 deletions
diff --git a/sonar-server/src/main/coffee/widgets/base.coffee b/sonar-server/src/main/coffee/widgets/base.coffee index bf0522bb8b4..49103c0e7ca 100644 --- a/sonar-server/src/main/coffee/widgets/base.coffee +++ b/sonar-server/src/main/coffee/widgets/base.coffee @@ -7,6 +7,7 @@ class BaseWidget colors4r: ['#00aa00', '#80cc00', '#f77700', '#ee0000'] colors5: ['#ee0000', '#f77700', '#ffee00', '#80cc00', '#00aa00'] colors5r: ['#00aa00', '#80cc00', '#ffee00', '#f77700', '#ee0000'] + colorsLevel: ['#d4333f', '#ff9900', '#85bb43', '##b4b4b4'] colorUnknown: '#777' @@ -35,8 +36,12 @@ class BaseWidget key = @metricsPriority()[index] @[property] = _.extend @metrics()[key], key: key - value: (d) -> d.measures[key]?.val - formattedValue: (d) -> d.measures[key]?.fval + value: (d) -> + if d.measures[key]? + if d.measures[key].text? then d.measures[key].text else d.measures[key].val + formattedValue: (d) -> + if d.measures[key]? + if d.measures[key].text? then d.measures[key].text else d.measures[key].fval @ diff --git a/sonar-server/src/main/coffee/widgets/treemap.coffee b/sonar-server/src/main/coffee/widgets/treemap.coffee index 72f4f2e04d0..1a55e9f2739 100644 --- a/sonar-server/src/main/coffee/widgets/treemap.coffee +++ b/sonar-server/src/main/coffee/widgets/treemap.coffee @@ -26,6 +26,8 @@ class Treemap extends window.SonarWidgets.BaseWidget @cells.attr 'title', (d) => @tooltip d @cells.style 'background-color', (d) => if @colorMetric.value(d)? then @color @colorMetric.value(d) else @colorUnknown + @cells.classed 'treemap-cell-drilldown', (d) -> + d.qualifier? && d.qualifier != 'FIL' && d.qualifier != 'CLA' prefix = @mostCommonPrefix _.pluck @components(), 'longName' prefixLength = prefix.length @@ -37,7 +39,6 @@ class Treemap extends window.SonarWidgets.BaseWidget @attachEvents cellsEnter - # Show maxResultsReached message @maxResultsReachedLabel.style 'display', if @maxResultsReached() then 'block' else 'none' @@ -50,8 +51,14 @@ class Treemap extends window.SonarWidgets.BaseWidget attachEvents: (cells) -> - cells.on 'click', (d) => - @requestChildren d + cells.on 'click', (d) => @requestChildren d + cells.on 'dblclick', (d) => @openDashboard d + + + openDashboard: (d) -> + url = @options().baseUrl + encodeURIComponent(d.key) + url += '?metric=' + encodeURIComponent(@colorMetric.key) if d.qualifier == 'CLA' || d.qualifier == 'FIL' + window.location = url positionCells: -> @@ -112,6 +119,28 @@ class Treemap extends window.SonarWidgets.BaseWidget @updateBreadcrumbs() + getColorScale: -> + return @getLevelColorScale() if @colorMetric.type == 'LEVEL' + return @getRatingColorScale() if @colorMetric.type == 'RATING' + @getPercentColorScale() + + + getPercentColorScale: -> + color = d3.scale.linear().domain([0, 25, 50, 75, 100]) + color.range if @colorMetric.direction == 1 then @colors5 else @colors5r + color + + + getRatingColorScale: -> + color = d3.scale.ordinal().domain([1, 2, 3, 4, 5]).range @colors5r + color + + + getLevelColorScale: -> + color = d3.scale.ordinal().domain(['ERROR', 'WARN', 'OK', 'NONE']).range @colorsLevel + color + + render: (container) -> box = d3.select(container).append('div') box.classed 'sonar-d3', true @@ -122,11 +151,8 @@ class Treemap extends window.SonarWidgets.BaseWidget @addMetric 'sizeMetric', 1 # Configure scales - @color = d3.scale.linear().domain([0, 25, 50, 75, 100]) - if @colorMetric.direction == 1 - @color.range @colors5 - else - @color.range @colors5r + @color = @getColorScale() + @size = d3.scale.linear().domain([3, 15]).range([@sizeLow, @sizeHigh]).clamp true @treemap = d3.layout.treemap() @@ -150,9 +176,6 @@ class Treemap extends window.SonarWidgets.BaseWidget @positionCells() - stopDrilldown: -> - - formatComponents: (data) -> components = _.filter data, (component) => hasSizeMetric = => _.findWhere component.msr, key: @sizeMetric.key @@ -181,7 +204,6 @@ class Treemap extends window.SonarWidgets.BaseWidget components = _.initial components, components.length - @options().maxItems - 1 @updateTreemap components, components.length > @options().maxItems @addToBreadcrumbs _.extend d, components: components, maxResultsReached: @maxResultsReached() - else @stopDrilldown() mostCommonPrefix: (strings) -> diff --git a/sonar-server/src/main/less/style.less b/sonar-server/src/main/less/style.less index b431f3df0dd..21ad9a7d641 100644 --- a/sonar-server/src/main/less/style.less +++ b/sonar-server/src/main/less/style.less @@ -2820,7 +2820,13 @@ div.rule-title { border-bottom: 1px solid #fff; .box-sizing(border-box); text-align: center; +} + +.sonar-d3 .treemap-cell-drilldown { cursor: pointer; + .trans(opacity); + + &:hover { opacity: 0.8; } } .sonar-d3 .treemap-inner { |