From 5c2ea80547af8ac0b8ac610a840d915fa092a69e Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Wed, 19 Aug 2015 09:44:13 +0200 Subject: [PATCH] SONAR-6576 do not show secondary locations and execution flows of closed issues --- .../src/main/js/apps/issues/models/issues.js | 10 ++++++++++ .../js/components/issue/collections/issues.js | 10 ++++++++++ .../main/js/components/issue/models/issue.js | 10 ++++++++++ server/sonar-web/test/unit/issue.spec.js | 18 ++++++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/server/sonar-web/src/main/js/apps/issues/models/issues.js b/server/sonar-web/src/main/js/apps/issues/models/issues.js index 5a5a8f3ec8b..cc617bd6eca 100644 --- a/server/sonar-web/src/main/js/apps/issues/models/issues.js +++ b/server/sonar-web/src/main/js/apps/issues/models/issues.js @@ -25,6 +25,15 @@ define([ return issue; }, + _prepareClosed: function (issue) { + if (issue.status === 'CLOSED') { + issue.secondaryLocations = []; + issue.executionFlows = []; + delete issue.textRange; + } + return issue; + }, + parseIssues: function (r) { var that = this; return r.issues.map(function (issue, index) { @@ -36,6 +45,7 @@ define([ issue = that._injectRelational(issue, r.users, 'assignee', 'login'); issue = that._injectRelational(issue, r.users, 'reporter', 'login'); issue = that._injectRelational(issue, r.actionPlans, 'actionPlan', 'key'); + issue = that._prepareClosed(issue); return issue; }); }, diff --git a/server/sonar-web/src/main/js/components/issue/collections/issues.js b/server/sonar-web/src/main/js/components/issue/collections/issues.js index 248ec44971a..e3cdca48a9e 100644 --- a/server/sonar-web/src/main/js/components/issue/collections/issues.js +++ b/server/sonar-web/src/main/js/components/issue/collections/issues.js @@ -25,6 +25,15 @@ define([ return issue; }, + _prepareClosed: function (issue) { + if (issue.status === 'CLOSED') { + issue.secondaryLocations = []; + issue.executionFlows = []; + delete issue.textRange; + } + return issue; + }, + parse: function (r) { var that = this; @@ -43,6 +52,7 @@ define([ issue = that._injectRelational(issue, r.users, 'assignee', 'login'); issue = that._injectRelational(issue, r.users, 'reporter', 'login'); issue = that._injectRelational(issue, r.actionPlans, 'actionPlan', 'key'); + issue = that._prepareClosed(issue); return issue; }); } diff --git a/server/sonar-web/src/main/js/components/issue/models/issue.js b/server/sonar-web/src/main/js/components/issue/models/issue.js index 3ee6036ca33..31f268c958a 100644 --- a/server/sonar-web/src/main/js/components/issue/models/issue.js +++ b/server/sonar-web/src/main/js/components/issue/models/issue.js @@ -27,6 +27,7 @@ define(function () { issue = this._injectRelational(issue, r.users, 'assignee', 'login'); issue = this._injectRelational(issue, r.users, 'reporter', 'login'); issue = this._injectRelational(issue, r.actionPlans, 'actionPlan', 'key'); + issue = this._prepareClosed(issue); return issue; } else { return r; @@ -49,6 +50,15 @@ define(function () { return issue; }, + _prepareClosed: function (issue) { + if (issue.status === 'CLOSED') { + issue.secondaryLocations = []; + issue.executionFlows = []; + delete issue.textRange; + } + return issue; + }, + sync: function (method, model, options) { var opts = options || {}; opts.contentType = 'application/x-www-form-urlencoded'; diff --git a/server/sonar-web/test/unit/issue.spec.js b/server/sonar-web/test/unit/issue.spec.js index 1f8d29ca7cb..e0e7c45f730 100644 --- a/server/sonar-web/test/unit/issue.spec.js +++ b/server/sonar-web/test/unit/issue.spec.js @@ -57,6 +57,24 @@ define(function (require) { assert.deepEqual(issue.toJSON(), example); }); + bdd.it('should unset `textRange` of a closed issue', function () { + var issue = new Issue(); + var result = issue.parse({ issue: { status: 'CLOSED', textRange: { startLine: 5 } } }); + assert.notOk(result.textRange); + }); + + bdd.it('should unset `secondaryLocations` of a closed issue', function () { + var issue = new Issue(); + var result = issue.parse({ issue: { status: 'CLOSED', secondaryLocations: [1, 2, 3] } }); + assert.deepEqual(result.secondaryLocations, []); + }); + + bdd.it('should unset `executionFlows` of a closed issue', function () { + var issue = new Issue(); + var result = issue.parse({ issue: { status: 'CLOSED', executionFlows: [1, 2, 3] } }); + assert.deepEqual(result.executionFlows, []); + }); + bdd.describe('Actions', function () { var stub; -- 2.39.5