summaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2014-07-09 17:26:55 +0600
committerStas Vilchik <vilchiks@gmail.com>2014-07-09 17:27:03 +0600
commit9078aa7e35bd95a9c9ef75827e61ee2fdbe1a7f6 (patch)
treebb51bb8c1a683adaba74eb48f9a2b58992b5de0e /sonar-server/src/main
parent3b5dea75542292728a77c046dfedee88ad098673 (diff)
downloadsonarqube-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.coffee9
-rw-r--r--sonar-server/src/main/coffee/widgets/treemap.coffee46
-rw-r--r--sonar-server/src/main/less/style.less6
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 {