##// END OF EJS Templates
security: fix XSS in repo strip view.
security: fix XSS in repo strip view.

File last commit:

r2068:71f5d13f default
r2155:a81b6ebb default
Show More
user_groups.mako
108 lines | 3.4 KiB | application/x-mako | MakoHtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="/base/base.mako"/>
<%def name="title()">
${_('User groups administration')}
%if c.rhodecode_name:
&middot; ${h.branding(c.rhodecode_name)}
%endif
</%def>
<%def name="breadcrumbs_links()">
<input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
${h.link_to(_('Admin'),h.route_path('admin_home'))} &raquo; <span id="user_group_count">0</span> ${_('user groups')}
</%def>
<%def name="menu_bar_nav()">
${self.menu_items(active='admin')}
</%def>
<%def name="main()">
<div class="box">
<div class="title">
${self.breadcrumbs()}
<ul class="links">
%if h.HasPermissionAny('hg.admin', 'hg.usergroup.create.true')():
<li>
<a href="${h.route_path('user_groups_new')}" class="btn btn-small btn-success">${_(u'Add User Group')}</a>
</li>
%endif
</ul>
</div>
<div id="repos_list_wrap">
<table id="user_group_list_table" class="display"></table>
</div>
</div>
<script>
$(document).ready(function() {
var getDatatableCount = function(){
var table = $('#user_group_list_table').dataTable();
var page = table.api().page.info();
var active = page.recordsDisplay;
var total = page.recordsTotal;
var _text = _gettext("{0} out of {1} users").format(active, total);
$('#user_group_count').text(_text);
};
// user list
$('#user_group_list_table').DataTable({
processing: true,
serverSide: true,
ajax: "${h.route_path('user_groups_data')}",
dom: 'rtp',
pageLength: ${c.visual.admin_grid_items},
order: [[ 0, "asc" ]],
columns: [
{ data: {"_": "users_group_name",
"sort": "users_group_name"}, title: "${_('Name')}", className: "td-componentname" },
{ data: {"_": "description",
"sort": "description"}, title: "${_('Description')}", className: "td-description" },
{ data: {"_": "members",
"sort": "members"}, title: "${_('Members')}", className: "td-number" },
{ data: {"_": "sync",
"sort": "sync"}, title: "${_('Sync')}", className: "td-sync" },
{ data: {"_": "active",
"sort": "active"}, title: "${_('Active')}", className: "td-active" },
{ data: {"_": "owner",
"sort": "owner"}, title: "${_('Owner')}", className: "td-user" },
{ data: {"_": "action",
"sort": "action"}, title: "${_('Action')}", className: "td-action", orderable: false}
],
language: {
paginate: DEFAULT_GRID_PAGINATION,
sProcessing: _gettext('loading...'),
emptyTable: _gettext("No user groups available yet.")
}
});
$('#user_group_list_table').on('xhr.dt', function(e, settings, json, xhr){
$('#user_group_list_table').css('opacity', 1);
});
$('#user_group_list_table').on('preXhr.dt', function(e, settings, data){
$('#user_group_list_table').css('opacity', 0.3);
});
// refresh counters on draw
$('#user_group_list_table').on('draw.dt', function(){
getDatatableCount();
});
// filter
$('#q_filter').on('keyup',
$.debounce(250, function() {
$('#user_group_list_table').DataTable().search(
$('#q_filter').val()
).draw();
})
);
});
</script>
</%def>