diff --git a/rhodecode/templates/changeset/changeset.html b/rhodecode/templates/changeset/changeset.html --- a/rhodecode/templates/changeset/changeset.html +++ b/rhodecode/templates/changeset/changeset.html @@ -3,7 +3,10 @@ <%inherit file="/base/base.html"/> <%def name="title()"> - ${_('%s Changeset') % c.repo_name} - ${h.show_id(c.changeset)} · ${c.rhodecode_name} + ${_('%s Changeset') % c.repo_name} - ${h.show_id(c.changeset)} + %if c.rhodecode_name: + · ${c.rhodecode_name} + %endif <%def name="breadcrumbs_links()"> @@ -23,50 +26,41 @@ ${self.repo_context_bar('changelog')}
- %if c.changeset.parents: - %for n, p_cs in enumerate(reversed(c.changeset.parents)): - « ${h.link_to('%s:%s' % (p_cs.revision,p_cs.raw_id[:6]),h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)} -
- %endfor - %else: - ${_('No parents')} - %endif +
+
- %if c.changeset.children: - %for n, p_cs in enumerate(reversed(c.changeset.children)): - ${h.link_to('%s:%s' % (p_cs.revision,p_cs.raw_id[:6]),h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)} » -
- %endfor - %else: - ${_('No children')} - %endif +
+
-
-
-
- gravatar -
- ${h.person(c.changeset.author)}
- ${h.email_or_none(c.changeset.author)}
-
-
${h.urlify_commit(c.changeset.message, c.repo_name)}
-
-
-
+ +
+
% if (len(c.changeset.affected_files) <= c.affected_files_cut_off) or c.fulldiff: ${len(c.changeset.removed)} ${len(c.changeset.changed)} @@ -96,38 +81,51 @@ ${self.repo_context_bar('changelog')} ! ! % endif -
+
+ + + %if len(c.changeset.parents)>1: + ${_('merge')} + %endif - - %if len(c.changeset.parents)>1: - ${_('merge')} - %endif - %if h.is_hg(c.rhodecode_repo): - %for book in c.changeset.bookmarks: - - ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))} - - %endfor - %endif - %for tag in c.changeset.tags: + %if h.is_hg(c.rhodecode_repo): + %for book in c.changeset.bookmarks: + + ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))} + + %endfor + %endif + + %for tag in c.changeset.tags: ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))} - %endfor - %if c.changeset.branch: + %endfor + + %if c.changeset.branch: ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))} - %endif - -
+ %endif + +
+
+
+
+ gravatar +
+ ${h.person(c.changeset.author)} - ${h.age(c.changeset.date,True)} ${h.fmt_date(c.changeset.date)}
+ ${h.email_or_none(c.changeset.author)}
+
+
${h.urlify_commit(c.changeset.message, c.repo_name)}
+
- +
% if c.limited_diff: ${ungettext('%s file changed','%s files changed',len(c.changeset.affected_files)) % (len(c.changeset.affected_files))}: % else: ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.changeset.affected_files)) % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}: %endif - +
%for FID, (cs1, cs2, change, path, diff, stats) in c.changes[c.changeset.raw_id].iteritems():
@@ -198,6 +196,85 @@ ${self.repo_context_bar('changelog')} // inject comments into they proper positions var file_comments = YUQ('.inline-comment-placeholder'); renderInlineComments(file_comments); + + pyroutes.register('changeset_home', + "${h.url('changeset_home', repo_name='%(repo_name)s', revision='%(revision)s')}", + ['repo_name', 'revision']); + + //next links + $('#child_link').on('click', function(e){ + //fetch via ajax what is going to be the next link, if we have + //>1 links show them to user to choose + if(!$('#child_link').hasClass('disabled')){ + $.ajax({ + url: '${h.url('changeset_children',repo_name=c.repo_name, revision=c.changeset.raw_id)}', + success: function(data) { + if(data.results.length === 0){ + $('#child_link').addClass('disabled'); + $('#child_link').html('${_('no revisions')}'); + } + if(data.results.length === 1){ + var commit = data.results[0]; + window.location = pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': commit.raw_id}); + } + else if(data.results.length === 2){ + $('#child_link').addClass('disabled'); + $('#child_link').addClass('double'); + var _html = ''; + _html +='__rev__ ' + .replace('__rev__','r{0}:{1}'.format(data.results[0].revision, data.results[0].raw_id.substr(0,6))) + .replace('__title__', data.results[0].message) + .replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[0].raw_id})); + _html +='
' + _html +='__rev__ ' + .replace('__rev__','r{0}:{1}'.format(data.results[1].revision, data.results[1].raw_id.substr(0,6))) + .replace('__title__', data.results[1].message) + .replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[1].raw_id})); + $('#child_link').html(_html); + } + }, + }); + e.preventDefault(); + } + }) + + //prev links + $('#parent_link').on('click', function(e){ + //fetch via ajax what is going to be the next link, if we have + //>1 links show them to user to choose + if(!$('#parent_link').hasClass('disabled')){ + $.ajax({ + url: '${h.url('changeset_parents',repo_name=c.repo_name, revision=c.changeset.raw_id)}', + success: function(data) { + if(data.results.length === 0){ + $('#parent_link').addClass('disabled'); + $('#parent_link').html('${_('no revisions')}'); + } + if(data.results.length === 1){ + var commit = data.results[0]; + window.location = pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': commit.raw_id}); + } + else if(data.results.length === 2){ + $('#parent_link').addClass('disabled'); + $('#parent_link').addClass('double'); + var _html = ''; + _html +=' __rev__' + .replace('__rev__','r{0}:{1}'.format(data.results[0].revision, data.results[0].raw_id.substr(0,6))) + .replace('__title__', data.results[0].message) + .replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[0].raw_id})); + _html +='
' + _html +=' __rev__' + .replace('__rev__','r{0}:{1}'.format(data.results[1].revision, data.results[1].raw_id.substr(0,6))) + .replace('__title__', data.results[1].message) + .replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[1].raw_id})); + $('#parent_link').html(_html); + } + }, + }); + e.preventDefault(); + } + }) + })