]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5209 Basic metrics, complete i18n
authorStas Vilchik <vilchiks@gmail.com>
Mon, 19 May 2014 12:56:01 +0000 (14:56 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Mon, 19 May 2014 12:56:08 +0000 (14:56 +0200)
sonar-core/src/main/resources/org/sonar/l10n/core.properties
sonar-server/src/main/coffee/component-viewer/main.coffee
sonar-server/src/main/hbs/component-viewer/header.hbs
sonar-server/src/main/hbs/component-viewer/header/_basic-header.hbs
sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs
sonar-server/src/main/hbs/component-viewer/header/_issues-header.hbs
sonar-server/src/main/js/common/handlebars-extensions.js
sonar-server/src/main/webapp/WEB-INF/app/views/issues/search.html.erb

index 3e7898358e43674c87196b0eacfdf25325272998..c7207dc471c45037849d955f897b6d3e04f97d4c 100644 (file)
@@ -2640,3 +2640,29 @@ duration.month=about a month
 duration.months={0} months
 duration.year=about a year
 duration.years={0} years
+
+
+#------------------------------------------------------------------------------
+#
+# COMPONENT VIEWER
+#
+#------------------------------------------------------------------------------
+component_viewer.measure_section.size=Size
+component_viewer.measure_section.complexity=Complexity
+component_viewer.measure_section.structure=Structure
+component_viewer.measure_section.documentation=Documentation
+component_viewer.measure_section.severities=Severities
+component_viewer.measure_section.rules=Rules
+component_viewer.measure_section.issues=Issues
+component_viewer.measure_section.sqale=SQALE
+component_viewer.measure_section.unit_tests=Unit Tests
+component_viewer.measure_section.integration_tests=Integration Tests
+
+component_viewer.issues.current_issue=Current Issue
+component_viewer.issues.unresolved_issues=Unresolved Issues
+component_viewer.issues.false_positive_issues=False Positive Issues
+
+component_viewer.header.debt=Debt
+component_viewer.header.toggle_issues=Toggle issues
+component_viewer.header.toggle_coverage=Toggle coverage
+component_viewer.header.toggle_duplications=Toggle duplications
\ No newline at end of file
index 7c65a0088293f33cc0451daa9e30d7c607fd62ea..25d2ca5775b2aec69e44aada19d25a454476ed8f 100644 (file)
@@ -28,9 +28,10 @@ define [
   LINES_AROUND_ISSUE = 4
   LINES_AROUND_COVERED_LINE = 1
 
-  SOURCE_METRIC_LIST = 'lines,ncloc,functions,accessors,classes,statements,complexity,function_complexity,' +
-    'comment_lines_density,comment_lines,public_documented_api_density,public_undocumented_api,' +
-    'public_api'
+  SOURCE_METRIC_LIST = 'accessors,classes,functions,public_api,statements,' +
+    'generated_lines,generated_ncloc,lines,ncloc,' +
+    'complexity,class_complexity,function_complexity' +
+    ''
 
   COVERAGE_METRIC_LIST = 'coverage,line_coverage,lines_to_cover,covered_lines,uncovered_lines,' +
     'branch_coverage,conditions_to_cover,uncovered_conditions,' +
index c039f3e2a4badb1d665b25b1392bf7188a0cfb67..c06684a5902e0d4433b9a892c4ec54985145e4a9 100644 (file)
@@ -33,7 +33,7 @@
       <a data-scope="issues" class="component-viewer-header-measures-expand">
           <div class="component-viewer-header-measure">
             <span class="component-viewer-header-measure-value">{{default component.measures.fDebt 0}}</span>
-            <span class="component-viewer-header-measure-label">Debt</span>
+            <span class="component-viewer-header-measure-label">{{t 'component_viewer.header.debt'}}</span>
           </div>
         {{#if component.measures.fIssues}}
           <div class="component-viewer-header-measure">
           <div class="component-viewer-header-measure">
             <div class="component-viewer-header-measure-issues">
               <div class="component-viewer-header-measure-issue s-blocker"
-                   style="width: {{percent component.measures.fBlockerIssues component.measures.maxIssues}}%;"></div>
+                   style="width: {{percent component.measures.fBlockerIssues component.measures.maxIssues}};"></div>
               <div class="component-viewer-header-measure-issue s-critical"
-                   style="width: {{percent component.measures.fCriticalIssues component.measures.maxIssues}}%;"></div>
+                   style="width: {{percent component.measures.fCriticalIssues component.measures.maxIssues}};"></div>
               <div class="component-viewer-header-measure-issue s-major"
-                   style="width: {{percent component.measures.fMajorIssues component.measures.maxIssues}}%;"></div>
+                   style="width: {{percent component.measures.fMajorIssues component.measures.maxIssues}};"></div>
               <div class="component-viewer-header-measure-issue s-minor"
-                   style="width: {{percent component.measures.fMinorIssues component.measures.maxIssues}}%;"></div>
+                   style="width: {{percent component.measures.fMinorIssues component.measures.maxIssues}};"></div>
               <div class="component-viewer-header-measure-issue s-info"
-                   style="width: {{percent component.measures.fInfoIssues component.measures.maxIssues}}%;"></div>
+                   style="width: {{percent component.measures.fInfoIssues component.measures.maxIssues}};"></div>
             </div>
           </div>
         {{/if}}
         <i class="icon-dropdown"></i>
       </a>
-      <a data-scope="issues" title="Toggle issues"
+      <a data-scope="issues" title="{{t 'component_viewer.header.toggle_issues'}}"
          class="js-toggle-issues component-viewer-header-measures-toggle-scope {{#if settings.issues}}active{{/if}}"></a>
     </div>
 
@@ -72,7 +72,7 @@
             </div>
           <i class="icon-dropdown"></i>
         </a>
-        <a data-scope="coverage" title="Toggle coverage"
+        <a data-scope="coverage" title="{{t 'component_viewer.header.toggle_coverage'}}"
            class="js-toggle-coverage component-viewer-header-measures-toggle-scope {{#if settings.coverage}}active{{/if}}"></a>
       </div>
     {{/if}}
         <a data-scope="duplications" class="component-viewer-header-measures-expand">
             <div class="component-viewer-header-measure">
               <span class="component-viewer-header-measure-value">{{component.measures.fDuplicationDensity}}</span>
-              <span class="component-viewer-header-measure-label">Duplications</span>
+              <span class="component-viewer-header-measure-label">{{t 'metric.duplicated_lines_density.name'}}</span>
             </div>
           <i class="icon-dropdown"></i>
         </a>
-        <a data-scope="duplications" title="Toggle duplications"
+        <a data-scope="duplications" title="{{t 'component_viewer.header.toggle_duplications'}}"
            class="js-toggle-duplications component-viewer-header-measures-toggle-scope {{#if settings.duplications}}active{{/if}}"></a>
       </div>
     {{/if}}
index 377222fe0903b24503d587b261c282e77eb1eb5b..b7725e38d0412e28197f0d0ccfeebeff4d285fed 100644 (file)
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Size</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span>Accessors</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Classes</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Functions</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Public API</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Statements</span>
-      <span class="number">X</span>
-    </span></li>
-  </ul>
-</div>
+{{#with component.msr}}
+  <div class="component-viewer-header-expanded-bar-section">
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.size'}}
+    </div>
+    <ul class="component-viewer-header-expanded-bar-section-list">
+      {{{componentViewerHeaderItem lines 'lines'}}}
+      {{{componentViewerHeaderItem ncloc 'ncloc'}}}
+    </ul>
+  </div>
 
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Lines</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span>Generated lines</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Generated lines of code</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Lines</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Lines of code</span>
-      <span class="number">X</span>
-    </span></li>
-  </ul>
-</div>
+  <div class="component-viewer-header-expanded-bar-section">
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.complexity'}}
+    </div>
+    <ul class="component-viewer-header-expanded-bar-section-list">
+      {{{componentViewerHeaderItem complexity 'complexity'}}}
+      {{{componentViewerHeaderItem function_complexity 'function_complexity'}}}
+    </ul>
+  </div>
 
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Complexity</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span>Complexity</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Complexity /class</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Complexity /file</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Complexity /function</span>
-      <span class="number">X</span>
-    </span></li>
-  </ul>
-</div>
+  <div class="component-viewer-header-expanded-bar-section">
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.structure'}}
+    </div>
+    <ul class="component-viewer-header-expanded-bar-section-list">
+      {{{componentViewerHeaderItem classes 'classes'}}}
+      {{{componentViewerHeaderItem functions 'functions'}}}
+      {{{componentViewerHeaderItem accessors 'accessors'}}}
+      {{{componentViewerHeaderItem statements 'statements'}}}
+    </ul>
+  </div>
 
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Design</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span>File dependencies to cut</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Package cycles</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Package dependencies to cut</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Package tangle index</span>
-      <span class="number">X</span>
-    </span></li>
-  </ul>
-</div>
-
-<div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Documentation</div>
-  <ul class="component-viewer-header-expanded-bar-section-list">
-    <li><span class="item">
-      <span>Comment lines</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Comments (%)</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Public documented API (%)</span>
-      <span class="number">X</span>
-    </span></li>
-    <li><span class="item">
-      <span>Public undocumented API</span>
-      <span class="number">X</span>
-    </span></li>
-  </ul>
-</div>
\ No newline at end of file
+  <div class="component-viewer-header-expanded-bar-section">
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.documentation'}}
+    </div>
+    <ul class="component-viewer-header-expanded-bar-section-list">
+      {{{componentViewerHeaderItem comment_lines 'comment_lines'}}}
+      {{{componentViewerHeaderItem comment_lines_density 'comment_lines_density'}}}
+      {{{componentViewerHeaderItem public_api 'public_api'}}}
+      {{{componentViewerHeaderItem public_undocumented_api 'public_undocumented_api'}}}
+      {{{componentViewerHeaderItem public_documented_api_density 'public_documented_api_density'}}}
+    </ul>
+  </div>
+{{/with}}
\ No newline at end of file
index fa99fab4b7b6c6115c6a5bf8a33122c4d20a2191..b33187f7952a4cbef67473bf1de147be69e74a10 100644 (file)
@@ -1,6 +1,8 @@
 {{#with component.msr}}
   <div class="component-viewer-header-expanded-bar-section">
-    <div class="component-viewer-header-expanded-bar-section-title">Unit Tests</div>
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.unit_tests'}}
+    </div>
     <ul class="component-viewer-header-expanded-bar-section-list">
       {{{componentViewerHeaderItem coverage 'coverage'}}}
       {{{componentViewerHeaderItem line_coverage 'line_coverage'}}}
@@ -26,7 +28,9 @@
 
   {{#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>
+      <div class="component-viewer-header-expanded-bar-section-title">
+        {{t 'component_viewer.measure_section.integration_tests'}}
+      </div>
       <ul class="component-viewer-header-expanded-bar-section-list">
         {{{componentViewerHeaderItem it_coverage 'coverage'}}}
         {{{componentViewerHeaderItem it_line_coverage 'line_coverage'}}}
index 3d0756ef718603569584d83a1ebd490a4d3eece8..358b049bbf4247f225224c574e7a5cab6643f8f5 100644 (file)
@@ -1,6 +1,8 @@
 {{#if component.measures.fIssues}}
   <div class="component-viewer-header-expanded-bar-section">
-    <div class="component-viewer-header-expanded-bar-section-title">Severities</div>
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.severities'}}
+    </div>
     <ul class="component-viewer-header-expanded-bar-section-list">
       {{#if component.msr.blocker_violations}}
         <li><a class="item js-filter-blocker-issues">
 
 {{#if component.measures.fIssues}}
   <div class="component-viewer-header-expanded-bar-section">
-    <div class="component-viewer-header-expanded-bar-section-title">Rules</div>
+    <div class="component-viewer-header-expanded-bar-section-title">
+      {{t 'component_viewer.measure_section.rules'}}
+    </div>
     <ul class="component-viewer-header-expanded-bar-section-list">
     </ul>
   </div>
 {{/if}}
 
 <div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Issues</div>
+  <div class="component-viewer-header-expanded-bar-section-title">
+    {{t 'component_viewer.measure_section.issues'}}
+  </div>
   <ul class="component-viewer-header-expanded-bar-section-list">
     <li><a class="item js-filter-current-issue">
-      <span>Current Issue</span>
+      <span>{{t 'component_viewer.issues.current_issue'}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
     {{#if component.measures.fIssues}}
       <li><a class="item js-filter-unresolved-issues">
-        <span>Unresolved Issues</span>
+        <span>{{t 'component_viewer.issues.unresolved_issues'}}</span>
         <span class="number">{{component.measures.fIssues}}</span>
         <i class="icon-chevron-right"></i>
       </a></li>
     {{/if}}
     {{#if component.msr.false_positive_issues}}
       <li><a class="item js-filter-false-positive-issues">
-        <span>False Positive</span>
+        <span>{{t 'component_viewer.issues.false_positive_issues'}}</span>
         <span class="number">{{component.msr.false_positive_issues}}</span>
         <i class="icon-chevron-right"></i>
       </a></li>
@@ -74,5 +80,5 @@
 </div>
 
 <a class="component-viewer-header-expanded-bar-bulk-change js-issues-bulk-change">
-  <i class="icon-bulk-change"></i> Bulk Change
+  <i class="icon-bulk-change"></i> {{t 'bulk_change'}}
 </a>
\ No newline at end of file
index 5ea426ecee71d30f19358fedf9ff5d0c59afb342..07cd6ba22e0f9f9520651191248fc5871e6899f6 100644 (file)
@@ -36,7 +36,7 @@ define(['handlebars'], function (Handlebars) {
   });
 
   Handlebars.registerHelper('percent', function(value, total) {
-    return (value || 0) / total * 100;
+    return '' + ((value || 0) / total * 100) + '%';
   });
 
   Handlebars.registerHelper('eq', function(v1, v2, options) {
index 074c5f2f8c686322130150fddd622f79ed041aca..cb04ad4c7a6935724b8d96f09542c4afd7f652b4 100644 (file)
   window.messages = {
     'all': '<%= escape_javascript message('all') -%>',
     'assigned_to': '<%= escape_javascript message('assigned_to') -%>',
+    'bulk_change': '<%= escape_javascript message('bulk_change') -%>',
     'issue.planned_for': '<%= escape_javascript message('issue.planned_for') -%>',
     'issue.do_plan': '<%= escape_javascript message('issue.do_plan') -%>',
     'issue.planned_for': '<%= escape_javascript message('issue.planned_for') -%>',
     'severity.MINOR': '<%= escape_javascript message('severity.MINOR') -%>',
     'severity.INFO': '<%= escape_javascript message('severity.INFO') -%>',
 
-    'metric.accessors.name': '<%= escape_javascript message('metric.accessors.name') -%>',
-    'metric.alert_status.name': '<%= escape_javascript message('metric.alert_status.name') -%>',
+    'component_viewer.measure_section.size': '<%= escape_javascript message('component_viewer.measure_section.size') -%>',
+    'component_viewer.measure_section.complexity': '<%= escape_javascript message('component_viewer.measure_section.complexity') -%>',
+    'component_viewer.measure_section.structure': '<%= escape_javascript message('component_viewer.measure_section.structure') -%>',
+    'component_viewer.measure_section.documentation': '<%= escape_javascript message('component_viewer.measure_section.documentation') -%>',
+    'component_viewer.measure_section.severities': '<%= escape_javascript message('component_viewer.measure_section.severities') -%>',
+    'component_viewer.measure_section.rules': '<%= escape_javascript message('component_viewer.measure_section.rules') -%>',
+    'component_viewer.measure_section.issues': '<%= escape_javascript message('component_viewer.measure_section.issues') -%>',
+    'component_viewer.measure_section.sqale': '<%= escape_javascript message('component_viewer.measure_section.sqale') -%>',
+    'component_viewer.measure_section.unit_tests': '<%= escape_javascript message('component_viewer.measure_section.unit_tests') -%>',
+    'component_viewer.measure_section.integration_tests': '<%= escape_javascript message('component_viewer.measure_section.integration_tests') -%>',
+
+    'component_viewer.issues.current_issue': '<%= escape_javascript message('component_viewer.issues.current_issue') -%>',
+    'component_viewer.issues.unresolved_issues': '<%= escape_javascript message('component_viewer.issues.unresolved_issues') -%>',
+    'component_viewer.issues.false_positive_issues': '<%= escape_javascript message('component_viewer.issues.false_positive_issues') -%>',
+
+    'component_viewer.header.debt': '<%= escape_javascript message('component_viewer.header.debt') -%>',
+    'component_viewer.header.toggle_issues': '<%= escape_javascript message('component_viewer.header.toggle_issues') -%>',
+    'component_viewer.header.toggle_coverage': '<%= escape_javascript message('component_viewer.header.toggle_coverage') -%>',
+    'component_viewer.header.toggle_duplications': '<%= escape_javascript message('component_viewer.header.toggle_duplications') -%>',
+
+    'metric.lines.name': '<%= escape_javascript message('metric.lines.name') -%>',
+    'metric.ncloc.name': '<%= escape_javascript message('metric.ncloc.name') -%>',
+    'metric.complexity.name': '<%= escape_javascript message('metric.complexity.name') -%>',
+    'metric.function_complexity.name': '<%= escape_javascript message('metric.function_complexity.name') -%>',
     'metric.classes.name': '<%= escape_javascript message('metric.classes.name') -%>',
-    'metric.comment_blank_lines.name': '<%= escape_javascript message('metric.comment_blank_lines.name') -%>',
+    'metric.functions.name': '<%= escape_javascript message('metric.functions.name') -%>',
+    'metric.accessors.name': '<%= escape_javascript message('metric.accessors.name') -%>',
+    'metric.statements.name': '<%= escape_javascript message('metric.statements.name') -%>',
     'metric.comment_lines.name': '<%= escape_javascript message('metric.comment_lines.name') -%>',
     'metric.comment_lines_density.name': '<%= escape_javascript message('metric.comment_lines_density.name') -%>',
-    'metric.commented_out_code_lines.name': '<%= escape_javascript message('metric.commented_out_code_lines.name') -%>',
-    'metric.complexity.name': '<%= escape_javascript message('metric.complexity.name') -%>',
-    'metric.directories.name': '<%= escape_javascript message('metric.directories.name') -%>',
-    'metric.files.name': '<%= escape_javascript message('metric.files.name') -%>',
-    'metric.functions.name': '<%= escape_javascript message('metric.functions.name') -%>',
-    'metric.generated_lines.name': '<%= escape_javascript message('metric.generated_lines.name') -%>',
-    'metric.generated_ncloc.name': '<%= escape_javascript message('metric.generated_ncloc.name') -%>',
-    'metric.lines.name': '<%= escape_javascript message('metric.lines.name') -%>',
-    'metric.ncloc.name': '<%= escape_javascript message('metric.ncloc.name') -%>',
-    'metric.packages.name': '<%= escape_javascript message('metric.packages.name') -%>',
     'metric.public_api.name': '<%= escape_javascript message('metric.public_api.name') -%>',
-    'metric.public_documented_api_density.name': '<%= escape_javascript message('metric.public_documented_api_density.name') -%>',
     'metric.public_undocumented_api.name': '<%= escape_javascript message('metric.public_undocumented_api.name') -%>',
-    'metric.statements.name': '<%= escape_javascript message('metric.statements.name') -%>',
-    'metric.class_complexity.name': '<%= escape_javascript message('metric.class_complexity.name') -%>',
-    'metric.function_complexity.name': '<%= escape_javascript message('metric.function_complexity.name') -%>',
-    'metric.file_complexity.name': '<%= escape_javascript message('metric.file_complexity.name') -%>',
-    '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.public_documented_api_density.name': '<%= escape_javascript message('metric.public_documented_api_density.name') -%>',
 
     'metric.coverage.name': '<%= escape_javascript message('metric.coverage.name') -%>',
     'metric.line_coverage.name': '<%= escape_javascript message('metric.line_coverage.name') -%>',
     'metric.duplicated_files.name': '<%= escape_javascript message('metric.duplicated_files.name') -%>',
     'metric.duplicated_lines.name': '<%= escape_javascript message('metric.duplicated_lines.name') -%>',
     'metric.duplicated_lines_density.name': '<%= escape_javascript message('metric.duplicated_lines_density.name') -%>',
+
     'metric.violations.name': '<%= escape_javascript message('metric.violations.name') -%>',
     'metric.sqale_index.name': '<%= escape_javascript message('metric.sqale_index.name') -%>',
     'metric.blocker_violations.name': '<%= escape_javascript message('metric.blocker_violations.name') -%>',