diff --git a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.changesetviewergrid.js b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.changesetviewergrid.js index b9ee23558c..061747fbd0 100644 --- a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.changesetviewergrid.js +++ b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.changesetviewergrid.js @@ -44,7 +44,7 @@ Sonia.repository.ChangesetViewerGrid = Ext.extend(Ext.grid.GridPanel, { Modified{1}\ Deleted{2}\ ', - idsTemplate: '
Commit: {0}
\ + idsTemplate: '
Commit: {0}
\
Tree: {0}
', tagsAndBranchesTemplate: '
{0}
\
{1}
', @@ -104,25 +104,53 @@ Sonia.repository.ChangesetViewerGrid = Ext.extend(Ext.grid.GridPanel, { Ext.apply(this, Ext.apply(this.initialConfig, config)); Sonia.repository.ChangesetViewerGrid.superclass.initComponent.apply(this, arguments); }, + + getRevision: function(el){ + var revision = el.rel; + var index = revision.indexOf(':'); + if ( index >= 0 ){ + revision = revision.substr(index+1); + } + return revision; + }, onClick: function(e){ var el = e.getTarget('.cs-tree-link'); + var revision = null; - if ( el != null ){ - var revision = el.rel; - var index = revision.indexOf(':'); - if ( index >= 0 ){ - revision = revision.substr(index+1); - } - + if (el){ + revision = this.getRevision(el); if (debug){ console.debug('load repositorybrowser for ' + revision); } this.openRepositoryBrowser(revision); + } else { + el = e.getTarget('.cs-diff-link'); + + if ( el ){ + revision = this.getRevision(el); + if (debug){ + console.debug('load diff for ' + revision); + } + + this.openDiffViewer(revision); + } } }, + openDiffViewer: function(revision){ + var url = restUrl + 'repositories/' + this.repository.id + '/diff?revision=' + revision; + main.addTab({ + id: 'diff-' + this.repository.id + ':' + revision, + xtype: 'syntaxHighlighterPanel', + title: 'Diff ' + revision, + contentUrl: url, + syntax: 'diff', + closable: true + }); + }, + openRepositoryBrowser: function(revision){ main.addTab({ id: 'repositorybrowser-' + this.repository.id + ':' + revision,