perms_summary.html
132 lines
| 6.2 KiB
| text/html
|
HtmlLexer
r3666 | ## snippet for displaying permissions overview for users | |||
r3736 | ## usage: | |||
## <%namespace name="p" file="/base/perms_summary.html"/> | ||||
## ${p.perms_summary(c.perm_user.permissions)} | ||||
r3666 | ||||
Bradley M. Kuhn
|
r4116 | <%def name="perms_summary(permissions, show_all=False, actions=True)"> | ||
r3666 | <div id="perms" class="table"> | |||
%for section in sorted(permissions.keys()): | ||||
Bradley M. Kuhn
|
r4116 | <div class="perms_section_head"> | ||
${section.replace("_"," ").capitalize()} | ||||
%if section != 'global': | ||||
<div style="float: right"> | ||||
${_('show')}: | ||||
${h.checkbox('perms_filter_none_%s' % section, 'none', 'checked', class_='perm_filter filter_%s' % section, section=section, perm_type='none')} <label for="${'perms_filter_none_%s' % section}"><span class="perm_tag none">${_('none')}</span></label> | ||||
${h.checkbox('perms_filter_read_%s' % section, 'read', 'checked', class_='perm_filter filter_%s' % section, section=section, perm_type='read')} <label for="${'perms_filter_read_%s' % section}"><span class="perm_tag read">${_('read')}</span></label> | ||||
${h.checkbox('perms_filter_write_%s' % section, 'write', 'checked', class_='perm_filter filter_%s' % section, section=section, perm_type='write')} <label for="${'perms_filter_write_%s' % section}"> <span class="perm_tag write">${_('write')}</span></label> | ||||
${h.checkbox('perms_filter_admin_%s' % section, 'admin', 'checked', class_='perm_filter filter_%s' % section, section=section, perm_type='admin')} <label for="${'perms_filter_admin_%s' % section}"><span class="perm_tag admin">${_('admin')}</span></label> | ||||
</div> | ||||
%endif | ||||
</div> | ||||
r3666 | %if not permissions[section]: | |||
<span class="empty_data">${_('No permissions defined yet')}</span> | ||||
%else: | ||||
<div id='tbl_list_wrap_${section}' class="yui-skin-sam"> | ||||
<table id="tbl_list_${section}"> | ||||
r3901 | ## global permission box | |||
r3666 | %if section == 'global': | |||
r3734 | <thead> | |||
<tr> | ||||
<th colspan="2" class="left">${_('Permission')}</th> | ||||
Bradley M. Kuhn
|
r4116 | %if actions: | ||
r3734 | <th class="left">${_('Edit Permission')}</th> | |||
Bradley M. Kuhn
|
r4116 | %endif | ||
r3734 | </thead> | |||
<tbody> | ||||
r3736 | %for k in permissions[section]: | |||
r3666 | <tr> | |||
r3734 | <td colspan="2"> | |||
r3666 | ${h.get_permission_name(k)} | |||
</td> | ||||
Bradley M. Kuhn
|
r4116 | %if actions: | ||
r3666 | <td> | |||
Bradley M. Kuhn
|
r4116 | <a href="${h.url('admin_permissions')}">${_('edit')}</a> | ||
r3666 | </td> | |||
Bradley M. Kuhn
|
r4116 | %endif | ||
r3666 | </tr> | |||
%endfor | ||||
r3734 | </tbody> | |||
r3666 | %else: | |||
Bradley M. Kuhn
|
r4116 | ## none/read/write/admin permissions on groups/repos etc | ||
r3734 | <thead> | |||
<tr> | ||||
<th class="left">${_('Name')}</th> | ||||
<th class="left">${_('Permission')}</th> | ||||
Bradley M. Kuhn
|
r4116 | %if actions: | ||
r3734 | <th class="left">${_('Edit Permission')}</th> | |||
Bradley M. Kuhn
|
r4116 | %endif | ||
r3734 | </thead> | |||
Bradley M. Kuhn
|
r4116 | <tbody class="section_${section}"> | ||
%for k, section_perm in sorted(permissions[section].items(), key=lambda s: {'none':0, 'read':1,'write':2,'admin':3}.get(s[1].split('.')[-1])): | ||||
r3901 | %if section_perm.split('.')[-1] != 'none' or show_all: | |||
Bradley M. Kuhn
|
r4116 | <tr class="perm_row ${'%s_%s' % (section, section_perm.split('.')[-1])}"> | ||
r3666 | <td> | |||
%if section == 'repositories': | ||||
<a href="${h.url('summary_home',repo_name=k)}">${k}</a> | ||||
%elif section == 'repositories_groups': | ||||
<a href="${h.url('repos_group_home',group_name=k)}">${k}</a> | ||||
r3734 | %elif section == 'user_groups': | |||
##<a href="${h.url('edit_users_group',id=k)}">${k}</a> | ||||
${k} | ||||
r3666 | %endif | |||
</td> | ||||
<td> | ||||
<span class="perm_tag ${section_perm.split('.')[-1]}">${section_perm}</span> | ||||
</td> | ||||
Bradley M. Kuhn
|
r4116 | %if actions: | ||
r3666 | <td> | |||
%if section == 'repositories': | ||||
Bradley M. Kuhn
|
r4116 | <a href="${h.url('edit_repo_perms',repo_name=k,anchor='permissions_manage')}">${_('edit')}</a> | ||
r3666 | %elif section == 'repositories_groups': | |||
Bradley M. Kuhn
|
r4116 | <a href="${h.url('edit_repo_group_perms',group_name=k,anchor='permissions_manage')}">${_('edit')}</a> | ||
r3734 | %elif section == 'user_groups': | |||
##<a href="${h.url('edit_users_group',id=k)}">${_('edit')}</a> | ||||
r3666 | %endif | |||
</td> | ||||
Bradley M. Kuhn
|
r4116 | %endif | ||
r3666 | </tr> | |||
r3901 | %endif | |||
r3666 | %endfor | |||
Bradley M. Kuhn
|
r4116 | <tr id="empty_${section}" style="display: none"><td colspan="6">${_('No permission defined')}</td></tr> | ||
r3734 | </tbody> | |||
r3666 | %endif | |||
</table> | ||||
</div> | ||||
%endif | ||||
%endfor | ||||
</div> | ||||
Bradley M. Kuhn
|
r4116 | <script> | ||
$(document).ready(function(){ | ||||
var show_empty = function(section){ | ||||
var visible = $('.section_{0} tr.perm_row:visible'.format(section)).length; | ||||
console.log(visible) | ||||
console.log($('.section_{0} tr.perm_row:visible'.format(section))) | ||||
if(visible == 0){ | ||||
$('#empty_{0}'.format(section)).show(); | ||||
} | ||||
else{ | ||||
$('#empty_{0}'.format(section)).hide(); | ||||
} | ||||
} | ||||
$('.perm_filter').on('change', function(e){ | ||||
var self = this; | ||||
var section = $(this).attr('section'); | ||||
var opts = {} | ||||
var elems = $('.filter_' + section).each(function(el){ | ||||
var perm_type = $(this).attr('perm_type'); | ||||
var checked = this.checked; | ||||
opts[perm_type] = checked; | ||||
if(checked){ | ||||
$('.'+section+'_'+perm_type).show(); | ||||
} | ||||
else{ | ||||
$('.'+section+'_'+perm_type).hide(); | ||||
} | ||||
}); | ||||
show_empty(section); | ||||
}) | ||||
}) | ||||
</script> | ||||
r3666 | </%def> | |||