##// END OF EJS Templates
Add quick toggle link for locking for users with write or admin permissions
Add quick toggle link for locking for users with write or admin permissions

File last commit:

r2776:63e58ef8 merge default
r2833:2f3cba7b beta
Show More
files_source.html
126 lines | 5.6 KiB | text/html | HtmlLexer
<dl>
<dt class="file_history">${_('History')}</dt>
<dd>
<div>
<div style="float:left">
${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
${h.hidden('diff2',c.file.changeset.raw_id)}
${h.select('diff1',c.file.changeset.raw_id,c.file_history)}
${h.submit('diff',_('diff to revision'),class_="ui-btn")}
${h.submit('show_rev',_('show at revision'),class_="ui-btn")}
${h.end_form()}
</div>
<div class="file_author">
<div class="item">${h.literal(ungettext(u'%s author',u'%s authors',len(c.authors)) % ('<b>%s</b>' % len(c.authors))) }</div>
%for email, user in c.authors:
<div class="contributor tooltip" style="float:left" title="${h.tooltip(user)}">
<div class="gravatar" style="margin:1px"><img alt="gravatar" src="${h.gravatar_url(email, 20)}"/> </div>
</div>
%endfor
</div>
</div>
<div style="clear:both"></div>
</dd>
</dl>
<div id="body" class="codeblock">
<div class="code-header">
<div class="stats">
<div class="left img"><img src="${h.url('/images/icons/file.png')}"/></div>
<div class="left item"><pre class="tooltip" title="${h.tooltip(h.fmt_date(c.file.changeset.date))}">${h.link_to("r%s:%s" % (c.file.changeset.revision,h.short_id(c.file.changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id))}</pre></div>
<div class="left item"><pre>${h.format_byte_size(c.file.size,binary=True)}</pre></div>
<div class="left item last"><pre>${c.file.mimetype}</pre></div>
<div class="buttons">
%if c.annotate:
${h.link_to(_('show source'), h.url('files_home', repo_name=c.repo_name,revision=c.file.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
%else:
${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
%endif
${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
% if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
% if not c.file.is_binary:
${h.link_to(_('edit'),h.url('files_edit_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
% endif
% endif
</div>
</div>
<div class="author">
<div class="gravatar">
<img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.file.changeset.author),16)}"/>
</div>
<div title="${c.file.changeset.author}" class="user">${h.person(c.file.changeset.author)}</div>
</div>
<div class="commit">${h.urlify_commit(c.file.changeset.message,c.repo_name)}</div>
</div>
<div class="code-body">
%if c.file.is_binary:
${_('Binary file (%s)') % c.file.mimetype}
%else:
% if c.file.size < c.cut_off_limit:
%if c.annotate:
${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
%else:
${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
%endif
%else:
${_('File is too big to display')} ${h.link_to(_('show as raw'),
h.url('files_raw_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id,f_path=c.f_path))}
%endif
%endif
</div>
</div>
<script type="text/javascript">
YUE.onDOMReady(function(){
function highlight_lines(lines){
for(pos in lines){
YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');
}
}
page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
if (page_highlights.length == 2){
highlight_ranges = page_highlights[1].split(",");
var h_lines = [];
for (pos in highlight_ranges){
var _range = highlight_ranges[pos].split('-');
if(_range.length == 2){
var start = parseInt(_range[0]);
var end = parseInt(_range[1]);
if (start < end){
for(var i=start;i<=end;i++){
h_lines.push(i);
}
}
}
else{
h_lines.push(parseInt(highlight_ranges[pos]));
}
}
highlight_lines(h_lines);
//remember original location
var old_hash = location.href.substring(location.href.indexOf('#'));
// this makes a jump to anchor moved by 3 posstions for padding
window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);
//sets old anchor
window.location.hash = old_hash;
}
YUE.on('show_rev','click',function(e){
YUE.preventDefault(e);
var cs = YUD.get('diff1').value;
%if c.annotate:
var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
%else:
var url = "${h.url('files_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
%endif
window.location = url;
});
YUE.on('hlcode','mouseup',getSelectionLink("${_('Selection link')}"))
});
</script>