##// END OF EJS Templates
follow Python conventions for boolean values...
follow Python conventions for boolean values True and False might be singletons and the "default" values for "boolean" expressions, but "all" values in Python has a boolean value and should be evaluated as such. Checking with 'is True' and 'is False' is thus confusing, error prone and unnessarily complex. If we anywhere rely and nullable boolean fields from the database layer and don't want the null value to be treated as False then we should check explicitly for null with 'is None'.

File last commit:

r3582:1f334a68 beta
r3625:260a7a01 beta
Show More
users.html
147 lines | 4.5 KiB | text/html | HtmlLexer
renamed project to rhodecode
r547 ## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
improved title consistency...
r3582 ${_('Users administration')} &middot; ${c.rhodecode_name}
renamed project to rhodecode
r547 </%def>
<%def name="breadcrumbs_links()">
implemented admin panel Users table with YUI datatable...
r2658 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/> ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; <span id="user_count">0</span> ${_('users')}
renamed project to rhodecode
r547 </%def>
<%def name="page_nav()">
Mads Kiilerich
html: don't use tabs
r3197 ${self.menu('admin')}
renamed project to rhodecode
r547 </%def>
<%def name="main()">
<div class="box">
<!-- box / title -->
<div class="title">
white space cleanup
r2673 ${self.breadcrumbs()}
renamed project to rhodecode
r547 <ul class="links">
<li>
Mads Kiilerich
html: don't hardcode uppercase texts...
r3201 <span>${h.link_to(_(u'Add new user'),h.url('new_user'))}</span>
renamed project to rhodecode
r547 </li>
White-space cleanup
r1888 </ul>
renamed project to rhodecode
r547 </div>
<!-- end box / title -->
implemented admin panel Users table with YUI datatable...
r2658 <div class="table yui-skin-sam" id="users_list_wrap"></div>
<div id="user-paginator" style="padding: 0px 0px 0px 20px"></div>
renamed project to rhodecode
r547 </div>
implemented admin panel Users table with YUI datatable...
r2658
<script>
var url = "${h.url('formatted_users', format='json')}";
var data = ${c.data|n};
var myDataSource = new YAHOO.util.DataSource(data);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
myDataSource.responseSchema = {
Mads Kiilerich
html: don't use tabs
r3197 resultsList: "records",
implemented admin panel Users table with YUI datatable...
r2658 fields: [
{key: "gravatar"},
{key: "raw_username"},
{key: "username"},
{key: "firstname"},
{key: "lastname"},
{key: "last_login"},
fixed sorting by last_login in users admin page
r2699 {key: "last_login_raw"},
implemented admin panel Users table with YUI datatable...
r2658 {key: "active"},
{key: "admin"},
{key: "ldap"},
{key: "action"},
]
};
myDataSource.doBeforeCallback = function(req,raw,res,cb) {
// This is the filter function
var data = res.results || [],
filtered = [],
i,l;
white space cleanup
r2673
implemented admin panel Users table with YUI datatable...
r2658 if (req) {
req = req.toLowerCase();
for (i = 0; i<data.length; i++) {
Mads Kiilerich
html: don't use tabs
r3197 var pos = data[i].raw_username.toLowerCase().indexOf(req)
implemented admin panel Users table with YUI datatable...
r2658 if (pos != -1) {
filtered.push(data[i]);
}
}
res.results = filtered;
}
YUD.get('user_count').innerHTML = res.results.length;
return res;
}
// main table sorting
var myColumnDefs = [
white space cleanup
r2673 {key:"gravatar",label:"",sortable:false,},
implemented admin panel Users table with YUI datatable...
r2658 {key:"username",label:"${_('username')}",sortable:true,
Mads Kiilerich
html: don't use tabs
r3197 sortOptions: { sortFunction: linkSort }
implemented admin panel Users table with YUI datatable...
r2658 },
{key:"firstname",label:"${_('firstname')}",sortable:true,},
{key:"lastname",label:"${_('lastname')}",sortable:true,},
fixed sorting by last_login in users admin page
r2699 {key:"last_login",label:"${_('last login')}",sortable:true,
Mads Kiilerich
html: don't use tabs
r3197 sortOptions: { sortFunction: lastLoginSort }},
implemented admin panel Users table with YUI datatable...
r2658 {key:"active",label:"${_('active')}",sortable:true,},
{key:"admin",label:"${_('admin')}",sortable:true,},
{key:"ldap",label:"${_('ldap')}",sortable:true,},
{key:"action",label:"${_('action')}",sortable:false},
];
var myDataTable = new YAHOO.widget.DataTable("users_list_wrap", myColumnDefs, myDataSource,{
sortedBy:{key:"username",dir:"asc"},
paginator: new YAHOO.widget.Paginator({
rowsPerPage: 15,
alwaysVisible: false,
template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
pageLinks: 5,
containerClass: 'pagination-wh',
currentPageClass: 'pager_curpage',
pageLinkClass: 'pager_link',
nextPageLinkLabel: '&gt;',
previousPageLinkLabel: '&lt;',
firstPageLinkLabel: '&lt;&lt;',
lastPageLinkLabel: '&gt;&gt;',
containers:['user-paginator']
}),
MSG_SORTASC:"${_('Click to sort ascending')}",
MSG_SORTDESC:"${_('Click to sort descending')}",
MSG_EMPTY:"${_('No records found.')}",
MSG_ERROR:"${_('Data error.')}",
MSG_LOADING:"${_('Loading...')}",
}
);
myDataTable.subscribe('postRenderEvent',function(oArgs) {
});
white space cleanup
r2673
implemented admin panel Users table with YUI datatable...
r2658 var filterTimeout = null;
updateFilter = function () {
// Reset timeout
filterTimeout = null;
// Reset sort
var state = myDataTable.getState();
state.sortedBy = {key:'username', dir:YAHOO.widget.DataTable.CLASS_ASC};
// Get filtered data
myDataSource.sendRequest(YUD.get('q_filter').value,{
success : myDataTable.onDataReturnInitializeTable,
failure : myDataTable.onDataReturnInitializeTable,
scope : myDataTable,
argument: state
});
white space cleanup
r2673 };
implemented admin panel Users table with YUI datatable...
r2658 YUE.on('q_filter','click',function(){
YUD.get('q_filter').value = '';
});
YUE.on('q_filter','keyup',function (e) {
clearTimeout(filterTimeout);
filterTimeout = setTimeout(updateFilter,600);
white space cleanup
r2673 });
implemented admin panel Users table with YUI datatable...
r2658 </script>
renamed project to rhodecode
r547 </%def>