From: Stas Vilchik Date: Fri, 19 Jun 2015 10:12:47 +0000 (+0200) Subject: SONAR-6582 update web X-Git-Tag: 5.2-RC1~1410 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=43e17b43c659c00313ca8e74aaea9ec293ff4d4c;p=sonarqube.git SONAR-6582 update web --- 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 5c340c9ef2a..66be85a7464 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 @@ -9,7 +9,24 @@ define([ return baseUrl + '/api/issues/search'; }, + _injectRelational: function (issue, source, baseField, lookupField) { + var baseValue = issue[baseField]; + if (baseValue != null && _.size(source)) { + var lookupValue = _.find(source, function (candidate) { + return candidate[lookupField] === baseValue; + }); + if (lookupValue != null) { + Object.keys(lookupValue).forEach(function (key) { + var newKey = baseField + key.charAt(0).toUpperCase() + key.slice(1); + issue[newKey] = lookupValue[key]; + }); + } + } + return issue; + }, + parseIssues: function (r) { + var that = this; var find = function (source, key, keyField) { var searchDict = {}; searchDict[keyField || 'key'] = key; @@ -45,6 +62,7 @@ define([ ruleName: rule.name }); } + issue = that._injectRelational(issue, r.users, 'assignee', 'login'); return issue; }); }, diff --git a/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter-form.hbs b/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter-form.hbs index c0c36061969..607fd95430e 100644 --- a/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter-form.hbs +++ b/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter-form.hbs @@ -28,9 +28,9 @@
  • - {{#if assignee.login}} - - {{t "assigned_to"}} {{assignee.name}} + {{#if assignee}} + + {{t "assigned_to"}} {{assigneeName}} {{else}} 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 890e00306cd..f749dc448a7 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 @@ -9,7 +9,24 @@ define([ return baseUrl + '/api/issues/search'; }, + _injectRelational: function (issue, source, baseField, lookupField) { + var baseValue = issue[baseField]; + if (baseValue != null && _.size(source)) { + var lookupValue = _.find(source, function (candidate) { + return candidate[lookupField] === baseValue; + }); + if (lookupValue != null) { + Object.keys(lookupValue).forEach(function (key) { + var newKey = baseField + key.charAt(0).toUpperCase() + key.slice(1); + issue[newKey] = lookupValue[key]; + }); + } + } + return issue; + }, + parse: function (r) { + var that = this; function find (source, key, keyField) { var searchDict = {}; searchDict[keyField || 'key'] = key; @@ -42,6 +59,7 @@ define([ if (rule) { _.extend(issue, { ruleName: rule.name }); } + issue = that._injectRelational(issue, r.users, 'assignee', 'login'); 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 6f4d9cfe0c7..cdc821785c8 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 @@ -12,7 +12,27 @@ define(function () { }, parse: function (r) { - return r.issue ? r.issue : r; + if (r.issue) { + return this._injectRelational(r.issue, r.users, 'assignee', 'login'); + } else { + return r; + } + }, + + _injectRelational: function (issue, source, baseField, lookupField) { + var baseValue = issue[baseField]; + if (baseValue != null && _.size(source)) { + var lookupValue = _.find(source, function (candidate) { + return candidate[lookupField] === baseValue; + }); + if (lookupValue != null) { + Object.keys(lookupValue).forEach(function (key) { + var newKey = baseField + key.charAt(0).toUpperCase() + key.slice(1); + issue[newKey] = lookupValue[key]; + }); + } + } + return issue; }, sync: function (method, model, options) { diff --git a/server/sonar-web/src/main/js/components/issue/templates/issue.hbs b/server/sonar-web/src/main/js/components/issue/templates/issue.hbs index 5f79fd7671e..bc4233d51b0 100644 --- a/server/sonar-web/src/main/js/components/issue/templates/issue.hbs +++ b/server/sonar-web/src/main/js/components/issue/templates/issue.hbs @@ -58,20 +58,20 @@
  • {{#inArray actions "assign"}} {{else}} - {{#if assignee.login}} + {{#if assignee}} {{#ifShowAvatars}} - {{avatarHelper assignee.email 16}} + {{avatarHelper assigneeEmail 16}} {{/ifShowAvatars}} {{/if}} - {{#if assignee.login}}{{assignee.name}}{{else}}{{t 'unassigned'}}{{/if}} + {{#if assignee}}{{assigneeName}}{{else}}{{t 'unassigned'}}{{/if}} {{/inArray}}
  • diff --git a/server/sonar-web/src/main/js/components/issue/views/assign-form-view.js b/server/sonar-web/src/main/js/components/issue/views/assign-form-view.js index 72392d51559..c4cd0e5b0f9 100644 --- a/server/sonar-web/src/main/js/components/issue/views/assign-form-view.js +++ b/server/sonar-web/src/main/js/components/issue/views/assign-form-view.js @@ -24,11 +24,11 @@ define([ }, getAssignee: function () { - return this.model.get('assignee').login; + return this.model.get('assignee'); }, getAssigneeName: function () { - return this.model.get('assignee').name; + return this.model.get('assigneeName'); }, onRender: function () {