SCROLL_OFFSET = 10
+ LINES_LIMIT = 3000
+
class ComponentViewer extends utils.mixOf Marionette.Layout, IssuesMixin, CoverageMixin, DuplicationsMixin, SCMMixin
$.get API_MEASURES, data, (data) =>
measuresList = data[0].msr || []
measures = @component.get 'measures'
+ lines = null
measuresList.forEach (m) ->
measures[m.key] = m.frmt_val || m.data
+ lines = m.val if m.key == 'ncloc'
@component.set 'measures', measures
- @augmentWithNclocData()
+ if lines < LINES_LIMIT
+ @augmentWithNclocData()
+ else
+ delete measures['ncloc_data']
requestTrends: (key, period) ->
$ = jQuery
API_COVERAGE_TESTS = "#{baseUrl}/api/tests/test_cases"
+ LINES_LIMIT = 3000
ISSUES_LIMIT = 100
$(expand).insertBefore rows.first()
lines = _.size @model.get 'source'
+ lines = Math.min lines, LINES_LIMIT
lastShown = rows.last().data('line-number')
if lastShown < lines
expand = @expandTemplate from: lastShown, to: lines, settings: @options.main.settings.toJSON()
source.forEach (sourceLine) =>
show = false
line = sourceLine.lineNumber
- @showBlocks.forEach (block) ->
- show = true if block.from <= line && block.to >= line
- _.extend sourceLine, show: show
+ if line <= LINES_LIMIT
+ @showBlocks.forEach (block) ->
+ show = true if block.from <= line && block.to >= line
+ _.extend sourceLine, show: show
source
prepareSource: ->
source = @model.get 'formattedSource'
if source?
- @augmentWithShow source
+ _.first @augmentWithShow(source), LINES_LIMIT
getStatColumnsCount: ->
showZeroLine: @showZeroLine()
issuesLimit: ISSUES_LIMIT
issuesLimitReached: @model.get('activeIssues')?.length > ISSUES_LIMIT
+ linesLimit: LINES_LIMIT
+ linesLimitReached: _.size(@model.get 'source') > LINES_LIMIT
{{else}}
- {{#if state.duplicationsInDeletedFiles}}
- <p class="marginbottom10 js-duplications-in-deleted-files">{{t 'duplications.dups_found_on_deleted_resource'}}</p>
+ {{#if linesLimitReached}}
+ <p class="message-alert marginbottom10">{{tp 'component_viewer.lines_limit_reached' linesLimit}}</p>
{{/if}}
{{#if issuesLimitReached}}
<p class="message-alert marginbottom10">{{tp 'component_viewer.issues_limit_reached' issuesLimit}}</p>
{{/if}}
+ {{#if state.duplicationsInDeletedFiles}}
+ <p class="marginbottom10 js-duplications-in-deleted-files">{{t 'duplications.dups_found_on_deleted_resource'}}</p>
+ {{/if}}
+
<table class="code">
{{#if showZeroLine}}
<tr class="row row-hidden" data-line-number="0" id="{{uid}}-0">
component_viewer.new_window=Open in New Window
component_viewer.get_permalink=Get Permalink
component_viewer.covered_lines=Covered Lines
+component_viewer.lines_limit_reached=For performance reasons, only the {0} first lines will be displayed.
component_viewer.issues_limit_reached=For usability reasons, only the {0} first issues will be fully displayed. Remaining issues will simply be underlined.
component_viewer.issues_limit_reached_tooltip={0}\n\nRefine your filter to be able to see the details of this issue.
component_viewer.cannot_show=We're sorry, but something went wrong. Please try back in a few minutes and contact support if the problem persists.