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, master has been updated
via 9ae560896e4ad356a1ebd4a2af8e18ae232e37f9 (commit)
via d5719ff8fc1896343ac82d2196a856787fe0a497 (commit)
via 4dec972f4ba1e6a542e032d3ba8eec5cfb509ddd (commit)
via 64f8eab3b8d494119a9645e1c0ec3f9d27e32151 (commit)
from 2287abb6ebf54d21aa3d07f52fcc295d097253ec (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=9ae560896e4ad356a1ebd4a2af8e18ae232e37f9
commit 9ae560896e4ad356a1ebd4a2af8e18ae232e37f9
Author: Franck Villaume <[email protected]>
Date: Wed Nov 11 09:07:52 2015 +0100
use HTML helpers
diff --git a/src/www/project/admin/massadd.php
b/src/www/project/admin/massadd.php
index ea63c6c..03eff96 100644
--- a/src/www/project/admin/massadd.php
+++ b/src/www/project/admin/massadd.php
@@ -66,12 +66,11 @@ if (getStringFromRequest('finished')) {
project_admin_header(array('title'=>_('Add Users From
List'),'group'=>$group_id));
-echo '
-<p>
-'._('Check the box next to the name of the user(s) you want to add. Your
choices will be preserved if you click any of the letters below. When done,
click “Finish” to choose the roles for the users you are adding.').'
-</p>
-<form action="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'"
method="post">
-<input type="hidden" name="accumulated_ids" value="'.
implode(',',$accumulated_ids) .'" />';
+echo html_e('p', array(),
+ _('Check the box next to the name of the user(s) you want to add. Your
choices will be preserved if you click any of the letters below. When done,
click “Finish” to choose the roles for the users you are adding.'));
+
+echo $HTML->openForm(array('action' =>
getStringFromServer('PHP_SELF').'?group_id='.$group_id, 'method' => 'post'));
+echo '<input type="hidden" name="accumulated_ids" value="'.
implode(',',$accumulated_ids) .'" />';
$abc_array =
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
echo '<p>' . _('Choose the <strong>First Letter</strong> of the name of the
person you wish to add.') . '</p>';
@@ -84,7 +83,7 @@ for ($i=0; $i<count($abc_array); $i++) {
}
if (!$res || db_numrows($res) < 1) {
- echo '<p>' . _('No Matching Users Found') . '</p>';
+ echo $HTML->information(_('No Matching Users Found'));
} else {
$titles[]=_('Real Name');
@@ -113,8 +112,8 @@ if (!$res || db_numrows($res) < 1) {
}
-echo '<p><input type="submit" name="finished" value="'._('Finish').'" /></p>
-</form>';
+echo '<p><input type="submit" name="finished" value="'._('Finish').'" /></p>';
+echo $HTML->closeForm();
project_admin_footer();
diff --git a/src/www/project/admin/massfinish.php
b/src/www/project/admin/massfinish.php
index 4cd83a6..87c3e94 100644
--- a/src/www/project/admin/massfinish.php
+++ b/src/www/project/admin/massfinish.php
@@ -5,6 +5,7 @@
* Copyright 2004 (c) Tim Perdue - GForge LLC
* Copyright 2010 (c) Franck Villaume - Capgemini
* Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
+ * Copyright 2015, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -28,6 +29,8 @@ require_once $gfcommon.'include/pre.php';
require_once $gfwww.'project/admin/project_admin_utils.php';
require_once $gfwww.'include/role_utils.php';
+global $HTML;
+
$group_id = getIntFromRequest('group_id');
session_require_perm ('project_admin', $group_id) ;
@@ -61,14 +64,11 @@ if (!$accumulated_ids) {
project_admin_header(array('title'=>_('Add Users From
List'),'group'=>$group_id));
-echo '
-<p>
-'._('Choose the role for each user and then press “Add All”.').'
-</p>
-<form action="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'"
method="post">';
+echo html_e('p', array(), _('Choose the role for each user and then press “Add
All”.'));
+echo $HTML->openForm(array('action' =>
getStringFromServer('PHP_SELF').'?group_id='.$group_id, 'method' => 'post'));
if (!$res || db_numrows($res) < 1) {
- echo _('No Matching Users Found');
+ echo $HTML->information(_('No Matching Users Found'));
} else {
$titles[]=_('Real Name');
@@ -93,8 +93,8 @@ if (!$res || db_numrows($res) < 1) {
}
-echo '<p><input type="submit" name="finished" value="'._('Add All').'" /></p>
-</form>';
+echo '<p><input type="submit" name="finished" value="'._('Add All').'" /></p>';
+echo $HTML->closeForm();
project_admin_footer();
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=d5719ff8fc1896343ac82d2196a856787fe0a497
commit d5719ff8fc1896343ac82d2196a856787fe0a497
Author: Franck Villaume <[email protected]>
Date: Wed Nov 11 09:04:29 2015 +0100
fix [#799]: same error memory in case of large number of projects. Add
paging system
diff --git a/src/common/include/FusionForge.class.php
b/src/common/include/FusionForge.class.php
index 75aed03..021d67d 100644
--- a/src/common/include/FusionForge.class.php
+++ b/src/common/include/FusionForge.class.php
@@ -4,6 +4,7 @@
*
* Copyright 2002, GForge, LLC
* Copyright 2009-2011, Roland Mas
+ * Copyright 2015, Franck Villaume - TrivialDev
*
* This file is part of FusionForge. FusionForge is free software;
* you can redistribute it and/or modify it under the terms of the
@@ -61,15 +62,29 @@ class FusionForge extends Error {
/**
* List full number of hosted projects, public and private
*/
- function getNumberOfActiveProjects() {
- $res = db_query_params ('SELECT count(*) as count FROM groups
WHERE status=$1',
- array ('A'));
- if (!$res) {
+ function getNumberOfProjects($status) {
+ $qpa = db_construct_qpa(false, 'SELECT count(*) as count FROM
groups');
+ if ($status) {
+ $qpa = db_construct_qpa($qpa, ' WHERE status = $1',
array($status));
+ }
+ $res = db_query_qpa($qpa);
+ if (!$res || db_numrows($res) < 1) {
$this->setError('Unable to get hosted project count:
'.db_error());
return false;
}
return $this->parseCount($res);
}
+ function getNumberOfActiveProjects() {
+ return $this->getNumberOfProjects('A');
+ }
+
+ function getNumberOfDeletedProjects() {
+ return $this->getNumberOfProjects('D');
+ }
+
+ function getNumberOfSuspendedProjects() {
+ return $this->getNumberOfProjects('S');
+ }
function getNumberOfActiveUsers() {
return $this->getNumberOfUsers('A');
@@ -83,6 +98,15 @@ class FusionForge extends Error {
return $this->getNumberOfUsers('S');
}
+ function getNumberOfProjectsFilteredByGroupName($filter) {
+ $res = db_query_params('SELECT count(*) as count FROM groups
WHERE lower(group_name) LIKE $1', array(strtolower("$filter%")));
+ if (!$res || db_numrows($res) < 1) {
+ $this->setError('Unable to get project count:
'.db_error());
+ return false;
+ }
+ return $this->parseCount($res);
+ }
+
function getNumberOfUsersUsingAPlugin($plugin_name) {
$res = db_query_params ('SELECT count(u.user_id) AS count FROM
plugins p, user_plugin up, users u WHERE p.plugin_name = $1 and up.user_id =
u.user_id and p.plugin_id = up.plugin_id and users.user_id != 100',
array($plugin_name));
@@ -94,8 +118,7 @@ class FusionForge extends Error {
}
function getNumberOfUsers($status) {
- $qpa = db_construct_qpa();
- $qpa = db_construct_qpa($qpa, 'SELECT count(*) AS count FROM
users WHERE user_id != 100');
+ $qpa = db_construct_qpa(false, 'SELECT count(*) AS count FROM
users WHERE user_id != 100');
if ($status) {
$qpa = db_construct_qpa($qpa, ' and status = $1',
array($status));
}
diff --git a/src/www/admin/grouplist.php b/src/www/admin/grouplist.php
index b7d3c6f..1f84c8b 100644
--- a/src/www/admin/grouplist.php
+++ b/src/www/admin/grouplist.php
@@ -3,7 +3,7 @@
* List of all groups in the system.
*
* Copyright 1999-2000 (c) The SourceForge Crew
- * Copyright 2013, Franck Villaume - TrivialDev
+ * Copyright 2013-2015, Franck Villaume - TrivialDev
*
* This file is part of FusionForge. FusionForge is free software;
* you can redistribute it and/or modify it under the terms of the
@@ -23,10 +23,29 @@
require_once '../env.inc.php';
require_once $gfcommon.'include/pre.php';
+require_once $gfcommon.'include/UserManager.class.php';
require_once $gfwww.'admin/admin_utils.php';
site_admin_header(array('title'=>_('Project List')));
+$paging = 25;
+$u = UserManager::instance()->getCurrentUser();
+if (getStringFromRequest('setpaging')) {
+ /* store paging preferences */
+ $paging = getIntFromRequest('nres');
+ if (!$paging) {
+ $paging = 25;
+ }
+ $u->setPreference('paging', $paging);
+} else {
+ $paging = $u->getPreference('paging');
+}
+
+$start = getIntFromRequest('start');
+if ($start < 0) {
+ $start = 0;
+}
+
$sortorder = getStringFromRequest('sortorder');
$group_name_search = getStringFromRequest('group_name_search');
$status = getStringFromRequest('status');
@@ -42,73 +61,31 @@ $sortorder = util_ensure_value_in_set($sortorder,
'is_template')) ;
if ($sortorder == 'is_public') {
- $sortorder = 'group_name';
+ $sqlsortorder = 'group_name';
} elseif ($sortorder == 'is_template' || $sortorder == 'members') {
- $sortorder .= ' DESC';
+ $sqlsortorder = $sortorder.' DESC';
+} else {
+ $sqlsortorder = $sortorder;
}
-
-$sqlsortorder = $sortorder;
-
+$filter = '';
if ($group_name_search != '') {
- echo "<p>"._('Projects that begin with'). "
<strong>".$group_name_search."</strong></p>\n";
- $res = db_query_params('SELECT
group_name,register_time,unix_group_name,groups.group_id,groups.is_template,status,license_name,COUNT(DISTINCT(pfo_user_role.user_id))
AS members FROM groups LEFT OUTER JOIN pfo_role ON
pfo_role.home_group_id=groups.group_id LEFT OUTER JOIN pfo_user_role ON
pfo_user_role.role_id=pfo_role.role_id, licenses WHERE license_id=license AND
lower(group_name) LIKE $1 GROUP BY
group_name,register_time,unix_group_name,groups.group_id,groups.is_template,status,license_name
ORDER BY '.$sqlsortorder,
- array(strtolower ("$group_name_search%")));
+ echo html_e('p', array(), _('Projects that begin with').'
'.html_e('strong', array(), $group_name_search));
+ $res = db_query_params('SELECT
group_name,register_time,unix_group_name,groups.group_id,groups.is_template,status,license_name,COUNT(DISTINCT(pfo_user_role.user_id))
AS members FROM groups LEFT OUTER JOIN pfo_role ON
pfo_role.home_group_id=groups.group_id LEFT OUTER JOIN pfo_user_role ON
pfo_user_role.role_id=pfo_role.role_id, licenses WHERE license_id=license AND
lower(group_name) LIKE $1 GROUP BY
group_name,register_time,unix_group_name,groups.group_id,groups.is_template,status,license_name
ORDER BY '.$sqlsortorder.' OFFSET $2 LIMIT $3',
+ array(strtolower("$group_name_search%"),
$start, $paging));
+ $totalProjects =
FusionForge::getInstance()->getNumberOfProjectsFilteredByGroupName($group_name_search);
+ $filter='&group_name_search='.$group_name_search;
} else {
$qpa = db_construct_qpa(false, 'SELECT
group_name,register_time,unix_group_name,groups.group_id,groups.is_template,status,license_name,COUNT(DISTINCT(pfo_user_role.user_id))
AS members FROM groups LEFT OUTER JOIN pfo_role ON
pfo_role.home_group_id=groups.group_id LEFT OUTER JOIN pfo_user_role ON
pfo_user_role.role_id=pfo_role.role_id, licenses WHERE license_id=license') ;
if ($status) {
- $qpa = db_construct_qpa($qpa, ' AND status=$1', array($status));
+ $qpa = db_construct_qpa($qpa, ' AND status = $1',
array($status));
}
$qpa = db_construct_qpa($qpa, ' GROUP BY
group_name,register_time,unix_group_name,groups.group_id,groups.is_template,status,license_name
ORDER BY '.$sqlsortorder);
+ $qpa = db_construct_qpa($qpa, ' OFFSET $1 LIMIT $2', array($start,
$paging));
$res = db_query_qpa($qpa);
+ $totalProjects =
FusionForge::getInstance()->getNumberOfProjects($status);
}
-$headers = array(
- _('Project Name'),
- _('Register Time'),
- _('Unix Name'),
- _('Status'),
- _('Public?'),
- _('License'),
- _('Members'),
- _('Template?')
-);
-
-$headerLinks = array(
- '/admin/grouplist.php?sortorder=group_name',
- '/admin/grouplist.php?sortorder=register_time',
- '/admin/grouplist.php?sortorder=unix_group_name',
- '/admin/grouplist.php?sortorder=status',
- '/admin/grouplist.php?sortorder=is_public',
- '/admin/grouplist.php?sortorder=license_name',
- '/admin/grouplist.php?sortorder=members',
- '/admin/grouplist.php?sortorder=is_template'
-);
-
-$headerClass = array(
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
-);
-
-$headerTitle = array(
- _('Order by project name.'),
- _('Order by register time.'),
- _('Order by Unix name.'),
- _('Order by status.'),
- _('Order by public visibility.'),
- _('Order by licence type.'),
- _('Order by number of members.'),
- _('Order by is the project a template.')
-);
-
-echo $HTML->listTableTop($headers, $headerLinks, '', '', $headerClass,
$headerTitle);
-
$rows = array();
$private_rows = array();
$public_rows = array();
@@ -116,16 +93,16 @@ $ra = RoleAnonymous::getInstance();
while ($grp = db_fetch_array($res)) {
if ($ra->hasPermission('project_read', $grp['group_id'])) {
$grp['is_public'] = 1;
- if (getStringFromRequest('sortorder') == 'is_public') {
+ if ($sortorder == 'is_public') {
$public_rows[] = $grp;
}
} else {
$grp['is_public'] = 0;
- if (getStringFromRequest('sortorder') == 'is_public') {
+ if ($sortorder == 'is_public') {
$private_rows[] = $grp;
}
}
- if (getStringFromRequest('sortorder') != 'is_public') {
+ if ($sortorder != 'is_public') {
$rows[] = $grp;
}
}
@@ -134,37 +111,85 @@ if (getStringFromRequest('sortorder') == 'is_public') {
$rows = array_merge($public_rows, $private_rows);
}
-$i = 1;
-foreach ($rows as $grp) {
-
- if ($grp['status']=='A'){
- $status="active";
- }
- if ($grp['status']=='P'){
- $status="pending";
- }
- if ($grp['status']=='D'){
- $status="deleted";
- }
+if (count($rows)) {
+ $headers = array(
+ _('Project Name'),
+ _('Register Time'),
+ _('Unix Name'),
+ _('Status'),
+ _('Public?'),
+ _('License'),
+ _('Members'),
+ _('Template?')
+ );
+
+ $headerLinks = array(
+
'/admin/grouplist.php?sortorder=group_name&start='.$start.$filter,
+
'/admin/grouplist.php?sortorder=register_time&start='.$start.$filter,
+
'/admin/grouplist.php?sortorder=unix_group_name&start='.$start.$filter,
+ '/admin/grouplist.php?sortorder=status&start='.$start.$filter,
+
'/admin/grouplist.php?sortorder=is_public&start='.$start.$filter,
+
'/admin/grouplist.php?sortorder=license_name&start='.$start.$filter,
+ '/admin/grouplist.php?sortorder=members&start='.$start.$filter,
+
'/admin/grouplist.php?sortorder=is_template&start='.$start.$filter
+ );
+
+ $headerClass = array(
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ );
+
+ $headerTitle = array(
+ _('Order by project name.'),
+ _('Order by register time.'),
+ _('Order by Unix name.'),
+ _('Order by status.'),
+ _('Order by public visibility.'),
+ _('Order by licence type.'),
+ _('Order by number of members.'),
+ _('Order by is the project a template.')
+ );
+ echo $HTML->paging_top($start, $paging, $totalProjects, count($rows),
'/admin/grouplist.php?sortorder='.$sortorder.$filter);
+ echo $HTML->listTableTop($headers, $headerLinks, '', '', $headerClass,
$headerTitle);
+ foreach ($rows as $key => $grp) {
+
+ if ($grp['status']=='A'){
+ $status="active";
+ }
+ if ($grp['status']=='P'){
+ $status="pending";
+ }
+ if ($grp['status']=='D'){
+ $status="deleted";
+ }
- $time_display = "";
- if ($grp['register_time'] != 0) {
- $time_display = date(_('Y-m-d H:i'),$grp['register_time']);
+ $time_display = "";
+ if ($grp['register_time'] != 0) {
+ $time_display = date(_('Y-m-d
H:i'),$grp['register_time']);
+ }
+ $cells = array();
+ $cells[][] =
util_make_link('/admin/groupedit.php?group_id='.$grp['group_id'],
$grp['group_name'], array('title' => _('Click to edit this project.')));
+ $cells[][] = $time_display;
+ $cells[][] = $grp['unix_group_name'];
+ $cells[] = array($grp['status'], 'class' => $status);
+ $cells[][] = $grp['is_public'];
+ $cells[][] = $grp['license_name'];
+ $cells[][] = $grp['members'];
+ $cells[][] = $grp['is_template'];
+ echo $HTML->multiTableRow(array('class' =>
$HTML->boxGetAltRowStyle($key, true)), $cells);
}
- $cells = array();
- $cells[][] =
util_make_link('/admin/groupedit.php?group_id='.$grp['group_id'],
$grp['group_name'], array('title' => _('Click to edit this project.')));
- $cells[][] = $time_display;
- $cells[][] = $grp['unix_group_name'];
- $cells[] = array($grp['status'], 'class' => $status);
- $cells[][] = $grp['is_public'];
- $cells[][] = $grp['license_name'];
- $cells[][] = $grp['members'];
- $cells[][] = $grp['is_template'];
- echo $HTML->multiTableRow(array('class' =>
$HTML->boxGetAltRowStyle($i++, true)), $cells);
+ echo $HTML->listTableBottom();
+ echo $HTML->paging_bottom($start, $paging, $totalProjects,
'/admin/grouplist.php?sortorder='.$sortorder.$filter);
+} else {
+ echo $HTML->information(_('No project found.'));
}
-echo $HTML->listTableBottom();
-
site_admin_footer();
// Local Variables:
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=4dec972f4ba1e6a542e032d3ba8eec5cfb509ddd
commit 4dec972f4ba1e6a542e032d3ba8eec5cfb509ddd
Author: Franck Villaume <[email protected]>
Date: Wed Nov 11 09:02:51 2015 +0100
remove useless code
diff --git a/src/www/admin/userlist.php b/src/www/admin/userlist.php
index 0d53d26..b900f53 100644
--- a/src/www/admin/userlist.php
+++ b/src/www/admin/userlist.php
@@ -156,7 +156,7 @@ function show_users_list($users, $filter = '', $sortorder =
'realname', $start,
global $HTML;
-$paging = 0;
+$paging = 25;
$u = UserManager::instance()->getCurrentUser();
if (getStringFromRequest('setpaging')) {
/* store paging preferences */
@@ -168,9 +168,6 @@ if (getStringFromRequest('setpaging')) {
} else {
$paging = $u->getPreference('paging');
}
-if (!$paging) {
- $paging = 25;
-}
// Administrative functions
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=64f8eab3b8d494119a9645e1c0ec3f9d27e32151
commit 64f8eab3b8d494119a9645e1c0ec3f9d27e32151
Author: Franck Villaume <[email protected]>
Date: Wed Nov 11 09:01:55 2015 +0100
Layout: set default value to functions paging_top & paging_bottom
diff --git a/src/www/include/Layout.class.php b/src/www/include/Layout.class.php
index f0afd4b..c46a518 100644
--- a/src/www/include/Layout.class.php
+++ b/src/www/include/Layout.class.php
@@ -1526,7 +1526,7 @@ if (isset($params['group']) && $params['group']) {
* @param integer $maxElements max number of Elements to
display
* @param string $actionUrl next / prev Url to click
*/
- function paging_top($start, $paging, $totalElements, $maxElements,
$actionUrl) {
+ function paging_top($start = 0, $paging = 25, $totalElements = 0,
$maxElements = 0, $actionUrl = '/') {
$html_content = '';
$sep = '?';
if (strpos($actionUrl, '?')) {
@@ -1552,7 +1552,7 @@ if (isset($params['group']) && $params['group']) {
* @param integer $totalElements total number of Elements to
display
* @param string $actionUrl next / prev Url to click
*/
- function paging_bottom($start, $paging, $totalElements, $actionUrl) {
+ function paging_bottom($start = 0, $paging = 25, $totalElements = 0,
$actionUrl = '/') {
$html_content = '';
$sep = '?';
if (strpos($actionUrl, '?')) {
-----------------------------------------------------------------------
Summary of changes:
src/common/include/FusionForge.class.php | 35 +++++-
src/www/admin/grouplist.php | 197 +++++++++++++++++--------------
src/www/admin/userlist.php | 5 +-
src/www/include/Layout.class.php | 4 +-
src/www/project/admin/massadd.php | 17 ++-
src/www/project/admin/massfinish.php | 16 +--
6 files changed, 159 insertions(+), 115 deletions(-)
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits