From: Stas Vilchik Date: Mon, 2 Jun 2014 12:02:21 +0000 (+0600) Subject: SONAR-5367 Use /api/issues/changelog to get issue's changelog X-Git-Tag: 4.4-RC1~703 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=cc721895d2e109e396fe8353c3b7d341f4d87a1e;p=sonarqube.git SONAR-5367 Use /api/issues/changelog to get issue's changelog --- diff --git a/sonar-server/src/main/coffee/issues/issue-view.coffee b/sonar-server/src/main/coffee/issues/issue-view.coffee index 0c1dc02ceb8..58982434823 100644 --- a/sonar-server/src/main/coffee/issues/issue-view.coffee +++ b/sonar-server/src/main/coffee/issues/issue-view.coffee @@ -5,6 +5,9 @@ define [ 'issues/models/rule' 'issues/views/rule-view' + 'issues/models/change-log' + 'issues/views/change-log-view' + 'issues/collections/action-plans' 'issues/views/assign-form-view' @@ -19,6 +22,9 @@ define [ Rule RuleView + ChangeLog + ChangeLogView + ActionPlans AssignFormView @@ -39,6 +45,7 @@ define [ regions: formRegion: '.code-issue-form' ruleRegion: '#tab-issue-rule' + changeLogRegion: '#tab-issue-changelog' modelEvents: @@ -51,6 +58,7 @@ define [ 'click .code-issue-toggle': 'toggleCollapsed', 'click [href=#tab-issue-rule]': 'fetchRule', + 'click [href=#tab-issue-changelog]': 'fetchChangeLog', 'click #issue-comment': 'comment', 'click .issue-comment-edit': 'editComment', @@ -68,6 +76,8 @@ define [ @$('.code-issue-form').hide() @rule = new Rule key: this.model.get('rule') @ruleRegion.show new RuleView model: @rule, issue: @model + @changeLog = new ChangeLog() + @changeLogRegion.show new ChangeLogView collection: @changeLog, issue: @model setDetailScope: -> @@ -97,6 +107,14 @@ define [ success: => @$('#tab-issue-rule').removeClass 'navigator-fetching' + fetchChangeLog: -> + unless @changeLog.length > 0 + @$('#tab-issue-changeLog').addClass 'navigator-fetching' + @changeLog.fetch + data: issue: @model.get 'key' + success: => @$('#tab-issue-changelog').removeClass 'navigator-fetching' + + showActionView: (view) -> @$('.code-issue-actions').hide() @$('.code-issue-form').show() diff --git a/sonar-server/src/main/coffee/issues/models/change-log.coffee b/sonar-server/src/main/coffee/issues/models/change-log.coffee new file mode 100644 index 00000000000..eda1d6f88e9 --- /dev/null +++ b/sonar-server/src/main/coffee/issues/models/change-log.coffee @@ -0,0 +1,14 @@ +define [ + 'backbone' +], ( + Backbone +) -> + + class ChangeLog extends Backbone.Collection + + url: -> + "#{baseUrl}/api/issues/changelog" + + + parse: (r) -> + return r.changelog \ No newline at end of file diff --git a/sonar-server/src/main/coffee/issues/views/change-log-view.coffee b/sonar-server/src/main/coffee/issues/views/change-log-view.coffee new file mode 100644 index 00000000000..8dc710a0b3a --- /dev/null +++ b/sonar-server/src/main/coffee/issues/views/change-log-view.coffee @@ -0,0 +1,13 @@ +define [ + 'backbone.marionette' + 'templates/issues' +], ( + Marionette + Templates +) -> + + class IssueDetailChangeLogView extends Marionette.ItemView + template: Templates['change-log'] + + collectionEvents: + 'sync': 'render' \ No newline at end of file diff --git a/sonar-server/src/main/hbs/issues/change-log.hbs b/sonar-server/src/main/hbs/issues/change-log.hbs new file mode 100644 index 00000000000..6bf0e779551 --- /dev/null +++ b/sonar-server/src/main/hbs/issues/change-log.hbs @@ -0,0 +1,15 @@ + + + {{#each items}} + + + + + + {{/each}} + +
{{dt creationDate}}{{user}} + {{#each diffs}} + {{changelog this}}
+ {{/each}} +
\ No newline at end of file diff --git a/sonar-server/src/main/hbs/issues/issue.hbs b/sonar-server/src/main/hbs/issues/issue.hbs index b9480d122f4..02de98970ca 100644 --- a/sonar-server/src/main/hbs/issues/issue.hbs +++ b/sonar-server/src/main/hbs/issues/issue.hbs @@ -116,23 +116,7 @@
-
- - - {{#each changelog}} - - - - - - {{/each}} - -
{{fCreationDate}}{{userName}} - {{#each diffs}} - {{this}}
- {{/each}} -
-
+
diff --git a/sonar-server/src/main/js/common/handlebars-extensions.js b/sonar-server/src/main/js/common/handlebars-extensions.js index f15dba30c05..33371900cda 100644 --- a/sonar-server/src/main/js/common/handlebars-extensions.js +++ b/sonar-server/src/main/js/common/handlebars-extensions.js @@ -228,6 +228,21 @@ define(['handlebars', 'moment'], function (Handlebars, moment) { }, ''); }); + Handlebars.registerHelper('changelog', function(diff) { + var message = ''; + if (diff.newValue != null) { + message = tp('issue.changelog.changed_to', t('issue.changelog.field', diff.key), diff.newValue); + } else { + message = tp('issue.changelog.removed', t('issue.changelog.field', diff.key)); + } + if (diff.oldValue != null) { + message += ' ('; + message += tp('issue.changelog.was', diff.oldValue); + message += ')'; + } + return message; + }); + Handlebars.registerHelper('componentViewerHeaderLink', function(value, label, cl, hash) { var name = '_header-link'; if (value != null) {