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, {
{1}\
{2}\
',
- idsTemplate: '
Commit: {0}
\
+ idsTemplate: '\
',
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,