##// END OF EJS Templates
revision extraction function shouldn't be so eager, just extract commits that are...
revision extraction function shouldn't be so eager, just extract commits that are surrounded with spaces, or they are at beginning of the whole string - wrote tests for that - used parametrized for other tests

File last commit:

r3348:6f82f8bd default
r3385:d21c762f beta
Show More
repos_group_edit_perms.html
133 lines | 6.1 KiB | text/html | HtmlLexer
<table id="permissions_manage" class="noborder">
<tr>
<td>${_('none')}</td>
<td>${_('read')}</td>
<td>${_('write')}</td>
<td>${_('admin')}</td>
<td>${_('member')}</td>
<td></td>
</tr>
## USERS
%for r2p in c.repos_group.repo_group_to_perm:
##forbid revoking permission from yourself
<tr id="id${id(r2p.user.username)}">
%if c.rhodecode_user.user_id != r2p.user.user_id or c.rhodecode_user.is_admin:
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.none')}</td>
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.read')}</td>
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.write')}</td>
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.admin')}</td>
<td style="white-space: nowrap;">
<img class="perm-gravatar" src="${h.gravatar_url(r2p.user.email,14)}"/>${r2p.user.username if r2p.user.username != 'default' else _('default')}
</td>
<td>
%if r2p.user.username !='default':
<span class="delete_icon action_button" onclick="ajaxActionUser(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
${_('revoke')}
</span>
%endif
</td>
%else:
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.none', disabled="disabled")}</td>
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.read', disabled="disabled")}</td>
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.write', disabled="disabled")}</td>
<td>${h.radio('u_perm_%s' % r2p.user.username,'group.admin', disabled="disabled")}</td>
<td style="white-space: nowrap;">
<img class="perm-gravatar" src="${h.gravatar_url(r2p.user.email,14)}"/>${r2p.user.username if r2p.user.username != 'default' else _('default')}
</td>
<td>
</td>
%endif
</tr>
%endfor
## USERS GROUPS
%for g2p in c.repos_group.users_group_to_perm:
<tr id="id${id(g2p.users_group.users_group_name)}">
<td>${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'group.none')}</td>
<td>${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'group.read')}</td>
<td>${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'group.write')}</td>
<td>${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'group.admin')}</td>
<td style="white-space: nowrap;">
<img class="perm-gravatar" src="${h.url('/images/icons/group.png')}"/>${g2p.users_group.users_group_name}
</td>
<td>
<span class="delete_icon action_button" onclick="ajaxActionUsersGroup(${g2p.users_group.users_group_id},'${'id%s'%id(g2p.users_group.users_group_name)}')">
${_('revoke')}
</span>
</td>
</tr>
%endfor
<%
_tmpl = h.literal("""' \
<td><input type="radio" value="group.none" name="perm_new_member_{0}" id="perm_new_member_{0}"></td> \
<td><input type="radio" value="group.read" name="perm_new_member_{0}" id="perm_new_member_{0}"></td> \
<td><input type="radio" value="group.write" name="perm_new_member_{0}" id="perm_new_member_{0}"></td> \
<td><input type="radio" value="group.admin" name="perm_new_member_{0}" id="perm_new_member_{0}"></td> \
<td class="ac"> \
<div class="perm_ac" id="perm_ac_{0}"> \
<input class="yui-ac-input" id="perm_new_member_name_{0}" name="perm_new_member_name_{0}" value="" type="text"> \
<input id="perm_new_member_type_{0}" name="perm_new_member_type_{0}" value="" type="hidden"> \
<div id="perm_container_{0}"></div> \
</div> \
</td> \
<td></td>'""")
%>
## ADD HERE DYNAMICALLY NEW INPUTS FROM THE '_tmpl'
<tr class="new_members last_new_member" id="add_perm_input"></tr>
<tr>
<td colspan="6">
<span id="add_perm" class="add_icon" style="cursor: pointer;">
${_('Add another member')}
</span>
</td>
</tr>
<tr>
<td colspan="6">
${h.checkbox('recursive',value="True", label=_('apply to children'))}
<span class="help-block">${_('Set or revoke permission to all children of that group, including non-private repositories and other groups')}</span>
</td>
</tr>
</table>
<script type="text/javascript">
function ajaxActionUser(user_id, field_id) {
var sUrl = "${h.url('delete_repos_group_user_perm',group_name=c.repos_group.group_name)}";
var callback = {
success: function (o) {
var tr = YUD.get(String(field_id));
tr.parentNode.removeChild(tr);
},
failure: function (o) {
alert("${_('Failed to remove user')}");
},
};
var recursive = YUD.get('recursive').checked;
var postData = '_method=delete&recursive={0}&user_id={1}'.format(recursive,user_id);
var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
};
function ajaxActionUsersGroup(users_group_id,field_id){
var sUrl = "${h.url('delete_repos_group_users_group_perm',group_name=c.repos_group.group_name)}";
var callback = {
success:function(o){
var tr = YUD.get(String(field_id));
tr.parentNode.removeChild(tr);
},
failure:function(o){
alert("${_('Failed to remove users group')}");
},
};
var recursive = YUD.get('recursive').checked;
var postData = '_method=delete&recursive={0}&users_group_id={1}'.format(recursive,users_group_id);
var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
};
YUE.onDOMReady(function () {
if (!YUD.hasClass('perm_new_member_name', 'error')) {
YUD.setStyle('add_perm_input', 'display', 'none');
}
YAHOO.util.Event.addListener('add_perm', 'click', function () {
addPermAction(${_tmpl}, ${c.users_array|n}, ${c.users_groups_array|n});
});
});
</script>