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

Reply via email to