enable filtering of the users list by first character
This commit is contained in:
parent
993a664315
commit
6566f35deb
3 changed files with 38 additions and 13 deletions
|
|
@ -4382,7 +4382,7 @@ class RootExports(object):
|
|||
else:
|
||||
clauses.append('build.task_id = %(taskID)i')
|
||||
if prefix:
|
||||
clauses.append("package.name ~* ('^' || %(prefix)s || '.*')")
|
||||
clauses.append("package.name ilike %(prefix)s || '%%'")
|
||||
if state != None:
|
||||
clauses.append('build.state = %(state)i')
|
||||
if completeBefore:
|
||||
|
|
@ -4759,7 +4759,7 @@ class RootExports(object):
|
|||
dropGroupMember = staticmethod(drop_group_member)
|
||||
getGroupMembers = staticmethod(get_group_members)
|
||||
|
||||
def listUsers(self, userType=koji.USERTYPES['NORMAL'], queryOpts=None):
|
||||
def listUsers(self, userType=koji.USERTYPES['NORMAL'], prefix=None, queryOpts=None):
|
||||
"""List all users in the system.
|
||||
type can be either koji.USERTYPES['NORMAL']
|
||||
or koji.USERTYPES['HOST']. Returns a list of maps with the
|
||||
|
|
@ -4774,7 +4774,9 @@ class RootExports(object):
|
|||
If no users of the specified
|
||||
type exist, return an empty list."""
|
||||
fields = ('id', 'name', 'status', 'usertype', 'krb_principal')
|
||||
clauses = ('usertype = %(userType)i',)
|
||||
clauses = ['usertype = %(userType)i']
|
||||
if prefix:
|
||||
clauses.append("name ilike %(prefix)s || '%%'")
|
||||
query = QueryProcessor(columns=fields, tables=('users',), clauses=clauses,
|
||||
values=locals(), opts=queryOpts)
|
||||
return query.execute()
|
||||
|
|
|
|||
|
|
@ -875,15 +875,21 @@ def builds(req, userID=None, tagID=None, state=None, order='-completion_time', s
|
|||
|
||||
return _genHTML(req, 'builds.chtml')
|
||||
|
||||
def users(req, order='name', start=None):
|
||||
def users(req, order='name', start=None, prefix=None):
|
||||
values = _initValues(req, 'Users', 'users')
|
||||
server = _getServer(req)
|
||||
|
||||
if prefix:
|
||||
prefix = prefix.lower()
|
||||
values['prefix'] = prefix
|
||||
|
||||
values['order'] = order
|
||||
|
||||
users = kojiweb.util.paginateMethod(server, values, 'listUsers',
|
||||
users = kojiweb.util.paginateMethod(server, values, 'listUsers', kw={'prefix': prefix},
|
||||
start=start, dataName='users', prefix='user', order=order)
|
||||
|
||||
values['chars'] = [chr(char) for char in range(48, 58) + range(97, 123)]
|
||||
|
||||
return _genHTML(req, 'users.chtml')
|
||||
|
||||
def userinfo(req, userID, packageOrder='package_name', packageStart=None, buildOrder='-completion_time', buildStart=None):
|
||||
|
|
|
|||
|
|
@ -4,12 +4,29 @@
|
|||
|
||||
<h4>Users</h4>
|
||||
<table class="data-list">
|
||||
<tr>
|
||||
<td class="charlist" colspan="5">
|
||||
#for $char in $chars
|
||||
#if $prefix == $char
|
||||
<strong>$char</strong>
|
||||
#else
|
||||
<a href="users?prefix=$char$util.passthrough($self, 'order')">$char</a>
|
||||
#end if
|
||||
|
|
||||
#end for
|
||||
#if $prefix
|
||||
<a href="users?${util.passthrough($self, 'order')[1:]}">all</a>
|
||||
#else
|
||||
<strong>all</strong>
|
||||
#end if
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paginate" colspan="5">
|
||||
#if $len($userPages) > 1
|
||||
<form class="pageJump">
|
||||
Page:
|
||||
<select onchange="javascript: window.location = 'users?start=' + this.value * $userRange + '$util.passthrough($self, 'order')';">
|
||||
<select onchange="javascript: window.location = 'users?start=' + this.value * $userRange + '$util.passthrough($self, 'order', 'prefix')';">
|
||||
#for $pageNum in $userPages
|
||||
<option value="$pageNum"#if $pageNum == $userCurrentPage then ' selected' else ''#>#echo $pageNum + 1#</option>
|
||||
#end for
|
||||
|
|
@ -17,19 +34,19 @@
|
|||
</form>
|
||||
#end if
|
||||
#if $userStart > 0
|
||||
<a href="users?start=#echo $userStart - $userRange #$util.passthrough($self, 'order')"><<<</a>
|
||||
<a href="users?start=#echo $userStart - $userRange #$util.passthrough($self, 'order', 'prefix')"><<<</a>
|
||||
#end if
|
||||
#if $totalUsers != 0
|
||||
<strong>Users #echo $userStart + 1 # through #echo $userStart + $userCount # of $totalUsers</strong>
|
||||
#end if
|
||||
#if $userStart + $userCount < $totalUsers
|
||||
<a href="users?start=#echo $userStart + $userRange#$util.passthrough($self, 'order')">>>></a>
|
||||
<a href="users?start=#echo $userStart + $userRange#$util.passthrough($self, 'order', 'prefix')">>>></a>
|
||||
#end if
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="list-header">
|
||||
<th><a href="users?order=$util.toggleOrder($self, 'id')">ID</a> $util.sortImage($self, 'id')</th>
|
||||
<th><a href="users?order=$util.toggleOrder($self, 'name')">Name</a> $util.sortImage($self, 'name')</th>
|
||||
<th><a href="users?order=$util.toggleOrder($self, 'id')$util.passthrough($self, 'prefix')">ID</a> $util.sortImage($self, 'id')</th>
|
||||
<th><a href="users?order=$util.toggleOrder($self, 'name')$util.passthrough($self, 'prefix')">Name</a> $util.sortImage($self, 'name')</th>
|
||||
<th>Packages</th>
|
||||
<th>Builds</th>
|
||||
<th>Tasks</th>
|
||||
|
|
@ -54,7 +71,7 @@
|
|||
#if $len($userPages) > 1
|
||||
<form class="pageJump">
|
||||
Page:
|
||||
<select onchange="javascript: window.location = 'users?start=' + this.value * $userRange + '$util.passthrough($self, 'order')';">
|
||||
<select onchange="javascript: window.location = 'users?start=' + this.value * $userRange + '$util.passthrough($self, 'order', 'prefix')';">
|
||||
#for $pageNum in $userPages
|
||||
<option value="$pageNum"#if $pageNum == $userCurrentPage then ' selected' else ''#>#echo $pageNum + 1#</option>
|
||||
#end for
|
||||
|
|
@ -62,13 +79,13 @@
|
|||
</form>
|
||||
#end if
|
||||
#if $userStart > 0
|
||||
<a href="users?start=#echo $userStart - $userRange #$util.passthrough($self, 'order')"><<<</a>
|
||||
<a href="users?start=#echo $userStart - $userRange #$util.passthrough($self, 'order', 'prefix')"><<<</a>
|
||||
#end if
|
||||
#if $totalUsers != 0
|
||||
<strong>Users #echo $userStart + 1 # through #echo $userStart + $userCount # of $totalUsers</strong>
|
||||
#end if
|
||||
#if $userStart + $userCount < $totalUsers
|
||||
<a href="users?start=#echo $userStart + $userRange#$util.passthrough($self, 'order')">>>></a>
|
||||
<a href="users?start=#echo $userStart + $userRange#$util.passthrough($self, 'order', 'prefix')">>>></a>
|
||||
#end if
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue