[Fusionforge-commits] FusionForge branch 6.1 updated. v6.1alpha0-76-ga98ce4d

Franck Villaume nerville at libremir.placard.fr.eu.org
Wed Nov 29 16:39:45 CET 2017


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 <franck.villaume at trivialdev.com>
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



More information about the Fusionforge-commits mailing list