This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".
The branch, 6.1 has been updated
via a98ce4d53fb4ccbfe92660896ed796dd18281d62 (commit)
from 675d5ffd973cae5464322a58266b24bc8f46b47c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=a98ce4d53fb4ccbfe92660896ed796dd18281d62
commit a98ce4d53fb4ccbfe92660896ed796dd18281d62
Author: Franck Villaume <[email protected]>
Date: Wed Nov 29 15:39:39 2017 +0000
admin user list: fix filtering. part 2
diff --git a/src/common/include/FusionForge.class.php
b/src/common/include/FusionForge.class.php
index bbcdea3..4fce4ea 100644
--- a/src/common/include/FusionForge.class.php
+++ b/src/common/include/FusionForge.class.php
@@ -192,6 +192,17 @@ class FusionForge extends FFError {
return $this->parseCount($res);
}
+ function getNumberOfUsersByStatusAndName($params = array()) {
+ $qpa = db_construct_qpa(false, 'SELECT count(user_id) FROM
users WHERE users.user_id != 100');
+ if (isset($params['user_name_search'])) {
+ $qpa = db_construct_qpa($qpa, ' AND lower(user_name)
LIKE $1 OR lower(lastname) LIKE $1',
array(strtolower($params['user_name_search'].'%')));
+ }
+ if (isset($params['status']) && in_array($params['status'],
array('D', 'A', 'S', 'P'))) {
+ $qpa = db_construct_qpa($qpa, ' AND status = $1',
array($params['status']));
+ }
+ $res = db_query_qpa($qpa);
+
+ }
function parseCount($res) {
$row_count = db_fetch_array($res);
diff --git a/src/www/admin/userlist.php b/src/www/admin/userlist.php
index 0be0eb4..cbc3be2 100644
--- a/src/www/admin/userlist.php
+++ b/src/www/admin/userlist.php
@@ -69,12 +69,20 @@ function performAction($newStatus, $statusString, $user_id)
{
function show_users_list($users, $filter = '', $sortorder = 'realname',
$start, $rows, $paging, $totalUsers) {
global $HTML;
- echo '<p>' ._('Status')._(': ').
- util_make_link('/admin/userlist.php', _('All')). '
- <span
class="active">'.util_make_link('/admin/userlist.php?status=A&sortorder='.$sortorder,_('Active')).
'</span>
- <span
class="deleted">'.util_make_link('/admin/userlist.php?status=D&sortorder='.$sortorder,_('Deleted')).'</span>
- <span
class="suspended">'.util_make_link('/admin/userlist.php?status=S&sortorder='.$sortorder,_('Suspended')).'</span>
- <span
class="pending">'.util_make_link('/admin/userlist.php?status=P&sortorder='.$sortorder,_('(*)Pending')).'</span>'.'</p>';
+ echo '<p>' ._('Status')._(': ');
+ if (!$filter) {
+ echo
util_make_link('/admin/userlist.php?sortorder='.$sortorder, _('All'));
+ } else {
+ if (preg_match('/status=/', $filter)) {
+ $filter = preg_replace('/status=.*/','', $filter);
+ }
+ $filter = rtrim($filter, '&');
+ echo
util_make_link('/admin/userlist.php?sortorder='.$sortorder.$filter, _('All'));
+ }
+ echo ' <span
class="active">'.util_make_link('/admin/userlist.php?status=A&sortorder='.$sortorder.$filter,_('Active')).
'</span>
+ <span
class="deleted">'.util_make_link('/admin/userlist.php?status=D&sortorder='.$sortorder.$filter,_('Deleted')).'</span>
+ <span
class="suspended">'.util_make_link('/admin/userlist.php?status=S&sortorder='.$sortorder.$filter,_('Suspended')).'</span>
+ <span
class="pending">'.util_make_link('/admin/userlist.php?status=P&sortorder='.$sortorder.$filter,_('(*)Pending')).'</span>'.'</p>';
if (!count($users)) {
echo $HTML->warning_msg(_('No user found matching selected
criteria.'));
@@ -203,41 +211,31 @@ if ($usingplugin) {
show_users_list(util_result_column_to_array($res, 0), '', 'realname',
$start, $max, $paging, $totalUsers);
} elseif (!$group_id) {
- $filter='';
+ $filter = '';
$user_name_search = getStringFromRequest('user_name_search');
$sort_order = getStringFromRequest('sortorder', 'realname');
util_ensure_value_in_set($sort_order,
array('realname','user_name','lastname','firstname','user_id','status','add_date'));
+ $qpa = db_construct_qpa(false, 'SELECT user_id FROM users WHERE
users.user_id != 100');
if ($user_name_search) {
- $res = db_query_params('SELECT user_id FROM users WHERE
lower(user_name) LIKE $1 OR lower(lastname) LIKE $1 and users.user_id != 100
ORDER BY '.$sort_order.' LIMIT $2 OFFSET $3',
- array(strtolower("$user_name_search%"),
$paging, $start));
- $list_id = util_result_column_to_array($res, 0);
+ $qpa = db_construct_qpa($qpa, ' AND lower(user_name) LIKE $1 OR
lower(lastname) LIKE $1', array(strtolower("$user_name_search%")));
$msg = sprintf(_('User list beginning with ā%sā for all
projects'), $user_name_search);
$filter .= '&user_name_search='.$user_name_search;
} else {
$msg = _('User list for all projects');
}
- echo html_e('h2', array(), $msg);
-
- if ($status) {
- $res = db_query_params('SELECT user_id FROM users WHERE status
= $1 and users.user_id != 100 ORDER BY '.$sort_order.' LIMIT $2 OFFSET $3',
- array($status, $paging, $start));
- if (isset($list_id)) {
- $list_id = array_merge($list_id,
util_result_column_to_array($res, 0));
- }
- else {
- $list_id = util_result_column_to_array($res, 0);
- }
- }
- if (!isset($list_id)) {
- $res = db_query_params('SELECT user_id FROM users where
users.user_id != 100 ORDER BY '.$sort_order.' LIMIT $1 OFFSET $2',
- array($paging, $start));
- $list_id = util_result_column_to_array($res, 0);
- }
- if (in_array($status, array('D', 'A', 'S', 'P'))) {
+ if ($status && in_array($status, array('D', 'A', 'S', 'P'))) {
+ $qpa = db_construct_qpa($qpa, ' AND status = $1',
array($status));
$filter .= '&status='.$status;
}
- $totalUsers = FusionForge::getInstance()->getNumberOfUsers($status);
+ $qpa = db_construct_qpa($qpa, ' ORDER BY $1', array($sort_order));
+ $res = db_query_qpa($qpa, $paging, $start);
+ $list_id = util_result_column_to_array($res, 0);
+ var_dump($list_id);
+ echo html_e('h2', array(), $msg);
+
+ $params = array('status' => $status, 'user_name_search' =>
$user_name_search);
+ $totalUsers =
FusionForge::getInstance()->getNumberOfUsersByStatusAndName($params);
$max = ($totalUsers > ($start + $paging)) ? ($start + $paging) :
$totalUsers;
show_users_list($list_id, $filter, $sort_order, $start, $max, $paging,
$totalUsers);
} else {
-----------------------------------------------------------------------
Summary of changes:
src/common/include/FusionForge.class.php | 11 +++++++
src/www/admin/userlist.php | 56 +++++++++++++++-----------------
2 files changed, 38 insertions(+), 29 deletions(-)
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits