##// END OF EJS Templates
diffs: use whole chunk diff to calculate if it's oversized or not....
diffs: use whole chunk diff to calculate if it's oversized or not. - This fixes an issue if a file is added that has very large number of small lines. In this case the time to detect if the diff should be limited was very very long and CPU intensive.

File last commit:

r1951:965019b0 default
r2070:7939c6bf default
Show More
changeset.mako
352 lines | 14.8 KiB | application/x-mako | MakoHtmlLexer
templating: use .mako as extensions for template files.
r1282 ## -*- coding: utf-8 -*-
<%inherit file="/base/base.mako"/>
<%namespace name="diff_block" file="/changeset/diff_block.mako"/>
<%def name="title()">
${_('%s Commit') % c.repo_name} - ${h.show_id(c.commit)}
%if c.rhodecode_name:
&middot; ${h.branding(c.rhodecode_name)}
%endif
</%def>
<%def name="menu_bar_nav()">
${self.menu_items(active='repositories')}
</%def>
<%def name="menu_bar_subnav()">
${self.repo_menu(active='changelog')}
</%def>
<%def name="main()">
<script>
// TODO: marcink switch this to pyroutes
repo-commits: ported changeset code into pyramid views....
r1951 AJAX_COMMENT_DELETE_URL = "${h.route_path('repo_commit_comment_delete',repo_name=c.repo_name,commit_id=c.commit.raw_id,comment_id='__COMMENT_ID__')}";
templating: use .mako as extensions for template files.
r1282 templateContext.commit_data.commit_id = "${c.commit.raw_id}";
</script>
<div class="box">
<div class="title">
${self.repo_page_title(c.rhodecode_db_repo)}
</div>
<div id="changeset_compare_view_content" class="summary changeset">
<div class="summary-detail">
<div class="summary-detail-header">
<span class="breadcrumbs files_location">
<h4>${_('Commit')}
<code>
styling: updated old icons based on the new definitions....
r1939 ${h.show_id(c.commit)}
clipboard: added dummy placeholders for copying commits/paths via clipboard.js
r1935 <i class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${c.commit.raw_id}" title="${_('Copy the full commit id')}"></i>
commit-page: show phase on commit page....
r1675 % if hasattr(c.commit, 'phase'):
mercurial-evolve: enable evolve setting on repositories.
r1738 <span class="tag phase-${c.commit.phase} tooltip" title="${_('Commit phase')}">${c.commit.phase}</span>
% endif
## obsolete commits
% if hasattr(c.commit, 'obsolete'):
% if c.commit.obsolete:
<span class="tag obsolete-${c.commit.obsolete} tooltip" title="${_('Evolve State')}">${_('obsolete')}</span>
% endif
commit-page: show phase on commit page....
r1675 % endif
mercurial-evolve: enable evolve setting on repositories.
r1738
## hidden commits
% if hasattr(c.commit, 'hidden'):
% if c.commit.hidden:
<span class="tag hidden-${c.commit.hidden} tooltip" title="${_('Evolve State')}">${_('hidden')}</span>
% endif
% endif
templating: use .mako as extensions for template files.
r1282 </code>
</h4>
</span>
commit-page: show phase on commit page....
r1675 <div class="pull-right">
<span id="parent_link">
<a href="#" title="${_('Parent Commit')}">${_('Parent')}</a>
</span>
|
<span id="child_link">
<a href="#" title="${_('Child Commit')}">${_('Child')}</a>
</span>
</div>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="fieldset">
<div class="left-label">
${_('Description')}:
</div>
<div class="right-content">
<div id="trimmed_message_box" class="commit">${h.urlify_commit_message(c.commit.message,c.repo_name)}</div>
<div id="message_expand" style="display:none;">
${_('Expand')}
</div>
</div>
</div>
%if c.statuses:
<div class="fieldset">
<div class="left-label">
${_('Commit status')}:
</div>
<div class="right-content">
<div class="changeset-status-ico">
<div class="${'flag_status %s' % c.statuses[0]} pull-left"></div>
</div>
<div title="${_('Commit status')}" class="changeset-status-lbl">[${h.commit_status_lbl(c.statuses[0])}]</div>
</div>
</div>
%endif
<div class="fieldset">
<div class="left-label">
${_('References')}:
</div>
<div class="right-content">
<div class="tags">
%if c.commit.merge:
<span class="mergetag tag">
<i class="icon-merge"></i>${_('merge')}
</span>
%endif
%if h.is_hg(c.rhodecode_repo):
%for book in c.commit.bookmarks:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
files: ported repository files controllers to pyramid views.
r1927 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=c.commit.raw_id,_query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
templating: use .mako as extensions for template files.
r1282 </span>
%endfor
%endif
%for tag in c.commit.tags:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
files: ported repository files controllers to pyramid views.
r1927 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=c.commit.raw_id,_query=dict(at=tag))}"><i class="icon-tag"></i>${tag}</a>
templating: use .mako as extensions for template files.
r1282 </span>
%endfor
%if c.commit.branch:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % c.commit.branch)}">
files: ported repository files controllers to pyramid views.
r1927 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=c.commit.raw_id,_query=dict(at=c.commit.branch))}"><i class="icon-code-fork"></i>${h.shorter(c.commit.branch)}</a>
templating: use .mako as extensions for template files.
r1282 </span>
%endif
</div>
</div>
</div>
<div class="fieldset">
<div class="left-label">
${_('Diff options')}:
</div>
<div class="right-content">
<div class="diff-actions">
repo-commits: ported changeset code into pyramid views....
r1951 <a href="${h.route_path('repo_commit_raw',repo_name=c.repo_name,commit_id=c.commit.raw_id)}" class="tooltip" title="${h.tooltip(_('Raw diff'))}">
templating: use .mako as extensions for template files.
r1282 ${_('Raw Diff')}
</a>
|
repo-commits: ported changeset code into pyramid views....
r1951 <a href="${h.route_path('repo_commit_patch',repo_name=c.repo_name,commit_id=c.commit.raw_id)}" class="tooltip" title="${h.tooltip(_('Patch diff'))}">
templating: use .mako as extensions for template files.
r1282 ${_('Patch Diff')}
</a>
|
repo-commits: ported changeset code into pyramid views....
r1951 <a href="${h.route_path('repo_commit_download',repo_name=c.repo_name,commit_id=c.commit.raw_id,_query=dict(diff='download'))}" class="tooltip" title="${h.tooltip(_('Download diff'))}">
templating: use .mako as extensions for template files.
r1282 ${_('Download Diff')}
</a>
|
repo-commits: ported changeset code into pyramid views....
r1951 ${c.ignorews_url(request)}
templating: use .mako as extensions for template files.
r1282 |
repo-commits: ported changeset code into pyramid views....
r1951 ${c.context_url(request)}
templating: use .mako as extensions for template files.
r1282 </div>
</div>
</div>
<div class="fieldset">
<div class="left-label">
${_('Comments')}:
</div>
<div class="right-content">
<div class="comments-number">
%if c.comments:
translation: unified usage of pluralize function ungettext....
r1945 <a href="#comments">${_ungettext("%d Commit comment", "%d Commit comments", len(c.comments)) % len(c.comments)}</a>,
templating: use .mako as extensions for template files.
r1282 %else:
translation: unified usage of pluralize function ungettext....
r1945 ${_ungettext("%d Commit comment", "%d Commit comments", len(c.comments)) % len(c.comments)}
templating: use .mako as extensions for template files.
r1282 %endif
%if c.inline_cnt:
translation: unified usage of pluralize function ungettext....
r1945 <a href="#" onclick="return Rhodecode.comments.nextComment();" id="inline-comments-counter">${_ungettext("%d Inline Comment", "%d Inline Comments", c.inline_cnt) % c.inline_cnt}</a>
templating: use .mako as extensions for template files.
r1282 %else:
translation: unified usage of pluralize function ungettext....
r1945 ${_ungettext("%d Inline Comment", "%d Inline Comments", c.inline_cnt) % c.inline_cnt}
templating: use .mako as extensions for template files.
r1282 %endif
</div>
</div>
</div>
commit-page: show unresolved TODOs on commit page below comments.
r1385 <div class="fieldset">
<div class="left-label">
${_('Unresolved TODOs')}:
</div>
<div class="right-content">
<div class="comments-number">
% if c.unresolved_comments:
% for co in c.unresolved_comments:
<a class="permalink" href="#comment-${co.comment_id}" onclick="Rhodecode.comments.scrollToComment($('#comment-${co.comment_id}'))"> #${co.comment_id}</a>${'' if loop.last else ','}
% endfor
% else:
${_('There are no unresolved TODOs')}
% endif
</div>
</div>
</div>
templating: use .mako as extensions for template files.
r1282 </div> <!-- end summary-detail -->
<div id="commit-stats" class="sidebar-right">
<div class="summary-detail-header">
<h4 class="item">
${_('Author')}
</h4>
</div>
<div class="sidebar-right-content">
${self.gravatar_with_user(c.commit.author)}
<div class="user-inline-data">- ${h.age_component(c.commit.date)}</div>
</div>
</div><!-- end sidebar -->
</div> <!-- end summary -->
<div class="cs_files">
<%namespace name="cbdiffs" file="/codeblocks/diffs.mako"/>
${cbdiffs.render_diffset_menu()}
${cbdiffs.render_diffset(
c.changes[c.commit.raw_id], commit=c.commit, use_comments=True)}
</div>
## template for inline comment form
<%namespace name="comment" file="/changeset/changeset_file_comment.mako"/>
## render comments
comments: use unified aggregation of comments counters....
r1332 ${comment.generate_comments(c.comments)}
templating: use .mako as extensions for template files.
r1282
## main comment form and it status
repo-commits: ported changeset code into pyramid views....
r1951 ${comment.comments(h.route_path('repo_commit_comment_create', repo_name=c.repo_name, commit_id=c.commit.raw_id),
templating: use .mako as extensions for template files.
r1282 h.commit_status(c.rhodecode_db_repo, c.commit.raw_id))}
</div>
## FORM FOR MAKING JS ACTION AS CHANGESET COMMENTS
<script type="text/javascript">
$(document).ready(function() {
var boxmax = parseInt($('#trimmed_message_box').css('max-height'), 10);
if($('#trimmed_message_box').height() === boxmax){
$('#message_expand').show();
}
$('#message_expand').on('click', function(e){
$('#trimmed_message_box').css('max-height', 'none');
$(this).hide();
});
$('.show-inline-comments').on('click', function(e){
var boxid = $(this).attr('data-comment-id');
var button = $(this);
if(button.hasClass("comments-visible")) {
$('#{0} .inline-comments'.format(boxid)).each(function(index){
$(this).hide();
});
button.removeClass("comments-visible");
} else {
$('#{0} .inline-comments'.format(boxid)).each(function(index){
$(this).show();
});
button.addClass("comments-visible");
}
});
// 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({
repo-commits: ported changeset code into pyramid views....
r1951 url: '${h.route_path('repo_commit_children',repo_name=c.repo_name, commit_id=c.commit.raw_id)}',
templating: use .mako as extensions for template files.
r1282 success: function(data) {
if(data.results.length === 0){
$('#child_link').html("${_('No Child Commits')}").addClass('disabled');
}
if(data.results.length === 1){
var commit = data.results[0];
repo-commits: ported changeset code into pyramid views....
r1951 window.location = pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}','commit_id': commit.raw_id});
templating: use .mako as extensions for template files.
r1282 }
else if(data.results.length === 2){
$('#child_link').addClass('disabled');
$('#child_link').addClass('double');
var _html = '';
_html +='<a title="__title__" href="__url__">__rev__</a> '
.replace('__rev__','r{0}:{1}'.format(data.results[0].revision, data.results[0].raw_id.substr(0,6)))
.replace('__title__', data.results[0].message)
repo-commits: ported changeset code into pyramid views....
r1951 .replace('__url__', pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}','commit_id': data.results[0].raw_id}));
html: fixed found syntax problems
r1283 _html +=' | ';
templating: use .mako as extensions for template files.
r1282 _html +='<a title="__title__" href="__url__">__rev__</a> '
.replace('__rev__','r{0}:{1}'.format(data.results[1].revision, data.results[1].raw_id.substr(0,6)))
.replace('__title__', data.results[1].message)
repo-commits: ported changeset code into pyramid views....
r1951 .replace('__url__', pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}','commit_id': data.results[1].raw_id}));
templating: use .mako as extensions for template files.
r1282 $('#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({
repo-commits: ported changeset code into pyramid views....
r1951 url: '${h.route_path("repo_commit_parents",repo_name=c.repo_name, commit_id=c.commit.raw_id)}',
templating: use .mako as extensions for template files.
r1282 success: function(data) {
if(data.results.length === 0){
$('#parent_link').html('${_('No Parent Commits')}').addClass('disabled');
}
if(data.results.length === 1){
var commit = data.results[0];
repo-commits: ported changeset code into pyramid views....
r1951 window.location = pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}','commit_id': commit.raw_id});
templating: use .mako as extensions for template files.
r1282 }
else if(data.results.length === 2){
$('#parent_link').addClass('disabled');
$('#parent_link').addClass('double');
var _html = '';
_html +='<a title="__title__" href="__url__">Parent __rev__</a>'
.replace('__rev__','r{0}:{1}'.format(data.results[0].revision, data.results[0].raw_id.substr(0,6)))
.replace('__title__', data.results[0].message)
repo-commits: ported changeset code into pyramid views....
r1951 .replace('__url__', pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}','commit_id': data.results[0].raw_id}));
html: fixed found syntax problems
r1283 _html +=' | ';
templating: use .mako as extensions for template files.
r1282 _html +='<a title="__title__" href="__url__">Parent __rev__</a>'
.replace('__rev__','r{0}:{1}'.format(data.results[1].revision, data.results[1].raw_id.substr(0,6)))
.replace('__title__', data.results[1].message)
repo-commits: ported changeset code into pyramid views....
r1951 .replace('__url__', pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}','commit_id': data.results[1].raw_id}));
templating: use .mako as extensions for template files.
r1282 $('#parent_link').html(_html);
}
}
});
e.preventDefault();
}
});
if (location.hash) {
var result = splitDelimitedHash(location.hash);
var line = $('html').find(result.loc);
if (line.length > 0){
offsetScroll(line, 70);
}
}
// browse tree @ revision
$('#files_link').on('click', function(e){
files: ported repository files controllers to pyramid views.
r1927 window.location = '${h.route_path('repo_files:default_path',repo_name=c.repo_name, commit_id=c.commit.raw_id)}';
templating: use .mako as extensions for template files.
r1282 e.preventDefault();
});
// inject comments into their proper positions
var file_comments = $('.inline-comment-placeholder');
})
</script>
</%def>