From 89d1767c9192c0229f82f7f246a747fc76333157 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 3 Jun 2014 17:59:13 +0600 Subject: [PATCH] SONAR-5209 Correctly show duplications inside current file --- .../main/coffee/component-viewer/main.coffee | 8 ++++--- .../coffee/component-viewer/source.coffee | 23 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/sonar-server/src/main/coffee/component-viewer/main.coffee b/sonar-server/src/main/coffee/component-viewer/main.coffee index 19d773145d5..6151a9207f3 100644 --- a/sonar-server/src/main/coffee/component-viewer/main.coffee +++ b/sonar-server/src/main/coffee/component-viewer/main.coffee @@ -380,9 +380,11 @@ define [ @settings.set 'duplications', true @sourceView.resetShowBlocks() duplications.forEach (d) => - lineFrom = d.blocks[0].from - lineTo = lineFrom + d.blocks[0].size - @sourceView.addShowBlock lineFrom - LINES_AROUND_DUPLICATION, lineTo + LINES_AROUND_DUPLICATION + d.blocks.forEach (b) => + if b._ref == '1' + lineFrom = b.from + lineTo = b.from + b.size + @sourceView.addShowBlock lineFrom - LINES_AROUND_DUPLICATION, lineTo + LINES_AROUND_DUPLICATION @sourceView.render() diff --git a/sonar-server/src/main/coffee/component-viewer/source.coffee b/sonar-server/src/main/coffee/component-viewer/source.coffee index ed08bcf8f94..76aa7a46ecc 100644 --- a/sonar-server/src/main/coffee/component-viewer/source.coffee +++ b/sonar-server/src/main/coffee/component-viewer/source.coffee @@ -135,7 +135,7 @@ define [ popup = new DuplicationPopupView triggerEl: $(e.currentTarget) main: @options.main - collection: new Backbone.Collection _.rest @model.get('duplications')[index - 1].blocks + collection: new Backbone.Collection @model.get('duplications')[index - 1].blocks popup.render() @@ -199,17 +199,18 @@ define [ augmentWithDuplications: (source) -> duplications = @model.get 'duplications' - if duplications + return source unless duplications? + source.forEach (line) -> + lineDuplications = [] duplications.forEach (d, i) -> - lineFrom = d.blocks[0].from - lineTo = d.blocks[0].from + d.blocks[0].size - source.forEach (line) -> - lineDuplications = line.duplications || [] - if line.lineNumber >= lineFrom && (line.lineNumber <= lineTo) - lineDuplications.push i + 1 - else - lineDuplications.push false - line.duplications = lineDuplications + duplicated = false + d.blocks.forEach (b) -> + if b._ref == '1' + lineFrom = b.from + lineTo = b.from + b.size + duplicated = true if line.lineNumber >= lineFrom && line.lineNumber <= lineTo + lineDuplications.push if duplicated then i + 1 else false + line.duplications = lineDuplications source -- 2.39.5