##// END OF EJS Templates
user groups: fix form and label
marcink -
r1557:41eec473 default
parent child Browse files
Show More
@@ -1,145 +1,147 b''
1 1 ## -*- coding: utf-8 -*-
2 2
3 3
4 4 <div class="panel panel-default">
5 5 <div class="panel-heading">
6 6 <h3 class="panel-title">${_('User groups administration')}</h3>
7 7 </div>
8 8 <div class="panel-body">
9 <div class="field">
10 <div class="label label-checkbox">
11 <label for="users_group_active">${_('Add user to group')}:</label>
9 <div class="fields">
10 <div class="field">
11 <div class="label label-checkbox">
12 <label for="users_group_active">${_('Add `%s` to user group') % c.user.username}:</label>
13 </div>
14 <div class="input">
15 ${h.text('add_user_to_group', placeholder="user group name", class_="medium")}
16 </div>
17
12 18 </div>
13 <div class="input">
14 ${h.text('add_user_to_group', placeholder="user group name", class_="medium")}
15 </div>
16
17 19 </div>
18 20
19 21 <div class="groups_management">
20 22 ${h.secure_form(h.route_path('edit_user_groups_management_updates', user_id=c.user.user_id), method='post')}
21 23 <div id="repos_list_wrap">
22 24 <table id="user_group_list_table" class="display"></table>
23 25 </div>
24 26 <div class="buttons">
25 27 ${h.submit('save',_('Save'),class_="btn")}
26 28 </div>
27 29 ${h.end_form()}
28 30 </div>
29 31 </div>
30 32 </div>
31 33 <script>
32 34 var api;
33 35 $(document).ready(function() {
34 36
35 37 var get_datatable_count = function(){
36 38 $('#user_group_count').text(api.page.info().recordsDisplay);
37 39 };
38 40
39 41 $('#user_group_list_table').on('click', 'a.editor_remove', function (e) {
40 42 e.preventDefault();
41 43 var row = api.row($(this).closest('tr'));
42 44 row.remove().draw();
43 45 } );
44 46
45 47 $('#user_group_list_table').DataTable({
46 48 data: ${c.groups|n},
47 49 dom: 'rtp',
48 50 pageLength: ${c.visual.admin_grid_items},
49 51 order: [[ 0, "asc" ]],
50 52 columns: [
51 53 { data: {"_": "group_name",
52 54 "sort": "group_name"}, title: "${_('Name')}", className: "td-componentname," ,
53 55 render: function (data,type,full,meta)
54 56 {return '<div><i class="icon-group" title="User group">'+data+'</i></div>'}},
55 57
56 58 { data: {"_": "group_description",
57 59 "sort": "group_description"}, title: "${_('Description')}", className: "td-description" },
58 60 { data: {"_": "users_group_id"}, className: "td-user",
59 61 render: function (data,type,full,meta)
60 62 {return '<input type="hidden" name="users_group_id" value="'+data+'">'}},
61 63 { data: {"_": "active",
62 64 "sort": "active"}, title: "${_('Active')}", className: "td-active", className: "td-number"},
63 65 { data: {"_": "owner_data"}, title: "${_('Owner')}", className: "td-user",
64 66 render: function (data,type,full,meta)
65 67 {return '<div class="rc-user tooltip">'+
66 68 '<img class="gravatar" src="'+ data.owner_icon +'" height="16" width="16">'+
67 69 data.owner +'</div>'
68 70 }
69 71 },
70 72 { data: null,
71 73 title: "${_('Action')}",
72 74 className: "td-action",
73 75 defaultContent: '<a href="" class="btn btn-link btn-danger">Delete</a>'
74 76 },
75 77 ],
76 78 language: {
77 79 paginate: DEFAULT_GRID_PAGINATION,
78 80 emptyTable: _gettext("No user groups available yet.")
79 81 },
80 82 "initComplete": function( settings, json ) {
81 83 var data_grid = $('#user_group_list_table').dataTable();
82 84 api = data_grid.api();
83 85 get_datatable_count();
84 86 }
85 87 });
86 88
87 89 // update the counter when doing search
88 90 $('#user_group_list_table').on( 'search.dt', function (e,settings) {
89 91 get_datatable_count();
90 92 });
91 93
92 94 // filter, filter both grids
93 95 $('#q_filter').on( 'keyup', function () {
94 96 var user_api = $('#user_group_list_table').dataTable().api();
95 97 user_api
96 98 .columns(0)
97 99 .search(this.value)
98 100 .draw();
99 101 });
100 102
101 103 // refilter table if page load via back button
102 104 $("#q_filter").trigger('keyup');
103 105
104 106 });
105 107
106 108 $('#language').select2({
107 109 'containerCssClass': "drop-menu",
108 110 'dropdownCssClass': "drop-menu-dropdown",
109 111 'dropdownAutoWidth': true
110 112 });
111 113
112 114
113 115
114 116 $(document).ready(function(){
115 117 $("#group_parent_id").select2({
116 118 'containerCssClass': "drop-menu",
117 119 'dropdownCssClass': "drop-menu-dropdown",
118 120 'dropdownAutoWidth': true
119 121 });
120 122
121 123 $('#add_user_to_group').autocomplete({
122 124 serviceUrl: pyroutes.url('user_group_autocomplete_data'),
123 125 minChars:2,
124 126 maxHeight:400,
125 127 width:300,
126 128 deferRequestBy: 300, //miliseconds
127 129 showNoSuggestionNotice: true,
128 130 params: { user_groups:true },
129 131 formatResult: autocompleteFormatResult,
130 132 lookupFilter: autocompleteFilterResult,
131 133 onSelect: function(element, suggestion){
132 134 var owner = {owner_icon: suggestion.owner_icon, owner:suggestion.owner};
133 135 api.row.add(
134 136 {"active": suggestion.active,
135 137 "owner_data": owner,
136 138 "users_group_id": suggestion.id,
137 139 "group_description": suggestion.description,
138 140 "group_name": suggestion.value}).draw();
139 141 }
140 142 });
141 143 })
142 144
143 145 </script>
144 146
145 147
General Comments 0
You need to be logged in to leave comments. Login now