##// END OF EJS Templates
remove cache from default perms. In some cases of concurrent repo removal it crashed....
remove cache from default perms. In some cases of concurrent repo removal it crashed. There's no speed regression on this one.

File last commit:

r1705:5e4827a8 beta
r1744:d41a115d beta
Show More
changeset.html
252 lines | 11.0 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${c.repo_name} ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} - ${c.rhodecode_name}
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(u'Home',h.url('/'))}
&raquo;
${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
&raquo;
${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
</%def>
<%def name="page_nav()">
${self.menu('changelog')}
</%def>
<%def name="fid(raw_id,path)" filter="strip">
<%
return 'C-%s-%s' % (h.short_id(raw_id),h.safeid(h.safe_unicode(path)))
%>
</%def>
<%def name="main()">
<div class="box">
<!-- box / title -->
<div class="title">
${self.breadcrumbs()}
</div>
<div class="table">
<div class="diffblock">
<div class="code-header">
<div>
<span>${h.link_to(_('raw diff'),
h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show'))}</span>
&raquo; <span>${h.link_to(_('download diff'),
h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download'))}</span>
<div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
</div>
</div>
</div>
<div id="changeset_content">
<div class="container">
<div class="left">
<div class="date">${_('commit')} ${c.changeset.revision}: ${h.short_id(c.changeset.raw_id)}@${c.changeset.date}</div>
<div class="author">
<div class="gravatar">
<img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
</div>
<span>${h.person(c.changeset.author)}</span><br/>
<span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
</div>
<div class="message">${h.link_to(h.wrap_paragraphs(c.changeset.message),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</div>
</div>
<div class="right">
<div class="changes">
% if len(c.changeset.affected_files) <= c.affected_files_cut_off:
<span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
<span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
<span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
% else:
<span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
<span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
<span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
% endif
</div>
%if len(c.changeset.parents)>1:
<div class="merge">
${_('merge')}<img alt="merge" src="${h.url('/images/icons/arrow_join.png')}"/>
</div>
%endif
%if c.changeset.parents:
%for p_cs in reversed(c.changeset.parents):
<div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
</div>
%endfor
%else:
<div class="parent">${_('No parents')}</div>
%endif
<span class="logtags">
<span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
%for tag in c.changeset.tags:
<span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
%endfor
</span>
</div>
</div>
<span style="font-size:1.1em;font-weight: bold">
${_('%s files affected with %s additions and %s deletions.') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
</span>
<div class="cs_files">
%for change,filenode,diff,cs1,cs2,stat in c.changes:
<div class="cs_${change}">
<div class="node">
%if change != 'removed':
${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=self.fid(filenode.changeset.raw_id,filenode.path)))}
%else:
${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=self.fid('',filenode.path)))}
%endif
</div>
<div class="changes">${h.fancy_file_stats(stat)}</div>
</div>
%endfor
% if c.cut_off:
${_('Changeset was too big and was cut off...')}
% endif
</div>
</div>
</div>
%for change,filenode,diff,cs1,cs2,stat in c.changes:
%if change !='removed':
<div style="clear:both;height:10px"></div>
<div class="diffblock margined comm" id="${self.fid(filenode.changeset.raw_id,filenode.path)}">
<div class="code-header">
<div class="changeset_header">
<span class="changeset_file">
${h.link_to_if(change!='removed',h.safe_unicode(filenode.path),h.url('files_home',repo_name=c.repo_name,
revision=filenode.changeset.raw_id,f_path=h.safe_unicode(filenode.path)))}
</span>
&raquo; <span>${h.link_to(_('diff'),
h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='diff'))}</span>
&raquo; <span>${h.link_to(_('raw diff'),
h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='raw'))}</span>
&raquo; <span>${h.link_to(_('download diff'),
h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='download'))}</span>
<span style="float:right">
<label>
${_('show inline comments')}
${h.checkbox('',checked="checked",class_="show-inline-comments",id_for=self.fid(filenode.changeset.raw_id,filenode.path))}
</label>
</span>
</div>
</div>
<div class="code-body">
<div class="full_f_path" path="${filenode.path}"></div>
%if diff:
${diff|n}
%else:
${_('No changes in this file')}
%endif
</div>
</div>
%endif
%endfor
<%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
## template for inline comment form
${comment.comment_inline_form()}
<div class="comments">
<div class="comments-number">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
%for path, lines in c.inline_comments:
<div style="display:none" class="inline-comment-placeholder" path="${path}" target_id="${self.fid(c.changeset.raw_id,path)}">
% for line,comments in lines.iteritems():
<div class="inline-comment-placeholder-line" line="${line}" target_id="${h.safeid(h.safe_unicode(path))}">
%for co in comments:
${comment.comment_block(co)}
%endfor
</div>
%endfor
</div>
%endfor
%for co in c.comments:
${comment.comment_block(co)}
%endfor
%if c.rhodecode_user.username != 'default':
<div class="comment-form">
${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
<strong>${_('Leave a comment')}</strong>
<div class="clearfix">
<div class="comment-help">
${_('Comments parsed using')} <a href="${h.url('rst_help')}">RST</a> ${_('syntax')}
</div>
${h.textarea('text')}
</div>
<div class="comment-button">
${h.submit('save', _('Comment'), class_='ui-button')}
</div>
${h.end_form()}
</div>
%endif
</div>
<script type="text/javascript">
var deleteComment = function(comment_id){
var url = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}".replace('__COMMENT_ID__',comment_id);
var postData = '_method=delete';
var success = function(o){
var n = YUD.get('comment-'+comment_id);
n.parentNode.removeChild(n);
}
ajaxPOST(url,postData,success);
}
YUE.onDOMReady(function(){
YUE.on(YUQ('.show-inline-comments'),'change',function(e){
var show = 'none';
var target = e.currentTarget;
if(target.checked){
var show = ''
}
var boxid = YUD.getAttribute(target,'id_for');
var comments = YUQ('#{0} .inline-comments'.format(boxid));
for(c in comments){
YUD.setStyle(comments[c],'display',show);
}
})
YUE.on(YUQ('.line'),'click',function(e){
var tr = e.currentTarget;
injectInlineForm(tr);
});
// inject comments into they proper positions
var file_comments = YUQ('.inline-comment-placeholder');
for (f in file_comments){
var box = file_comments[f];
var inlines = box.children;
for(var i=0; i<inlines.length; i++){
try{
var inline = inlines[i];
var lineno = YUD.getAttribute(inlines[i],'line');
var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
var target_line = YUD.get(lineid);
var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
YUD.insertAfter(add,target_line.parentNode);
var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
YUD.insertAfter(comment,target_line.parentNode);
}catch(e){}
}
}
})
</script>
</div>
</%def>