Files
@ 87f0800abc7b
Branch filter:
Location: kallithea/rhodecode/templates/files/files_source.html - annotation
87f0800abc7b
4.5 KiB
text/html
#227 Initial version of repository groups permissions system
- implemented none/read/write/admin permissions for groups
- wrote more tests for permissions, and new permissions groups
- a lot of code garden, splitted logic into proper models
- permissions on groups doesn't propagate yet to repositories
- deprecated some methods on api for managing permissions on
repositories for users, and users groups
- implemented none/read/write/admin permissions for groups
- wrote more tests for permissions, and new permissions groups
- a lot of code garden, splitted logic into proper models
- permissions on groups doesn't propagate yet to repositories
- deprecated some methods on api for managing permissions on
repositories for users, and users groups
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | 1e757ac98988 61eda8bf70d0 1e757ac98988 1e757ac98988 1e757ac98988 61eda8bf70d0 61eda8bf70d0 60a00fd76d58 60a00fd76d58 1e757ac98988 1e757ac98988 1e757ac98988 61eda8bf70d0 f91d3f9b7230 1e757ac98988 1e757ac98988 61eda8bf70d0 61eda8bf70d0 f91d3f9b7230 61eda8bf70d0 61eda8bf70d0 61eda8bf70d0 60a00fd76d58 f91d3f9b7230 60a00fd76d58 f91d3f9b7230 61eda8bf70d0 60a00fd76d58 61eda8bf70d0 f91d3f9b7230 61eda8bf70d0 61eda8bf70d0 61eda8bf70d0 61eda8bf70d0 61eda8bf70d0 61eda8bf70d0 39b49c999efb 61eda8bf70d0 61eda8bf70d0 1e757ac98988 1e757ac98988 61eda8bf70d0 61eda8bf70d0 6ec53c16c744 61eda8bf70d0 61eda8bf70d0 1e757ac98988 aaec08ad9daf c8bd0e6cc3da 1e757ac98988 6e070138d173 6e070138d173 6e070138d173 f91d3f9b7230 09c3fb460fcb f91d3f9b7230 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 f91d3f9b7230 6e070138d173 6e070138d173 6e070138d173 6e070138d173 6e070138d173 09c3fb460fcb f91d3f9b7230 f91d3f9b7230 09c3fb460fcb f91d3f9b7230 f91d3f9b7230 09c3fb460fcb f91d3f9b7230 f91d3f9b7230 09c3fb460fcb f91d3f9b7230 6e070138d173 6ec53c16c744 f91d3f9b7230 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 09c3fb460fcb 09c3fb460fcb 09c3fb460fcb 623b228cf325 1e757ac98988 1e757ac98988 09c3fb460fcb 623b228cf325 1e757ac98988 aaec08ad9daf | <dl>
<dt style="padding-top:10px;font-size:16px">${_('History')}</dt>
<dd>
<div>
${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
${h.hidden('diff2',c.file.last_changeset.raw_id)}
${h.select('diff1',c.file.last_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>
</dd>
</dl>
<div id="body" class="codeblock">
<div class="code-header">
<div class="stats">
<div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
<div class="left item"><pre>${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</pre></div>
<div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
<div class="left item last">${c.file.mimetype}</div>
<div class="buttons">
${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.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.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.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(c.changeset.author),16)}"/>
</div>
<div title="${c.changeset.author}" class="user">${h.person(c.changeset.author)}</div>
</div>
<div class="commit">${c.file.last_changeset.message}</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:
${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
%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.changeset.raw_id,f_path=c.f_path))}
%endif
<script type="text/javascript">
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;
}
</script>
%endif
</div>
</div>
<script type="text/javascript">
YUE.onDOMReady(function(){
YUE.on('show_rev','click',function(e){
YUE.preventDefault(e);
var cs = YUD.get('diff1').value;
var url = "${h.url('files_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
window.location = url;
});
YUE.on('hlcode','mouseup',getSelectionLink("${_('Selection link')}"))
});
</script>
|