]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5209 Coverage: i18n
authorStas Vilchik <vilchiks@gmail.com>
Fri, 16 May 2014 16:38:54 +0000 (18:38 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Fri, 16 May 2014 16:38:54 +0000 (18:38 +0200)
sonar-core/src/main/resources/org/sonar/l10n/core.properties
sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs
sonar-server/src/main/hbs/component-viewer/header/_header-item.hbs [new file with mode: 0644]
sonar-server/src/main/hbs/component-viewer/header/_header-link.hbs [new file with mode: 0644]
sonar-server/src/main/js/common/handlebars-extensions.js
sonar-server/src/main/webapp/WEB-INF/app/views/issues/search.html.erb

index 1081d4f61e0112d9b608268ad3afd047f38e261a..1320f51583f9214e0dd821ec05a1de85702ba92e 100644 (file)
@@ -2153,6 +2153,9 @@ metric.lines_to_cover.description=Lines to cover
 metric.new_lines_to_cover.name=Lines to cover on new code
 metric.new_lines_to_cover.description=Lines to cover on new code
 
+metric.covered_lines.name=Covered lines
+metric.covered_lines.description=Covered lines
+
 metric.uncovered_lines.name=Uncovered lines
 metric.uncovered_lines.description=Uncovered lines
 
@@ -2174,6 +2177,9 @@ metric.conditions_to_cover.description=Branches to cover
 metric.new_conditions_to_cover.name=Branches to cover on new code
 metric.new_conditions_to_cover.description=Branches to cover on new code
 
+metric.covered_conditions.name=Covered branches
+metric.covered_conditions.description=Covered branches
+
 metric.uncovered_conditions.name=Uncovered branches
 metric.uncovered_conditions.description=Uncovered branches
 
index ac32560b189b6ef501cbf992cbe9425306fead13..fa99fab4b7b6c6115c6a5bf8a33122c4d20a2191 100644 (file)
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Unit Tests</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span class="label">Coverage</span>
-      <span class="number">{{component.msr.coverage}}</span>
-    </span></li>
-    <li><span class="item">
-      <span class="label">Line coverage</span>
-      <span class="number">{{component.msr.line_coverage}}</span>
-    </span></li>
-    <li><a class="item js-filter-lines-to-cover">
-      <span class="label">Lines to cover</span>
-      <span class="number">{{component.msr.lines_to_cover}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-covered-lines">
-      <span class="label">Covered lines</span>
-      <span class="number">{{component.msr.covered_lines}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-uncovered-lines">
-      <span class="label">Uncovered lines</span>
-      <span class="number">{{component.msr.uncovered_lines}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-  </ul>
-</div>
+{{#with component.msr}}
+  <div class="component-viewer-header-expanded-bar-section">
+    <div class="component-viewer-header-expanded-bar-section-title">Unit Tests</div>
+    <ul class="component-viewer-header-expanded-bar-section-list">
+      {{{componentViewerHeaderItem coverage 'coverage'}}}
+      {{{componentViewerHeaderItem line_coverage 'line_coverage'}}}
+      {{{componentViewerHeaderLink lines_to_cover 'lines_to_cover' 'js-filter-lines-to-cover'}}}
+      {{{componentViewerHeaderLink covered_lines 'lines_to_cover' 'js-filter-covered-lines'}}}
+      {{{componentViewerHeaderLink uncovered_lines 'uncovered_lines' 'js-filter-uncovered-lines'}}}
+    </ul>
+  </div>
 
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">&nbsp;</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">&nbsp;</span></li>
-    <li><span class="item">
-      <span class="label">Branch coverage</span>
-      <span class="number">{{component.msr.branch_coverage}}</span>
-    </span></li>
-    <li><a class="item js-filter-branches-to-cover">
-      <span class="label">Branches to cover</span>
-      <span class="number">{{component.msr.conditions_to_cover}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-covered-branches">
-      <span class="label">Covered branches</span>
-      <span class="number">{{component.msr.covered_conditions}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-uncovered-branches">
-      <span class="label">Uncovered branches</span>
-      <span class="number">{{component.msr.uncovered_conditions}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-  </ul>
-</div>
+  {{#any branch_coverage conditions_to_cover covered_conditions uncovered_conditions}}
+    <div class="component-viewer-header-expanded-bar-section">
+      <div class="component-viewer-header-expanded-bar-section-title">&nbsp;</div>
+      <ul class="component-viewer-header-expanded-bar-section-list">
+        <li><span class="item">&nbsp;</span></li>
+        {{{componentViewerHeaderItem branch_coverage 'branch_coverage'}}}
+        {{{componentViewerHeaderLink conditions_to_cover 'conditions_to_cover' 'js-filter-branches-to-cover'}}}
+        {{{componentViewerHeaderLink covered_conditions 'covered_conditions' 'js-filter-covered-branches'}}}
+        {{{componentViewerHeaderLink uncovered_conditions 'uncovered_conditions' 'js-filter-uncovered-branches'}}}
+      </ul>
+    </div>
+  {{/any}}
 
 
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Integration Tests</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span class="label">Coverage</span>
-      <span class="number">{{component.msr.it_coverage}}</span>
-    </span></li>
-    <li><span class="item">
-      <span class="label">Line coverage</span>
-      <span class="number">{{component.msr.it_line_coverage}}</span>
-    </span></li>
-    <li><a class="item js-filter-lines-to-cover-it">
-      <span class="label">Lines to cover</span>
-      <span class="number">{{component.msr.it_lines_to_cover}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-covered-lines-it">
-      <span class="label">Covered lines</span>
-      <span class="number">{{component.msr.it_covered_lines}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-uncovered-lines-it">
-      <span class="label">Uncovered lines</span>
-      <span class="number">{{component.msr.it_uncovered_lines}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-  </ul>
-</div>
+  {{#any it_coverage it_line_coverage it_lines_to_cover it_covered_lines it_uncovered_lines}}
+    <div class="component-viewer-header-expanded-bar-section">
+      <div class="component-viewer-header-expanded-bar-section-title">Integration Tests</div>
+      <ul class="component-viewer-header-expanded-bar-section-list">
+        {{{componentViewerHeaderItem it_coverage 'coverage'}}}
+        {{{componentViewerHeaderItem it_line_coverage 'line_coverage'}}}
+        {{{componentViewerHeaderLink it_lines_to_cover 'lines_to_cover' 'js-filter-lines-to-cover-it'}}}
+        {{{componentViewerHeaderLink it_covered_lines 'lines_to_cover' 'js-filter-covered-lines-it'}}}
+        {{{componentViewerHeaderLink it_uncovered_lines 'uncovered_lines' 'js-filter-uncovered-lines-it'}}}
+      </ul>
+    </div>
+  {{/any}}
 
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">&nbsp;</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">&nbsp;</span></li>
-    <li><span class="item">
-      <span class="label">Branch coverage</span>
-      <span class="number">{{component.msr.it_branch_coverage}}</span>
-    </span></li>
-    <li><a class="item js-filter-branches-to-cover-it">
-      <span class="label">Branches to cover</span>
-      <span class="number">{{component.msr.it_conditions_to_cover}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-covered-branches-it">
-      <span class="label">Covered branches</span>
-      <span class="number">{{component.msr.it_covered_conditions}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-uncovered-branches-it">
-      <span class="label">Uncovered branches</span>
-      <span class="number">{{component.msr.it_uncovered_conditions}}</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-  </ul>
-</div>
\ No newline at end of file
+  {{#any it_branch_coverage it_conditions_to_cover it_covered_conditions it_uncovered_conditions}}
+    <div class="component-viewer-header-expanded-bar-section">
+      <div class="component-viewer-header-expanded-bar-section-title">&nbsp;</div>
+      <ul class="component-viewer-header-expanded-bar-section-list">
+        <li><span class="item">&nbsp;</span></li>
+        {{{componentViewerHeaderItem it_branch_coverage 'branch_coverage'}}}
+        {{{componentViewerHeaderLink it_conditions_to_cover 'conditions_to_cover' 'js-filter-branches-to-cover-it'}}}
+        {{{componentViewerHeaderLink it_covered_conditions 'covered_conditions' 'js-filter-covered-branches-it'}}}
+        {{{componentViewerHeaderLink it_uncovered_conditions 'uncovered_conditions' 'js-filter-uncovered-branches-it'}}}
+      </ul>
+    </div>
+  {{/any}}
+{{/with}}
\ No newline at end of file
diff --git a/sonar-server/src/main/hbs/component-viewer/header/_header-item.hbs b/sonar-server/src/main/hbs/component-viewer/header/_header-item.hbs
new file mode 100644 (file)
index 0000000..c7c0a0e
--- /dev/null
@@ -0,0 +1,4 @@
+<li><span class="item">
+  <span class="label">{{t 'metric' label 'name'}}</span>
+  <span class="number">{{value}}</span>
+</span></li>
\ No newline at end of file
diff --git a/sonar-server/src/main/hbs/component-viewer/header/_header-link.hbs b/sonar-server/src/main/hbs/component-viewer/header/_header-link.hbs
new file mode 100644 (file)
index 0000000..d99ee4a
--- /dev/null
@@ -0,0 +1,5 @@
+<li><a class="item {{cl}}">
+  <span class="label">{{t 'metric' label 'name'}}</span>
+  <span class="number">{{value}}</span>
+  <i class="icon-chevron-right"></i>
+</a></li>
\ No newline at end of file
index c0433bd337d385d52e129c3ed2ce660a16373060..d4e2ffa911b3254654ac4acfa36a11a3742754c6 100644 (file)
@@ -47,6 +47,10 @@ define(['handlebars'], function (Handlebars) {
     return v1 != v2 ? options.fn(this) : options.inverse(this);
   });
 
+  Handlebars.registerHelper('notNull', function(value, options) {
+    return value != null ? options.fn(this) : options.inverse(this);
+  });
+
   Handlebars.registerHelper('all', function() {
     var args = Array.prototype.slice.call(arguments, 0, -1),
         options = arguments[arguments.length - 1],
@@ -59,10 +63,10 @@ define(['handlebars'], function (Handlebars) {
   Handlebars.registerHelper('any', function() {
     var args = Array.prototype.slice.call(arguments, 0, -1),
         options = arguments[arguments.length - 1],
-        all = args.reduce(function(prev, current) {
+        any = args.reduce(function(prev, current) {
           return prev || current;
-        }, true);
-    return all ? options.fn(this) : options.inverse(this);
+        }, false);
+    return any ? options.fn(this) : options.inverse(this);
   });
 
   Handlebars.registerHelper('inArray', function(array, element, options) {
@@ -192,4 +196,26 @@ define(['handlebars'], function (Handlebars) {
     }, '');
   });
 
+  Handlebars.registerHelper('componentViewerHeaderLink', function(value, label, cl, hash) {
+    var name = '_header-link';
+    if (value != null) {
+      var ps = Handlebars.partials;
+      if (typeof ps[name] !== 'function') {
+        ps[name] = Handlebars.compile(ps[name]);
+      }
+      return ps[name]({ value: value, label: label, cl: cl}, hash);
+    }
+  });
+
+  Handlebars.registerHelper('componentViewerHeaderItem', function(value, label, hash) {
+    var name = '_header-item';
+    if (value != null) {
+      var ps = Handlebars.partials;
+      if (typeof ps[name] !== 'function') {
+        ps[name] = Handlebars.compile(ps[name]);
+      }
+      return ps[name]({ value: value, label: label}, hash);
+    }
+  });
+
 });
index 1ed04d23299e1f0905ed15319ac2264b363acd9a..074c5f2f8c686322130150fddd622f79ed041aca 100644 (file)
     'metric.class_complexity_distribution.name': '<%= escape_javascript message('metric.class_complexity_distribution.name') -%>',
     'metric.function_complexity_distribution.name': '<%= escape_javascript message('metric.function_complexity_distribution.name') -%>',
     'metric.file_complexity_distribution.name': '<%= escape_javascript message('metric.file_complexity_distribution.name') -%>',
+
     'metric.coverage.name': '<%= escape_javascript message('metric.coverage.name') -%>',
     'metric.line_coverage.name': '<%= escape_javascript message('metric.line_coverage.name') -%>',
+    'metric.lines_to_cover.name': '<%= escape_javascript message('metric.lines_to_cover.name') -%>',
+    'metric.covered_lines.name': '<%= escape_javascript message('metric.covered_lines.name') -%>',
+    'metric.uncovered_lines.name': '<%= escape_javascript message('metric.uncovered_lines.name') -%>',
     'metric.branch_coverage.name': '<%= escape_javascript message('metric.branch_coverage.name') -%>',
+    'metric.conditions_to_cover.name': '<%= escape_javascript message('metric.conditions_to_cover.name') -%>',
+    'metric.covered_conditions.name': '<%= escape_javascript message('metric.covered_conditions.name') -%>',
+    'metric.uncovered_conditions.name': '<%= escape_javascript message('metric.uncovered_conditions.name') -%>',
+
     'metric.duplicated_blocks.name': '<%= escape_javascript message('metric.duplicated_blocks.name') -%>',
     'metric.duplicated_files.name': '<%= escape_javascript message('metric.duplicated_files.name') -%>',
     'metric.duplicated_lines.name': '<%= escape_javascript message('metric.duplicated_lines.name') -%>',