]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5893 Apply feedback on tooltips
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Thu, 15 Jan 2015 09:37:31 +0000 (10:37 +0100)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 19 Jan 2015 14:35:54 +0000 (15:35 +0100)
plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/issues/issue_tag_cloud.html.erb
server/sonar-server/src/main/java/org/sonar/server/issue/InternalRubyIssueService.java
server/sonar-web/src/main/coffee/widgets/tag-cloud.coffee
sonar-core/src/main/resources/org/sonar/l10n/core.properties

index 066444ca76938b4432a39be2d9acddb130920cd6..e131e43482439b98408c416f7cfab0c220ca6cf1 100644 (file)
@@ -2,7 +2,7 @@
   containerId = 'issue-tag-cloud' + widget.id.to_s
   maxItems = widget_properties['maxItems'].to_i
 
-  if current_user && has_role?(:user, @project)
+  if current_user && has_role?(:user, @project) && !Internal.issues.listTagsForComponent(@project.uuid, maxItems).isEmpty()
     search_options = {}
     if @project
       search_options['componentUuids'] = @project.uuid
index f4aea94df7420720c01785ec8b8dd12c7c545895..e60b31e6323b9e5dc794431582857228f6d2dc9a 100644 (file)
@@ -652,4 +652,8 @@ public class InternalRubyIssueService implements ServerComponent {
     return issueService.listTags(null, 0);
   }
 
+  public Map<String, Long> listTagsForComponent(String componentUuid, int pageSize) {
+    return issueService.listTagsForComponent(componentUuid, pageSize);
+  }
+
 }
index bb9965cd88c949c879fd0fb5807feece8abbd2f5..2b765a41d5ec08261449b75b75189dee0b378e8d 100644 (file)
@@ -12,20 +12,21 @@ class TagCloud extends window.SonarWidgets.BaseWidget
 
 
   renderWords: ->
-    words = @wordContainer.selectAll('.cloud-word').data @tags()
+    window.requestMessages().done =>
+      words = @wordContainer.selectAll('.cloud-word').data @tags()
 
-    wordsEnter = words.enter().append('a').classed 'cloud-word', true
-    wordsEnter.text (d) -> d.key
-    wordsEnter.attr 'href', (d) =>
-      url = @options().baseUrl + '|tags=' + d.key
-      url
-    wordsEnter.attr 'title', (d) => @tooltip d
+      wordsEnter = words.enter().append('a').classed 'cloud-word', true
+      wordsEnter.text (d) -> d.key
+      wordsEnter.attr 'href', (d) =>
+        url = @options().baseUrl + '|tags=' + d.key
+        url
+      wordsEnter.attr 'title', (d) => @tooltip d
 
-    words.style 'font-size', (d) =>
-      "#{@size d.value}px"
+      words.style 'font-size', (d) =>
+        "#{@size d.value}px"
 
-    words.sort (a, b) =>
-      if a.key.toLowerCase() > b.key.toLowerCase() then 1 else -1
+      words.sort (a, b) =>
+        if a.key.toLowerCase() > b.key.toLowerCase() then 1 else -1
 
 
   render: (container) ->
@@ -48,7 +49,9 @@ class TagCloud extends window.SonarWidgets.BaseWidget
 
 
   tooltip: (d) ->
-    "#{d.key} (#{d.value})"
+    suffixKey = if d.value == 1 then 'issue' else 'issues'
+    suffix = t(suffixKey)
+    "#{d.value} " + suffix
 
 
   parseSource: (response) ->
index 6f311418b8c18d87a573d71063012235e63fcbad..f88f834edb631c028db5057873eb9768eddf172f 100644 (file)
@@ -1297,7 +1297,7 @@ widget.issue_filter.property.numberOfLines.name=Page size
 widget.issue_filter.property.displayFilterDescription.name=Display Filter Description
 widget.issue_filter.unknown_filter_warning=This widget is configured to display an issue filter that doesn't exist anymore.
 
-widget.issue_tag_cloud.name=Issue Tag Cloud
+widget.issue_tag_cloud.name=Project Issue Tag Cloud
 widget.issue_tag_cloud.description=Displays the cloud of tags associated to unresolved issues.
 widget.issue_tag_cloud.property.maxItems.name=Max Tags
 widget.issue_tag_cloud.property.maxItems.desc=Maximum number of tags to show