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
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,' +
<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>
</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}}
-<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
{{#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'}}}
{{#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'}}}
{{#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>
</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
});
Handlebars.registerHelper('percent', function(value, total) {
- return (value || 0) / total * 100;
+ return '' + ((value || 0) / total * 100) + '%';
});
Handlebars.registerHelper('eq', function(v1, v2, options) {
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') -%>',