From c30423a8b01d673dc3e2a4dafd9a2380b09c45b9 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 12 May 2014 12:29:40 +0200 Subject: [PATCH] SONAR-5130 Improve UI --- .../sonar/plugins/core/widgets/size.html.erb | 103 ++++++++---------- .../resources/org/sonar/l10n/core.properties | 2 - .../WEB-INF/app/helpers/application_helper.rb | 1 + 3 files changed, 45 insertions(+), 61 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/size.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/size.html.erb index f30117a5bde..fe972d726ef 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/size.html.erb +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/size.html.erb @@ -1,7 +1,10 @@ <% lines=measure('lines') ncloc=measure('ncloc') - ncloc_language_distribution=measure('ncloc_language_distribution') + ncloc_language_distribution = measure('ncloc_language_distribution') + ncloc_language_dist_hash = Hash[*(ncloc_language_distribution.data.split(';').map { |elt| elt.split('=') }.flatten)] if ncloc && ncloc_language_distribution + generated_ncloc=measure('generated_ncloc') + generated_lines=measure('generated_lines') classes=measure('classes') files=measure('files') functions=measure('functions') @@ -15,68 +18,39 @@
- <% if ncloc %> - <% - ncloc_language_dist_hash = Hash[*(ncloc_language_distribution.data.split(';').map { |elt| elt.split('=') }.flatten)] if ncloc_language_distribution - if ncloc_language_dist_hash && ncloc_language_dist_hash.size == 1 - language_key = ncloc_language_dist_hash.first()[0].to_s - language = languages.find { |l| l.getKey()==language_key } - %> -

<%= message('widget.size.lines_of_code_with_language', :params => (language ? language.getName() : language_key)) -%>

- <% else %> -

<%= message('widget.size.lines_of_code') -%>

- <% end %> +

<%= message('widget.size.lines_of_code') -%>

<%= format_measure(ncloc, :suffix => '', :url => url_for_drilldown(ncloc)) -%> <%= dashboard_configuration.selected_period? ? format_variation(ncloc) : trend_icon(ncloc) -%>

- <% - generated_ncloc=measure('generated_ncloc') - if generated_ncloc && generated_ncloc.value>0 - %> -

+<%= format_measure(generated_ncloc, :suffix => message('widget.size.generated.suffix'), :url => url_for_drilldown(generated_ncloc)) -%> <%= dashboard_configuration.selected_period? ? format_variation(generated_ncloc) : trend_icon(generated_ncloc) -%>

+ <% if ncloc_language_dist_hash %> + + <% + max = ncloc_language_dist_hash.max_by{|_k,v| v.to_i}[1].to_i + # Sort lines language distribution by reverse number of lines + ncloc_language_dist_hash.sort {|v1,v2| v2[1].to_i <=> v1[1].to_i }.each do |language_key, language_ncloc| + %> + + + + + + + <% end %> +
+ <% language = languages.find { |l| l.getKey()==language_key.to_s } -%> + <%= language ? language.getName() : language_key -%> + + <%= ncloc.format_numeric_value(language_ncloc) %> +   + <%= barchart(:width => 70, :percent => (100 * language_ncloc.to_i / max).to_i)%> +
<% end %> -

<%= format_measure(lines, :suffix => message('widget.size.lines.suffix'), :url => url_for_drilldown(lines)) -%> <%= dashboard_configuration.selected_period? ? format_variation(lines) : trend_icon(lines) -%>

- <% else%> -

<%= message('widget.size.lines') -%>

-

<%= format_measure(lines, :suffix => '', :url => url_for_drilldown(lines)) -%> <%= trend_icon(lines) -%>

- <% end %> - <% - generated_lines=measure('generated_lines') - if generated_lines && generated_lines.value>0 - %> -

incl. <%= format_measure(generated_lines, :suffix => message('widget.size.generated.suffix'), :url => url_for_drilldown(generated_lines)) -%> <%= dashboard_configuration.selected_period? ? format_variation(generated_lines) : trend_icon(generated_lines) -%>

- <% end %> - <% if statements %> -

- <%= format_measure(statements, :suffix => message('widget.size.statements.suffix'), :url => url_for_drilldown(statements)) -%> <%= dashboard_configuration.selected_period? ? format_variation(statements) : trend_icon(statements) -%> -

- <% end %> - <% if projects %> -

<%= format_measure(projects, :suffix => message('widget.size.projects.suffix')) -%> <%= dashboard_configuration.selected_period? ? format_variation(projects) : trend_icon(projects) -%>

- <% end %> - <% if ncloc_language_dist_hash && ncloc_language_dist_hash.size > 1 %> - - <% - max = ncloc_language_dist_hash.max_by{|_k,v| v.to_i}[1].to_i - # Sort lines language distribution by reverse number of lines - ncloc_language_dist_hash.sort {|v1,v2| v2[1].to_i <=> v1[1].to_i }.each do |language_key, language_ncloc| - tooltip = ncloc.format_numeric_value(language_ncloc) + message('widget.size.lines_of_code.suffix') - %> - - - - - - <% end %> -
- <% language = languages.find { |l| l.getKey()==language_key.to_s } -%> - <%= language ? language.getName() : language_key -%> -   - <%= barchart(:width => 70, :percent => (100 * language_ncloc.to_i / max).to_i, :tooltip => tooltip)%> -
+ <% else %> +

<%= message('widget.size.lines') -%>

+

<%= format_measure(lines, :suffix => '', :url => url_for_drilldown(lines)) -%> <%= trend_icon(lines) -%>

<% end %>
@@ -89,15 +63,26 @@ <%= dashboard_configuration.selected_period? ? format_variation(files) : trend_icon(files) -%>

<%= format_measure('directories', :suffix => message('widget.size.directories.suffix'), :url => url_for_drilldown('directories')) -%> <%= dashboard_configuration.selected_period? ? format_variation('directories') : trend_icon('directories') -%>

+ <% if ncloc && generated_ncloc && generated_ncloc.value>0 %> +

+<%= format_measure(generated_ncloc, :suffix => message('widget.size.generated.suffix'), :url => url_for_drilldown(generated_ncloc)) -%> <%= dashboard_configuration.selected_period? ? format_variation(generated_ncloc) : trend_icon(generated_ncloc) -%>

+ <% end %> +

<%= format_measure(lines, :suffix => message('widget.size.lines.suffix'), :url => url_for_drilldown(lines)) -%> <%= dashboard_configuration.selected_period? ? format_variation(lines) : trend_icon(lines) -%>

<% if classes %>

<%= format_measure(classes, :url => url_for_drilldown(classes), :suffix => message('widget.size.classes.suffix')) -%> <%= dashboard_configuration.selected_period? ? format_variation(classes) : trend_icon(classes) -%>

<% end %>

<%= format_measure(functions, :suffix => message('widget.size.methods.suffix'), :url => url_for_drilldown(functions)) -%> <%= dashboard_configuration.selected_period? ? format_variation(functions) : trend_icon(functions) -%>

- <% - if measure('accessors') - %> + <% if measure('accessors') %>

<%= format_measure('accessors', :suffix => message('widget.size.accessors.suffix'), :url => url_for_drilldown('accessors')) -%> <%= dashboard_configuration.selected_period? ? format_variation('accessors') : trend_icon('accessors') -%>

<% end %> + <% if generated_lines && generated_lines.value>0 %> +

incl. <%= format_measure(generated_lines, :suffix => message('widget.size.generated.suffix'), :url => url_for_drilldown(generated_lines)) -%> <%= dashboard_configuration.selected_period? ? format_variation(generated_lines) : trend_icon(generated_lines) -%>

+ <% end %> + <% if statements %> +

<%= format_measure(statements, :suffix => message('widget.size.statements.suffix'), :url => url_for_drilldown(statements)) -%> <%= dashboard_configuration.selected_period? ? format_variation(statements) : trend_icon(statements) -%>

+ <% end %> + <% if projects %> +

<%= format_measure(projects, :suffix => message('widget.size.projects.suffix')) -%> <%= dashboard_configuration.selected_period? ? format_variation(projects) : trend_icon(projects) -%>

+ <% end %> diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index 155dc476775..7d80779d7d5 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -1075,8 +1075,6 @@ widget.rules.removed=Removed: widget.size.name=Size Metrics widget.size.description=Reports general metrics on the size of the project. widget.size.lines_of_code=Lines of code -widget.size.lines_of_code_with_language=Lines of code ({0}) -widget.size.lines_of_code.suffix=\ lines of code widget.size.lines=Lines widget.size.generated.suffix=\ generated widget.size.lines.suffix=\ lines diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb index 4b1a24aa00d..401ea7f193d 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/application_helper.rb @@ -378,6 +378,7 @@ module ApplicationHelper # * width: container width in pixels. Default is 150. # * percent: integer between -100 and 100. Size of the bar inside the container. Default is 100. Bar is aligned to right if the value is negative. # * color: the bar HTML color. Default value is '#777' + # * tooltip: tooltip to display on the bar # def barchart(options) percent = (options[:percent] || 100).to_i -- 2.39.5