##// END OF EJS Templates
caches: use repo.lru based Dict cache. This LRUDict uses Timing Algo to not have to use locking...
caches: use repo.lru based Dict cache. This LRUDict uses Timing Algo to not have to use locking for the LRU implementation, this it's safer to use for dogpile. We used it before with beaker, so it's generally more stable.

File last commit:

r2114:6e357177 default
r2945:ec5716e4 default
Show More
user_edit_groups.mako
147 lines | 4.9 KiB | application/x-mako | MakoHtmlLexer
Bartłomiej Wołyńczyk
admin-users: add view for user groups managment...
r1556 ## -*- coding: utf-8 -*-
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">${_('User groups administration')}</h3>
</div>
<div class="panel-body">
user groups: fix form and label
r1557 <div class="fields">
<div class="field">
<div class="label label-checkbox">
<label for="users_group_active">${_('Add `%s` to user group') % c.user.username}:</label>
</div>
<div class="input">
${h.text('add_user_to_group', placeholder="user group name", class_="medium")}
</div>
Bartłomiej Wołyńczyk
admin-users: add view for user groups managment...
r1556 </div>
</div>
<div class="groups_management">
forms: unified usage of h.secure_form. Make sure we ALWAYS pass in...
r2105 ${h.secure_form(h.route_path('edit_user_groups_management_updates', user_id=c.user.user_id), request=request)}
Bartłomiej Wołyńczyk
admin-users: add view for user groups managment...
r1556 <div id="repos_list_wrap">
<table id="user_group_list_table" class="display"></table>
</div>
<div class="buttons">
${h.submit('save',_('Save'),class_="btn")}
</div>
${h.end_form()}
</div>
</div>
</div>
<script>
var api;
$(document).ready(function() {
var get_datatable_count = function(){
$('#user_group_count').text(api.page.info().recordsDisplay);
};
$('#user_group_list_table').on('click', 'a.editor_remove', function (e) {
e.preventDefault();
var row = api.row($(this).closest('tr'));
row.remove().draw();
} );
$('#user_group_list_table').DataTable({
data: ${c.groups|n},
dom: 'rtp',
pageLength: ${c.visual.admin_grid_items},
order: [[ 0, "asc" ]],
columns: [
{ data: {"_": "group_name",
"sort": "group_name"}, title: "${_('Name')}", className: "td-componentname," ,
render: function (data,type,full,meta)
{return '<div><i class="icon-group" title="User group">'+data+'</i></div>'}},
{ data: {"_": "group_description",
"sort": "group_description"}, title: "${_('Description')}", className: "td-description" },
{ data: {"_": "users_group_id"}, className: "td-user",
render: function (data,type,full,meta)
{return '<input type="hidden" name="users_group_id" value="'+data+'">'}},
{ data: {"_": "active",
users: ported controllers from pylons into pyramid views.
r2114 "sort": "active"}, title: "${_('Active')}", className: "td-active"},
Bartłomiej Wołyńczyk
admin-users: add view for user groups managment...
r1556 { data: {"_": "owner_data"}, title: "${_('Owner')}", className: "td-user",
render: function (data,type,full,meta)
{return '<div class="rc-user tooltip">'+
'<img class="gravatar" src="'+ data.owner_icon +'" height="16" width="16">'+
data.owner +'</div>'
}
users: ported controllers from pylons into pyramid views.
r2114 },
Bartłomiej Wołyńczyk
admin-users: add view for user groups managment...
r1556 { data: null,
title: "${_('Action')}",
className: "td-action",
users: ported controllers from pylons into pyramid views.
r2114 defaultContent: '-'
}
Bartłomiej Wołyńczyk
admin-users: add view for user groups managment...
r1556 ],
language: {
paginate: DEFAULT_GRID_PAGINATION,
emptyTable: _gettext("No user groups available yet.")
},
"initComplete": function( settings, json ) {
var data_grid = $('#user_group_list_table').dataTable();
api = data_grid.api();
get_datatable_count();
}
});
// update the counter when doing search
$('#user_group_list_table').on( 'search.dt', function (e,settings) {
get_datatable_count();
});
// filter, filter both grids
$('#q_filter').on( 'keyup', function () {
var user_api = $('#user_group_list_table').dataTable().api();
user_api
.columns(0)
.search(this.value)
.draw();
});
// refilter table if page load via back button
$("#q_filter").trigger('keyup');
});
$('#language').select2({
'containerCssClass': "drop-menu",
'dropdownCssClass': "drop-menu-dropdown",
'dropdownAutoWidth': true
});
$(document).ready(function(){
$("#group_parent_id").select2({
'containerCssClass': "drop-menu",
'dropdownCssClass': "drop-menu-dropdown",
'dropdownAutoWidth': true
});
$('#add_user_to_group').autocomplete({
serviceUrl: pyroutes.url('user_group_autocomplete_data'),
minChars:2,
maxHeight:400,
width:300,
deferRequestBy: 300, //miliseconds
showNoSuggestionNotice: true,
params: { user_groups:true },
formatResult: autocompleteFormatResult,
lookupFilter: autocompleteFilterResult,
onSelect: function(element, suggestion){
var owner = {owner_icon: suggestion.owner_icon, owner:suggestion.owner};
api.row.add(
{"active": suggestion.active,
"owner_data": owner,
"users_group_id": suggestion.id,
"group_description": suggestion.description,
"group_name": suggestion.value}).draw();
}
});
})
</script>