[Evolvis-commits] r154: merge up to ↓ except translations↵ svn+ssh ://mirabilos@ svn.evolvis.org/svnroot/evolvis/vendor/gforge-4.8@ 153↵
mirabilos at evolvis.org
mirabilos at evolvis.org
Mon Sep 21 11:00:25 CEST 2009
Author: mirabilos
Date: 2009-09-21 09:00:23 +0000 (Mon, 21 Sep 2009)
New Revision: 154
Added:
trunk/gforge_base/gforge-4.8/
trunk/gforge_base/gforge-4.8/db/20021213-1.sql
trunk/gforge_base/gforge-4.8/db/20021213-2-doc_data-migrate.php
trunk/gforge_base/gforge-4.8/db/20021223-1-drops.sql
trunk/gforge_base/gforge-4.8/db/20021223-2.sql
trunk/gforge_base/gforge-4.8/db/20030102-1-drops.sql
trunk/gforge_base/gforge-4.8/db/20030102-2.sql
trunk/gforge_base/gforge-4.8/db/20030113-1-drops.sql
trunk/gforge_base/gforge-4.8/db/20030113-2.sql
trunk/gforge_base/gforge-4.8/db/20050224-1-drop.sql
trunk/gforge_base/gforge-4.8/db/20050224-2.sql
trunk/gforge_base/gforge-4.8/db/20050325-2.sql
trunk/gforge_base/gforge-4.8/db/20050325-3.php
trunk/gforge_base/gforge-4.8/db/20050325-4-drop.sql
trunk/gforge_base/gforge-4.8/db/20050325-5.sql
trunk/gforge_base/gforge-4.8/db/20050822-1-drops.sql
trunk/gforge_base/gforge-4.8/db/20050822-2.sql
trunk/gforge_base/gforge-4.8/db/20060216-1-drops.sql
trunk/gforge_base/gforge-4.8/db/20060216-2-debian-nocommit.sql
trunk/gforge_base/gforge-4.8/db/20060216-2.sql
trunk/gforge_base/gforge-4.8/image-sources/fusionforge-logo.xcf
trunk/gforge_base/gforge-4.8/www/images/fusionforge-resized.png
Removed:
trunk/gforge_base/gforge-4.8/db/20021213.sql
trunk/gforge_base/gforge-4.8/db/20021213_doc_data-migrate.php
trunk/gforge_base/gforge-4.8/db/20021223-drops.sql
trunk/gforge_base/gforge-4.8/db/20021223.sql
trunk/gforge_base/gforge-4.8/db/20030102-drops.sql
trunk/gforge_base/gforge-4.8/db/20030102.sql
trunk/gforge_base/gforge-4.8/db/20030113-drops.sql
trunk/gforge_base/gforge-4.8/db/20030113.sql
trunk/gforge_base/gforge-4.8/db/20050224-drop.sql
trunk/gforge_base/gforge-4.8/db/20050224.sql
trunk/gforge_base/gforge-4.8/db/20050325-1.sql
trunk/gforge_base/gforge-4.8/db/20050325-2.php
trunk/gforge_base/gforge-4.8/db/20050325-3-drop.sql
trunk/gforge_base/gforge-4.8/db/20050325-3.sql
trunk/gforge_base/gforge-4.8/db/20050822-drops.sql
trunk/gforge_base/gforge-4.8/db/20050822.sql
trunk/gforge_base/gforge-4.8/db/20060216-drops.sql
trunk/gforge_base/gforge-4.8/db/20060216-nocommit.sql
trunk/gforge_base/gforge-4.8/db/20060216.sql
trunk/gforge_base/gforge-4.8/image-sources/fusionforge-logo.xcf
trunk/gforge_base/gforge-4.8/www/images/fusionforge-resized.png
trunk/gforge_base/gforge-4.8~rc2/
Modified:
trunk/gforge_base/gforge-4.8/common/forum/Forum.class.php
trunk/gforge_base/gforge-4.8/common/forum/ForumFactory.class.php
trunk/gforge_base/gforge-4.8/common/forum/ForumMessage.class.php
trunk/gforge_base/gforge-4.8/common/frs/FRSPackage.class.php
trunk/gforge_base/gforge-4.8/common/include/FusionForge.class.php
trunk/gforge_base/gforge-4.8/common/include/Group.class.php
trunk/gforge_base/gforge-4.8/common/include/Role.class.php
trunk/gforge_base/gforge-4.8/common/include/System.class.php
trunk/gforge_base/gforge-4.8/common/include/User.class.php
trunk/gforge_base/gforge-4.8/common/include/account.php
trunk/gforge_base/gforge-4.8/common/include/system/pgsql.class.php
trunk/gforge_base/gforge-4.8/common/mail/MailingList.class.php
trunk/gforge_base/gforge-4.8/common/reporting/Report.class.php
trunk/gforge_base/gforge-4.8/common/search/SearchQuery.class.php
trunk/gforge_base/gforge-4.8/common/tracker/ArtifactExtraField.class.php
trunk/gforge_base/gforge-4.8/db/20010304-4-artifact-convert-files.php
trunk/gforge_base/gforge-4.8/db/20040826_migrateforum.php
trunk/gforge_base/gforge-4.8/db/20040826_migraterbac.php
trunk/gforge_base/gforge-4.8/db/20041211-syncmail.php
trunk/gforge_base/gforge-4.8/db/20041222-1-delete-task-artifact.php
trunk/gforge_base/gforge-4.8/db/20050127-frs-reorg.php
trunk/gforge_base/gforge-4.8/db/20050617.php
trunk/gforge_base/gforge-4.8/db/20050804-2.php
trunk/gforge_base/gforge-4.8/db/20051003.sql
trunk/gforge_base/gforge-4.8/db/upgrade-db.php
trunk/gforge_base/gforge-4.8/deb-specific/db-upgrade.pl
trunk/gforge_base/gforge-4.8/debian/changelog
trunk/gforge_base/gforge-4.8/debian/patches/use-snoopy-from-distro.dpatch
trunk/gforge_base/gforge-4.8/fusionforge.spec
trunk/gforge_base/gforge-4.8/plugins/cvstracker/bin/post.php
trunk/gforge_base/gforge-4.8/plugins/cvstracker/common/cvstrackerPlugin.class.php
trunk/gforge_base/gforge-4.8/plugins/cvstracker/www/newcommit.php
trunk/gforge_base/gforge-4.8/plugins/scmcvs/bin/aclcheck.php
trunk/gforge_base/gforge-4.8/plugins/scmcvs/common/Snoopy.class.php
trunk/gforge_base/gforge-4.8/plugins/scmcvs/cron.d/fusionforge-plugin-scmcvs
trunk/gforge_base/gforge-4.8/plugins/scmcvs/cronjobs/history_parse.php
trunk/gforge_base/gforge-4.8/plugins/scmsvn/db/scmsvn-init.sql
trunk/gforge_base/gforge-4.8/plugins/svntracker/common/svntrackerPlugin.class.php
trunk/gforge_base/gforge-4.8/plugins/svntracker/www/newcommit.php
trunk/gforge_base/gforge-4.8/plugins/wiki/README
trunk/gforge_base/gforge-4.8/www/account/change_email.php
trunk/gforge_base/gforge-4.8/www/account/lostpw.php
trunk/gforge_base/gforge-4.8/www/admin/useredit.php
trunk/gforge_base/gforge-4.8/www/admin/userlist.php
trunk/gforge_base/gforge-4.8/www/docman/admin/index.php
trunk/gforge_base/gforge-4.8/www/docman/index.php
trunk/gforge_base/gforge-4.8/www/docman/search.php
trunk/gforge_base/gforge-4.8/www/export/rss20_activity.php
trunk/gforge_base/gforge-4.8/www/export/rss20_newreleases.php
trunk/gforge_base/gforge-4.8/www/export/rss20_news.php
trunk/gforge_base/gforge-4.8/www/export/rss20_projects.php
trunk/gforge_base/gforge-4.8/www/export/rss20_version.php
trunk/gforge_base/gforge-4.8/www/export/rss_sfnewreleases.php
trunk/gforge_base/gforge-4.8/www/export/rss_sfnews.php
trunk/gforge_base/gforge-4.8/www/export/rss_sfprojects.php
trunk/gforge_base/gforge-4.8/www/export/rss_utils.inc
trunk/gforge_base/gforge-4.8/www/export/search_plugin.php
trunk/gforge_base/gforge-4.8/www/forum/admin/ForumAdmin.class.php
trunk/gforge_base/gforge-4.8/www/forum/admin/index.php
trunk/gforge_base/gforge-4.8/www/forum/attachment.php
trunk/gforge_base/gforge-4.8/www/forum/include/AttachManager.class.php
trunk/gforge_base/gforge-4.8/www/forum/index.php
trunk/gforge_base/gforge-4.8/www/frs/admin/index.php
trunk/gforge_base/gforge-4.8/www/frs/index.php
trunk/gforge_base/gforge-4.8/www/frs/monitor.php
trunk/gforge_base/gforge-4.8/www/include/features_boxes.php
trunk/gforge_base/gforge-4.8/www/include/logger.php
trunk/gforge_base/gforge-4.8/www/include/pre.php
trunk/gforge_base/gforge-4.8/www/include/project_home.php
trunk/gforge_base/gforge-4.8/www/include/user_home.php
trunk/gforge_base/gforge-4.8/www/my/index.php
trunk/gforge_base/gforge-4.8/www/project/admin/massfinish.php
trunk/gforge_base/gforge-4.8/www/reporting/toolspie.php
trunk/gforge_base/gforge-4.8/www/reporting/useract_graph.php
trunk/gforge_base/gforge-4.8/www/scm/reporting/commits_graph.php
trunk/gforge_base/gforge-4.8/www/stats/site_stats_utils.php
trunk/gforge_base/gforge-4.8/www/themes/css/gforge.css
trunk/gforge_base/gforge-4.8/www/themes/gforge/Theme.class.php
Log:
merge up to â except translations
svn+ssh://mirabilos@svn.evolvis.org/svnroot/evolvis/vendor/gforge-4.8@153
Copied: trunk/gforge_base/gforge-4.8 (from rev 152, trunk/gforge_base/gforge-4.8~rc2)
Modified: trunk/gforge_base/gforge-4.8/common/forum/Forum.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/forum/Forum.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/forum/Forum.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -600,7 +600,7 @@
allow_anonymous=$4,
moderation_level=$5,
is_public=$6
- WHERE group_id=$7,
+ WHERE group_id=$7
AND group_forum_id=$8',
array (strtolower($forum_name),
htmlspecialchars($description),
Modified: trunk/gforge_base/gforge-4.8/common/forum/ForumFactory.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/forum/ForumFactory.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/forum/ForumFactory.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -160,8 +160,8 @@
AND is_public < 3
AND group_forum_id IN (SELECT role_setting.ref_id
FROM role_setting, user_group
- WHERE role_setting.value::integer >= 0
- AND role_setting.section_name = $2
+ WHERE role_setting.section_name = $2
+ AND role_setting.value::integer >= 0
AND role_setting.ref_id=forum_group_list_vw.group_forum_id
AND user_group.role_id = role_setting.role_id
AND user_group.user_id=$3)
Modified: trunk/gforge_base/gforge-4.8/common/forum/ForumMessage.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/forum/ForumMessage.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/forum/ForumMessage.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -639,7 +639,9 @@
$recipients = array ();
foreach ($ids as $id) {
$recipient = user_get_object ($id) ;
- $recipients[] = $recipient ;
+ if ($recipient->isActive()) {
+ $recipients[] = $recipient ;
+ }
}
if ($this->Forum->getSendAllPostsTo()) {
$sapt = explode (',', $this->Forum->getSendAllPostsTo()) ;
@@ -663,10 +665,11 @@
$body = sprintf(_("\nRead and respond to this message at: \n%s"), util_make_url ('/forum/message.php?msg_id='.$this->getID()));
if ($GLOBALS['sys_use_mail']) {
- $body .= stripcslashes(sprintf(_('\nOr by replying to this e-mail entering your response between the following markers: '.
- '\n%1$s'.
- '\n(enter your response here)'.
- '\n%1$s'), FORUM_MAIL_MARKER));
+ $body .= stripcslashes(sprintf(_('
+Or reply to this e-mail entering your response between the following markers:
+%1$s
+(enter your response here)
+%1$s'), FORUM_MAIL_MARKER));
}
$body .= sprintf(_("\n\n\nBy: %s\n"), $this->getPosterRealName());
@@ -708,7 +711,7 @@
$subject="[" . $this->Forum->getUnixName() ."][".$this->getID()."] ".util_unconvert_htmlspecialchars($this->getSubject());
- util_send_message($dest_email,$subject,$body,"noreply@".$GLOBALS['sys_default_domain'],'Forum',$extra_headers);
+ util_send_message($dest_email,$subject,$body,"noreply@".$GLOBALS['sys_default_domain'],'','Forum',$extra_headers);
}
// Switch back to the user language settings
@@ -798,7 +801,7 @@
$msg_id = $this->getID();
$res = db_query_params ('UPDATE forum
SET group_forum_id=$1, posted_by=$2, subject=$3,
- body=$4, post_date=$4, is_followup_to=$6,
+ body=$4, post_date=$5, is_followup_to=$6,
thread_id=$7, most_recent_date=$8
WHERE msg_id=$9',
array ($group_forum_id,
Modified: trunk/gforge_base/gforge-4.8/common/frs/FRSPackage.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/frs/FRSPackage.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/frs/FRSPackage.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -331,9 +331,6 @@
if (!session_loggedin()) {
return false;
}
- $sql="SELECT * FROM filemodule_monitor
- WHERE user_id='".user_getid()."'
- AND filemodule_id='".$this->getID()."';";
$result = db_query_params ('SELECT * FROM filemodule_monitor WHERE user_id=$1 AND filemodule_id=$2',
array (user_getid(),
Modified: trunk/gforge_base/gforge-4.8/common/include/FusionForge.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/FusionForge.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/FusionForge.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -36,7 +36,7 @@
$this->Error();
$this->software_name = 'FusionForge' ;
- $this->software_version = '4.8rc1' ;
+ $this->software_version = '4.8' ;
return true;
}
Modified: trunk/gforge_base/gforge-4.8/common/include/Group.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/Group.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/Group.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -282,6 +282,7 @@
function create(&$user, $group_name, $unix_name, $description, $purpose, $unix_box='shell1', $scm_box='cvs1', $is_public=1) {
// $user is ignored - anyone can create pending group
+ global $SYS;
if ($this->getID()!=0) {
$this->setError(_('Group::create: Group object already exists'));
return false;
@@ -290,6 +291,9 @@
} else if (!account_groupnamevalid($unix_name)) {
$this->setError(_('Invalid Unix name'));
return false;
+ } else if (!$SYS->sysUseUnixName($unix_name)) {
+ $this->setError(_('Unix name already taken'));
+ return false;
} else if (db_numrows(db_query_params('SELECT group_id FROM groups WHERE unix_group_name=$1',
array ($unix_name))) > 0) {
$this->setError(_('Unix name already taken'));
@@ -2161,7 +2165,7 @@
$admin =& user_get_object($row_admins['user_id']);
setup_gettext_for_user ($admin) ;
- $message=stripcslashes(sprintf(_('Your project registration for %4$s has been approved.
+ $message=sprintf(_('Your project registration for %4$s has been approved.
Project Full Name: %1$s
Project Unix Name: %2$s
@@ -2195,7 +2199,7 @@
$this->getPublicName(),
$this->getUnixName(),
util_make_url ('/project/admin/?group_id='.$this->getID()),
- $GLOBALS['sys_name']));
+ $GLOBALS['sys_name']);
util_send_message($row_admins['email'], sprintf(_('%1$s Project Approved'), $GLOBALS['sys_name']), $message);
@@ -2233,18 +2237,18 @@
$admin =& user_get_object($row_admins['user_id']);
setup_gettext_for_user ($admin) ;
- $response=stripcslashes(sprintf(_('Your project registration for %3$s has been denied.
+ $response=sprintf(_('Your project registration for %3$s has been denied.
Project Full Name: %1$s
Project Unix Name: %2$s
Reasons for negative decision:
-'), $this->getPublicName(), $this->getUnixName(), $GLOBALS['sys_name']));
+'), $this->getPublicName(), $this->getUnixName(), $GLOBALS['sys_name']);
// Check to see if they want to send a custom rejection response
if ($response_id == 0) {
- $response .= stripcslashes($message);
+ $response .= $message;
} else {
$response .= db_result (
db_query_params('SELECT response_text FROM canned_responses WHERE response_id=$1', array ($response_id)),
@@ -2299,7 +2303,7 @@
$admin =& user_get_object(db_result($res,$i,'user_id'));
setup_gettext_for_user ($admin) ;
- $message=stripcslashes(sprintf(_('New %1$s Project Submitted
+ $message=sprintf(_('New %1$s Project Submitted
Project Full Name: %2$s
Submitted Description: %3$s
@@ -2312,7 +2316,7 @@
util_unconvert_htmlspecialchars($this->getRegistrationPurpose()),
util_make_url ('/admin/approve-pending.php'),
$submitter->getRealName(),
- $submitter->getUnixName()));
+ $submitter->getUnixName());
util_send_message($admin_email, sprintf(_('New %1$s Project Submitted'), $GLOBALS['sys_name']), $message);
setup_gettext_from_context();
}
@@ -2321,12 +2325,12 @@
$email = $submitter->getEmail() ;
setup_gettext_for_user ($submitter) ;
- $message=stripcslashes(sprintf(_('New %1$s Project Submitted
+ $message=sprintf(_('New %1$s Project Submitted
Project Full Name: %2$s
Submitted Description: %3$s
-The %1$s admin team will now examine your project submission. You will be notified of their decision.'), $GLOBALS['sys_name'], $this->getPublicName(), util_unconvert_htmlspecialchars($this->getRegistrationPurpose()), $GLOBALS['sys_default_domain']));
+The %1$s admin team will now examine your project submission. You will be notified of their decision.'), $GLOBALS['sys_name'], $this->getPublicName(), util_unconvert_htmlspecialchars($this->getRegistrationPurpose()), $GLOBALS['sys_default_domain']);
util_send_message($email, sprintf(_('New %1$s Project Submitted'), $GLOBALS['sys_name']), $message);
setup_gettext_from_context();
Modified: trunk/gforge_base/gforge-4.8/common/include/Role.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/Role.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/Role.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -345,7 +345,7 @@
if (!$res || db_affected_rows($res) < 1) {
$res = db_query_params ('INSERT INTO role_setting (role_id, section_name, ref_id, value) VALUES ($1, $2, $3, $4)',
array ($this->getID(),
- $usecrion_name,
+ $usection_name,
$uref_id,
$uvalue)) ;
if (!$res) {
Modified: trunk/gforge_base/gforge-4.8/common/include/System.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/System.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/System.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -34,6 +34,17 @@
return true;
}
+ /**
+ * sysUseUnixName() - Check if user/group used the unix_name
+ *
+ * @param string The unix_name to check
+ * @returns true if used/false is free
+ *
+ */
+ function sysUseUnixName($unix_name) {
+ return true;
+ }
+
/*
* User management functions
*/
Modified: trunk/gforge_base/gforge-4.8/common/include/User.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/User.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/User.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -216,6 +216,7 @@
function create($unix_name,$firstname,$lastname,$password1,$password2,$email,
$mail_site,$mail_va,$language_id,$timezone,$jabber_address,$jabber_only,$theme_id,
$unix_box='shell',$address='',$address2='',$phone='',$fax='',$title='',$ccode='US',$send_mail=true) {
+ global $SYS;
if (!$theme_id) {
$this->setError(_('You must supply a theme'));
return false;
@@ -249,6 +250,10 @@
$this->setError(_('Invalid Unix Name.'));
return false;
}
+ if (!$SYS->sysUseUnixName($unix_name)) {
+ $this->setError(_('Unix name already taken'));
+ return false;
+ }
if (!validate_email($email)) {
$this->setError(_('Invalid Email Address'));
return false;
@@ -303,7 +308,7 @@
$ccode,
$theme_id)) ;
if (!$result) {
- $this->setError(_('Insert Failed') .db_error().$sql);
+ $this->setError(_('Insert Failed') . db_error());
db_rollback();
return false;
} else {
@@ -771,8 +776,8 @@
}
if ($GLOBALS['sys_require_unique_email']) {
- if (db_numrows(db_query_params('SELECT user_id FROM users WHERE email ILIKE $1 OR email_new ILIKE $2',
- array ($email, $email))) > 0) {
+ if (db_numrows(db_query_params('SELECT user_id FROM users WHERE user_id!=$1 AND (email ILIKE $2 OR email_new ILIKE $2)',
+ array ($this->getID(), $email))) > 0) {
$this->setError(_('User with this email already exists.'));
return false;
}
@@ -823,8 +828,8 @@
}
if ($GLOBALS['sys_require_unique_email']) {
- if (db_numrows(db_query_params ('SELECT user_id FROM users WHERE email ILIKE $1 OR email_new ILIKE $1',
- array ($email))) > 0) {
+ if (db_numrows(db_query_params('SELECT user_id FROM users WHERE user_id!=$1 AND (email ILIKE $2 OR email_new ILIKE $2)',
+ array ($this->getID(), $email))) > 0) {
$this->setError(_('User with this email already exists.'));
return false;
}
@@ -1385,7 +1390,7 @@
//
// An optimization in session_getdata lets us pre-fetch this in most cases.....
//
- if (!$this->data_array['dirname']) {
+ if (!isset($this->data_array['dirname']) || !$this->data_array['dirname']) {
$res = db_query_params ('SELECT dirname FROM themes WHERE theme_id=$1',
array ($this->getThemeID())) ;
$this->theme=db_result($res,0,'dirname');
Modified: trunk/gforge_base/gforge-4.8/common/include/account.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/account.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/account.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -73,9 +73,15 @@
$GLOBALS['register_error'] = _('Name is reserved.');
return 0;
}
- if ( exec("getent passwd $name") != "" ){
- $GLOBALS['register_error'] = _('That username already exists.');
- return 0;
+ if ($sys_use_shell) {
+ if ( exec("getent passwd $name") != "" ){
+ $GLOBALS['register_error'] = _('That username already exists.');
+ return 0;
+ }
+ if ( exec("getent group $name") != "" ){
+ $GLOBALS['register_error'] = _('That username already exists.');
+ return 0;
+ }
}
if (eregi("^(anoncvs_)",$name)) {
$GLOBALS['register_error'] = _('Name is reserved for CVS.');
Modified: trunk/gforge_base/gforge-4.8/common/include/system/pgsql.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/include/system/pgsql.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/include/system/pgsql.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -61,6 +61,24 @@
return true;
}
+ /**
+ * sysUseUnixName() - Check if user/group used the unix_name
+ *
+ * @param string The unix_name to check
+ * @returns true if used/false is free
+ *
+ */
+ function sysUseUnixName($unix_name) {
+ $res1 = db_query_params ('SELECT user_id FROM users
+ WHERE user_name=$1',array($unix_name));
+ $res2 = db_query_params ('SELECT group_id FROM groups
+ WHERE unix_group_name=$1',array($unix_name));
+ if ( db_numrows($res1) == 0 && db_numrows($res2) == 0 ){
+ return true;
+ }
+ return false;
+ }
+
/*
* User management functions
*/
Modified: trunk/gforge_base/gforge-4.8/common/mail/MailingList.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/mail/MailingList.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/mail/MailingList.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -176,7 +176,7 @@
$this->setInvalidEmailError();
return false;
} else {
- $mailBody = stripcslashes(sprintf(_('A mailing list will be created on %1$s in 6-24 hours
+ $mailBody = sprintf(_('A mailing list will be created on %1$s in 6-24 hours
and you are the list administrator.
This list is: %3$s@%2$s .
@@ -193,7 +193,7 @@
Thank you for registering your project with %1$s.
-- the %1$s staff
-'), $GLOBALS['sys_name'], $GLOBALS['sys_lists_host'], $realListName, $this->getExternalInfoUrl(), $this->getExternalAdminUrl(), $listPassword));
+'), $GLOBALS['sys_name'], $GLOBALS['sys_lists_host'], $realListName, $this->getExternalInfoUrl(), $this->getExternalAdminUrl(), $listPassword);
$mailSubject = sprintf(_('%1$s New Mailing List'), $GLOBALS['sys_name']);
util_send_message($userEmail, $mailSubject, $mailBody, 'admin@'.$GLOBALS['sys_default_domain']);
Modified: trunk/gforge_base/gforge-4.8/common/reporting/Report.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/reporting/Report.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/reporting/Report.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -106,8 +106,14 @@
function setDates($result,$column) {
$arr =& util_result_column_to_array($result,$column);
+ if(isset($this->span) && $this->span == REPORT_TYPE_MONTHLY) {
+ $format = 'M Y';
+ } else {
+ $format = 'M d';
+ }
+
for ($i=0; $i<count($arr); $i++) {
- $this->labels[$i] = date('M d',$arr[$i]);
+ $this->labels[$i] = date($format,$arr[$i]);
}
}
Modified: trunk/gforge_base/gforge-4.8/common/search/SearchQuery.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/search/SearchQuery.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/search/SearchQuery.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -114,13 +114,13 @@
if(is_numeric($words) && $this->implementsSearchById()) {
$this->searchId = (int) $words;
} else {
- $words = htmlspecialchars($words);
- $words = strtr($words, array('%' => '', '_' => ''));
$words = preg_replace("/[ \t]+/", ' ', $words);
if(strlen($words) < 3) {
$this->setError(_('Error: search query too short'));
return;
}
+ $words = htmlspecialchars($words);
+ $words = strtr($words, array('%' => '\%', '_' => '\_'));
$this->words = array();
$this->phrases = array();
$phrase = '';
Modified: trunk/gforge_base/gforge-4.8/common/tracker/ArtifactExtraField.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/common/tracker/ArtifactExtraField.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/common/tracker/ArtifactExtraField.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -68,7 +68,7 @@
}
//did ArtifactType have an error?
if ($ArtifactType->isError()) {
- $this->setError('ArtifactExtraField: '.$Artifact->getErrorMessage());
+ $this->setError('ArtifactExtraField: '.$ArtifactType->getErrorMessage());
return false;
}
$this->ArtifactType =& $ArtifactType;
Modified: trunk/gforge_base/gforge-4.8/db/20010304-4-artifact-convert-files.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20010304-4-artifact-convert-files.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20010304-4-artifact-convert-files.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,6 +1,7 @@
#! /usr/bin/php5
<?php
+require_once dirname(__FILE__).'/../www/env.inc.php';
require $gfwww.'include/squal_pre.php';
db_begin();
Added: trunk/gforge_base/gforge-4.8/db/20021213-1.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20021213-1.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20021213-1.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,10 @@
+--
+-- Making docman binary safe
+--
+alter table doc_data add column filename text;
+alter table doc_data add column filetype text;
+
+--
+-- NOTE THE doc_data-migration.php SCRIPT
+--
+
Added: trunk/gforge_base/gforge-4.8/db/20021213-2-doc_data-migrate.php
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20021213-2-doc_data-migrate.php (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20021213-2-doc_data-migrate.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,45 @@
+#! /usr/bin/php5
+<?php
+
+/**
+ * Data migration for the doc_manager - between pre6 and pre7
+ *
+ * Copyright 2002 (c) GFORGE LLC
+ */
+
+require_once dirname(__FILE__).'/../www/env.inc.php';
+require $gfwww.'include/squal_pre.php';
+
+ at ini_set('memory_limit', '128M');
+
+// drop and recreate page cache
+//
+//SELECT * FROM doc_data WHERE filename is null;
+db_begin();
+
+$res=db_query("SELECT * FROM doc_data WHERE filename IS NULL");
+if (!$res) {
+ echo db_error();
+ db_rollback();
+ exit();
+}
+$rows=db_numrows($res);
+
+for ($i=0; $i<$rows; $i++) {
+
+ $res2=db_query("UPDATE doc_data
+ SET
+ data='". base64_encode( util_unconvert_htmlspecialchars( db_result($res,$i,'data') )) ."',
+ filename='file".db_result($res,$i,'docid').".html',
+ filetype='text/html'
+ WHERE docid='".db_result($res,$i,'docid')."'");
+ if (!$res2 || db_affected_rows($res2) < 1) {
+ echo 'DB ERROR'.db_error();
+ db_rollback();
+ exit;
+ }
+}
+
+db_commit();
+echo "SUCCESS\n";
+?>
Deleted: trunk/gforge_base/gforge-4.8/db/20021213.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20021213.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20021213.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,10 +0,0 @@
---
--- Making docman binary safe
---
-alter table doc_data add column filename text;
-alter table doc_data add column filetype text;
-
---
--- NOTE THE doc_data-migration.php SCRIPT
---
-
Deleted: trunk/gforge_base/gforge-4.8/db/20021213_doc_data-migrate.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20021213_doc_data-migrate.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20021213_doc_data-migrate.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,42 +0,0 @@
-#! /usr/bin/php5
-<?php
-
-/**
- * Data migration for the doc_manager - between pre6 and pre7
- *
- * Copyright 2002 (c) GFORGE LLC
- */
-
-require $gfwww.'include/squal_pre.php';
-
-// drop and recreate page cache
-//
-//SELECT * FROM doc_data WHERE filename is null;
-db_begin();
-
-$res=db_query("SELECT * FROM doc_data WHERE filename IS NULL");
-if (!$res) {
- echo db_error();
- db_rollback();
- exit();
-}
-$rows=db_numrows($res);
-
-for ($i=0; $i<$rows; $i++) {
-
- $res2=db_query("UPDATE doc_data
- SET
- data='". base64_encode( util_unconvert_htmlspecialchars( db_result($res,$i,'data') )) ."',
- filename='file".db_result($res,$i,'docid').".html',
- filetype='text/html'
- WHERE docid='".db_result($res,$i,'docid')."'");
- if (!$res2 || db_affected_rows($res2) < 1) {
- echo 'DB ERROR'.db_error();
- db_rollback();
- exit;
- }
-}
-
-db_commit();
-echo "SUCCESS\n";
-?>
Added: trunk/gforge_base/gforge-4.8/db/20021223-1-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20021223-1-drops.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20021223-1-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,13 @@
+ALTER TABLE project_task DROP CONSTRAINT "project_task_group_project_id_f" RESTRICT;
+DROP TABLE project_category;
+DROP SEQUENCE project_categor_category_id_seq;
+DROP VIEW project_task_vw;
+DROP TABLE project_task_artifact;
+DROP TABLE project_group_forum;
+DROP TABLE project_group_doccat;
+DROP VIEW project_depend_vw;
+DROP VIEW project_dependon_vw;
+DROP VIEW project_history_user_vw;
+DROP VIEW project_message_user_vw;
+DROP TRIGGER projtask_update_depend_trig ON project_task;
+DROP TRIGGER projtask_insert_depend_trig ON project_task;
Added: trunk/gforge_base/gforge-4.8/db/20021223-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20021223-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20021223-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,235 @@
+--
+-- rename old "date" fields to be SQL compliant
+--
+alter table project_history rename column date to mod_date;
+
+--
+-- Change project_task to delete on removal of project
+--
+
+ALTER TABLE project_task
+ ADD CONSTRAINT projecttask_groupprojectid_fk FOREIGN KEY (group_project_id)
+ REFERENCES project_group_list(group_project_id) ON DELETE CASCADE;
+
+--
+-- Add email address to send all task updates to
+--
+ALTER TABLE project_group_list ADD COLUMN send_all_posts_to text;
+
+
+--
+-- Each task can be assigned a category
+--
+CREATE SEQUENCE "project_categor_category_id_seq" ;
+CREATE TABLE project_category (
+category_id integer DEFAULT nextval('project_categor_category_id_seq'::text) NOT NULL,
+group_project_id int
+ CONSTRAINT projcat_projgroupid_fk REFERENCES project_group_list(group_project_id) ON DELETE CASCADE,
+category_name text,
+ CONSTRAINT "project_category_pkey" Primary Key ("category_id")
+);
+CREATE INDEX projectcategory_groupprojectid ON project_category(group_project_id);
+INSERT INTO project_category VALUES ('100','1','None');
+SELECT SETVAL('project_categor_category_id_seq',100);
+
+--
+-- Add category_id
+--
+ALTER TABLE project_task ADD COLUMN category_id int REFERENCES project_category(category_id);
+UPDATE project_task SET category_id=100;
+
+--
+-- Convenience view required for ProjectTask object
+--
+CREATE VIEW project_task_vw AS
+SELECT project_task.*,project_category.category_name,project_status.status_name
+FROM project_task
+FULL JOIN project_category ON (project_category.category_id=project_task.category_id)
+NATURAL JOIN project_status;
+
+--
+-- Each task can have multiple artifacts associated with it
+--
+CREATE TABLE project_task_artifact (
+project_task_id int
+ CONSTRAINT projtaskartifact_projtaskid_fk REFERENCES project_task(project_task_id) ON DELETE CASCADE,
+artifact_id int
+ CONSTRAINT projtaskartifact_artifactid_fk REFERENCES artifact(artifact_id) ON DELETE CASCADE);
+CREATE INDEX projecttaskartifact_projecttaskid ON project_task_artifact (project_task_id);
+CREATE INDEX projecttaskartifact_artifactid ON project_task_artifact (artifact_id);
+
+--
+-- Relation to forums dedicated to this project
+--
+CREATE TABLE project_group_forum (
+group_project_id int
+ CONSTRAINT projgroupforum_projgroupid_fk REFERENCES project_group_list(group_project_id) ON DELETE CASCADE,
+group_forum_id int
+ CONSTRAINT projgroupforum_groupforumid_fk REFERENCES forum_group_list(group_forum_id) ON DELETE CASCADE);
+CREATE INDEX projectgroupforum_groupprojectid ON project_group_forum(group_project_id);
+CREATE INDEX projectgroupforum_groupforumid ON project_group_forum(group_forum_id);
+
+--
+-- Relation to a category of docs for this project
+--
+CREATE TABLE project_group_doccat (
+group_project_id int
+ CONSTRAINT projgroupdoccat_projgroupid_fk REFERENCES project_group_list(group_project_id) ON DELETE CASCADE,
+doc_group_id int
+ CONSTRAINT projgroupdoccat_docgroupid_fk REFERENCES doc_groups(doc_group) ON DELETE CASCADE);
+CREATE INDEX projectgroupdoccat_groupprojectid ON project_group_forum(group_project_id);
+CREATE INDEX projectgroupdoccat_groupgroupid ON project_group_doccat(doc_group_id);
+
+--
+--
+--
+CREATE VIEW project_depend_vw AS
+ SELECT pt.project_task_id,pd.is_dependent_on_task_id,pt.end_date,pt.start_date
+ FROM project_task pt NATURAL JOIN project_dependencies pd;
+
+CREATE VIEW project_dependon_vw AS
+ SELECT pd.project_task_id,pd.is_dependent_on_task_id,pt.end_date,pt.start_date
+ FROM project_task pt FULL JOIN project_dependencies pd ON (pd.is_dependent_on_task_id=pt.project_task_id);
+
+CREATE VIEW project_history_user_vw AS
+ SELECT users.realname,users.email,users.user_name,project_history.*
+ FROM users,project_history
+ WHERE project_history.mod_by=users.user_id;
+
+--
+-- Move project messages into separate table from project_history
+--
+CREATE TABLE project_messages (
+project_message_id SERIAL,
+project_task_id INT NOT NULL REFERENCES project_task(project_task_id) ON DELETE CASCADE,
+body text,
+posted_by INT NOT NULL REFERENCES users(user_id),
+postdate int NOT NULL);
+
+--BEGIN;
+INSERT INTO project_messages (project_task_id,body,posted_by,postdate)
+ SELECT project_task_id,old_value,mod_by,mod_date
+ FROM project_history
+ WHERE field_name='details';
+
+DELETE FROM project_history WHERE field_name='details';
+
+--COMMIT;
+
+CREATE VIEW project_message_user_vw AS
+ SELECT users.realname,users.email,users.user_name,project_messages.*
+ FROM users,project_messages
+ WHERE project_messages.posted_by=users.user_id;
+--
+-- Remove all existing dependencies, as they may be problematic.
+--
+DELETE FROM project_dependencies;
+
+--
+-- Function to enforce dependencies in the table structure
+--
+
+CREATE OR REPLACE FUNCTION projtask_update_depend () RETURNS OPAQUE AS '
+DECLARE
+ dependent RECORD;
+ dependon RECORD;
+ delta INTEGER;
+BEGIN
+ --
+ -- See if tasks that are dependent on us are OK
+ -- See if the end date has changed
+ --
+ IF NEW.end_date > OLD.end_date THEN
+ --
+ -- If the end date pushed back, push back dependent tasks
+ --
+ FOR dependent IN SELECT * FROM project_depend_vw WHERE is_dependent_on_task_id=NEW.project_task_id LOOP
+ --
+ -- Some dependent tasks may not start immediately
+ --
+ IF dependent.start_date > OLD.end_date THEN
+ IF dependent.start_date < NEW.end_date THEN
+ delta := NEW.end_date-dependent.start_date;
+ UPDATE project_task
+ SET start_date=start_date+delta,
+ end_date=end_date+delta
+ WHERE project_task_id=dependent.project_task_id;
+ END IF;
+ ELSE
+ IF dependent.start_date = OLD.end_date THEN
+ delta := NEW.end_date-OLD.end_date;
+ UPDATE project_task
+ SET start_date=start_date+delta,
+ end_date=end_date+delta
+ WHERE project_task_id=dependent.project_task_id;
+ END IF;
+ END IF;
+ END LOOP;
+ ELSIF NEW.end_date < OLD.end_date THEN
+ --
+ -- If the end date moved up, move up dependent tasks
+ --
+ FOR dependent IN SELECT * FROM project_depend_vw WHERE is_dependent_on_task_id=NEW.project_task_id LOOP
+ IF dependent.start_date = OLD.end_date THEN
+ --
+ -- dependent task was constrained by us - bring it forward
+ --
+ delta := OLD.end_date-NEW.end_date;
+ UPDATE project_task
+ SET start_date=start_date-delta,
+ end_date=end_date-delta
+ WHERE project_task_id=dependent.project_task_id;
+ END IF;
+ END LOOP;
+ END IF;
+--
+-- MAY WISH TO INSERT AUDIT TRAIL HERE FOR CHANGED begin/end DATES
+--
+ RETURN NEW;
+END;
+' LANGUAGE 'plpgsql';
+
+
+CREATE TRIGGER projtask_update_depend_trig AFTER UPDATE ON project_task
+ FOR EACH ROW EXECUTE PROCEDURE projtask_update_depend();
+
+
+--
+-- Function to enforce dependencies in the table structure
+--
+CREATE OR REPLACE FUNCTION projtask_insert_depend () RETURNS OPAQUE AS '
+DECLARE
+ dependon RECORD;
+ delta INTEGER;
+BEGIN
+ --
+ -- ENFORCE START/END DATE logic
+ --
+ IF NEW.start_date >= NEW.end_date THEN
+ RAISE EXCEPTION ''START DATE CANNOT BE AFTER END DATE'';
+ END IF;
+ --
+ -- First make sure we start on or after end_date of tasks
+ -- that we depend on
+ --
+ FOR dependon IN SELECT * FROM project_dependon_vw
+ WHERE project_task_id=NEW.project_task_id LOOP
+ --
+ -- See if the task we are dependon on
+ -- ends after we are supposed to start
+ --
+ IF dependon.end_date > NEW.start_date THEN
+ delta := dependon.end_date-NEW.start_date;
+ RAISE NOTICE ''Bumping Back: % Delta: % '',NEW.project_task_id,delta;
+ NEW.start_date := NEW.start_date+delta;
+ NEW.end_date := NEW.end_date+delta;
+ END IF;
+
+ END LOOP;
+ RETURN NEW;
+END;
+' LANGUAGE 'plpgsql';
+
+CREATE TRIGGER projtask_insert_depend_trig BEFORE INSERT OR UPDATE ON project_task
+ FOR EACH ROW EXECUTE PROCEDURE projtask_insert_depend();
+
Deleted: trunk/gforge_base/gforge-4.8/db/20021223-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20021223-drops.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20021223-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,13 +0,0 @@
-ALTER TABLE project_task DROP CONSTRAINT "project_task_group_project_id_f" RESTRICT;
-DROP TABLE project_category;
-DROP SEQUENCE project_categor_category_id_seq;
-DROP VIEW project_task_vw;
-DROP TABLE project_task_artifact;
-DROP TABLE project_group_forum;
-DROP TABLE project_group_doccat;
-DROP VIEW project_depend_vw;
-DROP VIEW project_dependon_vw;
-DROP VIEW project_history_user_vw;
-DROP VIEW project_message_user_vw;
-DROP TRIGGER projtask_update_depend_trig ON project_task;
-DROP TRIGGER projtask_insert_depend_trig ON project_task;
Deleted: trunk/gforge_base/gforge-4.8/db/20021223.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20021223.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20021223.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,235 +0,0 @@
---
--- rename old "date" fields to be SQL compliant
---
-alter table project_history rename column date to mod_date;
-
---
--- Change project_task to delete on removal of project
---
-
-ALTER TABLE project_task
- ADD CONSTRAINT projecttask_groupprojectid_fk FOREIGN KEY (group_project_id)
- REFERENCES project_group_list(group_project_id) ON DELETE CASCADE;
-
---
--- Add email address to send all task updates to
---
-ALTER TABLE project_group_list ADD COLUMN send_all_posts_to text;
-
-
---
--- Each task can be assigned a category
---
-CREATE SEQUENCE "project_categor_category_id_seq" ;
-CREATE TABLE project_category (
-category_id integer DEFAULT nextval('project_categor_category_id_seq'::text) NOT NULL,
-group_project_id int
- CONSTRAINT projcat_projgroupid_fk REFERENCES project_group_list(group_project_id) ON DELETE CASCADE,
-category_name text,
- CONSTRAINT "project_category_pkey" Primary Key ("category_id")
-);
-CREATE INDEX projectcategory_groupprojectid ON project_category(group_project_id);
-INSERT INTO project_category VALUES ('100','1','None');
-SELECT SETVAL('project_categor_category_id_seq',100);
-
---
--- Add category_id
---
-ALTER TABLE project_task ADD COLUMN category_id int REFERENCES project_category(category_id);
-UPDATE project_task SET category_id=100;
-
---
--- Convenience view required for ProjectTask object
---
-CREATE VIEW project_task_vw AS
-SELECT project_task.*,project_category.category_name,project_status.status_name
-FROM project_task
-FULL JOIN project_category ON (project_category.category_id=project_task.category_id)
-NATURAL JOIN project_status;
-
---
--- Each task can have multiple artifacts associated with it
---
-CREATE TABLE project_task_artifact (
-project_task_id int
- CONSTRAINT projtaskartifact_projtaskid_fk REFERENCES project_task(project_task_id) ON DELETE CASCADE,
-artifact_id int
- CONSTRAINT projtaskartifact_artifactid_fk REFERENCES artifact(artifact_id) ON DELETE CASCADE);
-CREATE INDEX projecttaskartifact_projecttaskid ON project_task_artifact (project_task_id);
-CREATE INDEX projecttaskartifact_artifactid ON project_task_artifact (artifact_id);
-
---
--- Relation to forums dedicated to this project
---
-CREATE TABLE project_group_forum (
-group_project_id int
- CONSTRAINT projgroupforum_projgroupid_fk REFERENCES project_group_list(group_project_id) ON DELETE CASCADE,
-group_forum_id int
- CONSTRAINT projgroupforum_groupforumid_fk REFERENCES forum_group_list(group_forum_id) ON DELETE CASCADE);
-CREATE INDEX projectgroupforum_groupprojectid ON project_group_forum(group_project_id);
-CREATE INDEX projectgroupforum_groupforumid ON project_group_forum(group_forum_id);
-
---
--- Relation to a category of docs for this project
---
-CREATE TABLE project_group_doccat (
-group_project_id int
- CONSTRAINT projgroupdoccat_projgroupid_fk REFERENCES project_group_list(group_project_id) ON DELETE CASCADE,
-doc_group_id int
- CONSTRAINT projgroupdoccat_docgroupid_fk REFERENCES doc_groups(doc_group) ON DELETE CASCADE);
-CREATE INDEX projectgroupdoccat_groupprojectid ON project_group_forum(group_project_id);
-CREATE INDEX projectgroupdoccat_groupgroupid ON project_group_doccat(doc_group_id);
-
---
---
---
-CREATE VIEW project_depend_vw AS
- SELECT pt.project_task_id,pd.is_dependent_on_task_id,pt.end_date,pt.start_date
- FROM project_task pt NATURAL JOIN project_dependencies pd;
-
-CREATE VIEW project_dependon_vw AS
- SELECT pd.project_task_id,pd.is_dependent_on_task_id,pt.end_date,pt.start_date
- FROM project_task pt FULL JOIN project_dependencies pd ON (pd.is_dependent_on_task_id=pt.project_task_id);
-
-CREATE VIEW project_history_user_vw AS
- SELECT users.realname,users.email,users.user_name,project_history.*
- FROM users,project_history
- WHERE project_history.mod_by=users.user_id;
-
---
--- Move project messages into separate table from project_history
---
-CREATE TABLE project_messages (
-project_message_id SERIAL,
-project_task_id INT NOT NULL REFERENCES project_task(project_task_id) ON DELETE CASCADE,
-body text,
-posted_by INT NOT NULL REFERENCES users(user_id),
-postdate int NOT NULL);
-
---BEGIN;
-INSERT INTO project_messages (project_task_id,body,posted_by,postdate)
- SELECT project_task_id,old_value,mod_by,mod_date
- FROM project_history
- WHERE field_name='details';
-
-DELETE FROM project_history WHERE field_name='details';
-
---COMMIT;
-
-CREATE VIEW project_message_user_vw AS
- SELECT users.realname,users.email,users.user_name,project_messages.*
- FROM users,project_messages
- WHERE project_messages.posted_by=users.user_id;
---
--- Remove all existing dependencies, as they may be problematic.
---
-DELETE FROM project_dependencies;
-
---
--- Function to enforce dependencies in the table structure
---
-
-CREATE OR REPLACE FUNCTION projtask_update_depend () RETURNS OPAQUE AS '
-DECLARE
- dependent RECORD;
- dependon RECORD;
- delta INTEGER;
-BEGIN
- --
- -- See if tasks that are dependent on us are OK
- -- See if the end date has changed
- --
- IF NEW.end_date > OLD.end_date THEN
- --
- -- If the end date pushed back, push back dependent tasks
- --
- FOR dependent IN SELECT * FROM project_depend_vw WHERE is_dependent_on_task_id=NEW.project_task_id LOOP
- --
- -- Some dependent tasks may not start immediately
- --
- IF dependent.start_date > OLD.end_date THEN
- IF dependent.start_date < NEW.end_date THEN
- delta := NEW.end_date-dependent.start_date;
- UPDATE project_task
- SET start_date=start_date+delta,
- end_date=end_date+delta
- WHERE project_task_id=dependent.project_task_id;
- END IF;
- ELSE
- IF dependent.start_date = OLD.end_date THEN
- delta := NEW.end_date-OLD.end_date;
- UPDATE project_task
- SET start_date=start_date+delta,
- end_date=end_date+delta
- WHERE project_task_id=dependent.project_task_id;
- END IF;
- END IF;
- END LOOP;
- ELSIF NEW.end_date < OLD.end_date THEN
- --
- -- If the end date moved up, move up dependent tasks
- --
- FOR dependent IN SELECT * FROM project_depend_vw WHERE is_dependent_on_task_id=NEW.project_task_id LOOP
- IF dependent.start_date = OLD.end_date THEN
- --
- -- dependent task was constrained by us - bring it forward
- --
- delta := OLD.end_date-NEW.end_date;
- UPDATE project_task
- SET start_date=start_date-delta,
- end_date=end_date-delta
- WHERE project_task_id=dependent.project_task_id;
- END IF;
- END LOOP;
- END IF;
---
--- MAY WISH TO INSERT AUDIT TRAIL HERE FOR CHANGED begin/end DATES
---
- RETURN NEW;
-END;
-' LANGUAGE 'plpgsql';
-
-
-CREATE TRIGGER projtask_update_depend_trig AFTER UPDATE ON project_task
- FOR EACH ROW EXECUTE PROCEDURE projtask_update_depend();
-
-
---
--- Function to enforce dependencies in the table structure
---
-CREATE OR REPLACE FUNCTION projtask_insert_depend () RETURNS OPAQUE AS '
-DECLARE
- dependon RECORD;
- delta INTEGER;
-BEGIN
- --
- -- ENFORCE START/END DATE logic
- --
- IF NEW.start_date >= NEW.end_date THEN
- RAISE EXCEPTION ''START DATE CANNOT BE AFTER END DATE'';
- END IF;
- --
- -- First make sure we start on or after end_date of tasks
- -- that we depend on
- --
- FOR dependon IN SELECT * FROM project_dependon_vw
- WHERE project_task_id=NEW.project_task_id LOOP
- --
- -- See if the task we are dependon on
- -- ends after we are supposed to start
- --
- IF dependon.end_date > NEW.start_date THEN
- delta := dependon.end_date-NEW.start_date;
- RAISE NOTICE ''Bumping Back: % Delta: % '',NEW.project_task_id,delta;
- NEW.start_date := NEW.start_date+delta;
- NEW.end_date := NEW.end_date+delta;
- END IF;
-
- END LOOP;
- RETURN NEW;
-END;
-' LANGUAGE 'plpgsql';
-
-CREATE TRIGGER projtask_insert_depend_trig BEFORE INSERT OR UPDATE ON project_task
- FOR EACH ROW EXECUTE PROCEDURE projtask_insert_depend();
-
Added: trunk/gforge_base/gforge-4.8/db/20030102-1-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20030102-1-drops.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20030102-1-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1 @@
+DROP VIEW docdata_vw;
Added: trunk/gforge_base/gforge-4.8/db/20030102-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20030102-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20030102-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,49 @@
+--
+-- Add a group_id column to relate docs to a group
+--
+ALTER TABLE doc_data ADD COLUMN group_id INT;
+UPDATE doc_data SET group_id=(SELECT group_id FROM doc_groups WHERE doc_group=doc_data.doc_group);
+UPDATE doc_data SET stateid=4 WHERE stateid=100;
+--
+-- Add fkey constraints
+--
+ALTER TABLE doc_data ADD CONSTRAINT docdata_groupid
+ FOREIGN KEY (group_id) REFERENCES groups(group_id) ON DELETE CASCADE;
+ALTER TABLE doc_data ADD CONSTRAINT docdata_docgroupid
+ FOREIGN KEY (doc_group) REFERENCES doc_groups(doc_group);
+ALTER TABLE doc_data ADD CONSTRAINT docdata_stateid
+ FOREIGN KEY (stateid) REFERENCES doc_states(stateid);
+ALTER TABLE doc_groups ADD CONSTRAINT docgroups_groupid
+ FOREIGN KEY (group_id) REFERENCES groups(group_id) ON DELETE CASCADE;
+--
+-- Re-use old columns in the groups table
+--
+ALTER TABLE groups RENAME COLUMN new_task_address TO new_doc_address;
+ALTER TABLE groups RENAME COLUMN send_all_tasks TO send_all_docs;
+--BEGIN;
+UPDATE groups SET new_doc_address='',send_all_docs='0';
+--COMMIT;
+
+--
+-- Create a convenience view for selecting from docman
+--
+CREATE VIEW docdata_vw AS
+SELECT users.user_name,users.realname,users.email,
+ d.group_id,d.docid,d.stateid,d.title,d.updatedate,d.createdate,d.created_by,
+ d.doc_group,d.description,d.language_id,d.filename,d.filetype,
+ doc_states.name AS state_name,
+ doc_groups.groupname AS group_name,
+ sl.name as language_name
+FROM doc_data d
+NATURAL JOIN doc_states
+NATURAL JOIN doc_groups
+JOIN supported_languages sl ON (sl.language_id=d.language_id)
+JOIN users ON (users.user_id=d.created_by);
+
+--
+-- NEW VIEW FOR TRACKER
+--
+CREATE VIEW artifact_group_list_vw AS
+SELECT agl.*,aca.count,aca.open_count
+ FROM artifact_group_list agl
+ LEFT JOIN artifact_counts_agg aca USING (group_artifact_id);
Deleted: trunk/gforge_base/gforge-4.8/db/20030102-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20030102-drops.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20030102-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1 +0,0 @@
-DROP VIEW docdata_vw;
Deleted: trunk/gforge_base/gforge-4.8/db/20030102.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20030102.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20030102.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,49 +0,0 @@
---
--- Add a group_id column to relate docs to a group
---
-ALTER TABLE doc_data ADD COLUMN group_id INT;
-UPDATE doc_data SET group_id=(SELECT group_id FROM doc_groups WHERE doc_group=doc_data.doc_group);
-UPDATE doc_data SET stateid=4 WHERE stateid=100;
---
--- Add fkey constraints
---
-ALTER TABLE doc_data ADD CONSTRAINT docdata_groupid
- FOREIGN KEY (group_id) REFERENCES groups(group_id) ON DELETE CASCADE;
-ALTER TABLE doc_data ADD CONSTRAINT docdata_docgroupid
- FOREIGN KEY (doc_group) REFERENCES doc_groups(doc_group);
-ALTER TABLE doc_data ADD CONSTRAINT docdata_stateid
- FOREIGN KEY (stateid) REFERENCES doc_states(stateid);
-ALTER TABLE doc_groups ADD CONSTRAINT docgroups_groupid
- FOREIGN KEY (group_id) REFERENCES groups(group_id) ON DELETE CASCADE;
---
--- Re-use old columns in the groups table
---
-ALTER TABLE groups RENAME COLUMN new_task_address TO new_doc_address;
-ALTER TABLE groups RENAME COLUMN send_all_tasks TO send_all_docs;
---BEGIN;
-UPDATE groups SET new_doc_address='',send_all_docs='0';
---COMMIT;
-
---
--- Create a convenience view for selecting from docman
---
-CREATE VIEW docdata_vw AS
-SELECT users.user_name,users.realname,users.email,
- d.group_id,d.docid,d.stateid,d.title,d.updatedate,d.createdate,d.created_by,
- d.doc_group,d.description,d.language_id,d.filename,d.filetype,
- doc_states.name AS state_name,
- doc_groups.groupname AS group_name,
- sl.name as language_name
-FROM doc_data d
-NATURAL JOIN doc_states
-NATURAL JOIN doc_groups
-JOIN supported_languages sl ON (sl.language_id=d.language_id)
-JOIN users ON (users.user_id=d.created_by);
-
---
--- NEW VIEW FOR TRACKER
---
-CREATE VIEW artifact_group_list_vw AS
-SELECT agl.*,aca.count,aca.open_count
- FROM artifact_group_list agl
- LEFT JOIN artifact_counts_agg aca USING (group_artifact_id);
Added: trunk/gforge_base/gforge-4.8/db/20030113-1-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20030113-1-drops.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20030113-1-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,4 @@
+DROP VIEW stats_project_vw;
+DROP VIEW stats_project_all_vw;
+DROP VIEW stats_site_vw;
+DROP VIEW stats_site_all_vw;
Added: trunk/gforge_base/gforge-4.8/db/20030113-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20030113-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20030113-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,122 @@
+DROP TABLE stats_site_all;
+DROP TABLE stats_site_last_30;
+DROP TABLE stats_project_all;
+DROP TABLE stats_project_developers_last30;
+DROP TABLE stats_project_last_30;
+
+CREATE VIEW stats_project_vw AS
+SELECT spd.group_id,
+ spd.month,
+ spd.day,
+ spd.developers,
+ spm.ranking AS group_ranking,
+ spm.percentile AS group_metric,
+ salbg.count AS logo_showings,
+ fdga.downloads,
+ sasbg.count AS site_views,
+ ssp.pages AS subdomain_views,
+ (coalesce(sasbg.count,0) + coalesce(ssp.pages,0))::int AS page_views,
+ sp.file_releases,
+ sp.msg_posted,
+ sp.msg_uniq_auth,
+ sp.bugs_opened,
+ sp.bugs_closed,
+ sp.support_opened,
+ sp.support_closed,
+ sp.patches_opened,
+ sp.patches_closed,
+ sp.artifacts_opened,
+ sp.artifacts_closed,
+ sp.tasks_opened,
+ sp.tasks_closed,
+ sp.help_requests,
+ scg.checkouts AS cvs_checkouts,
+ scg.commits AS cvs_commits,
+ scg.adds AS cvs_adds
+FROM stats_project_developers spd
+ LEFT JOIN stats_project sp USING (month,day,group_id)
+ LEFT JOIN stats_project_metric spm USING (month,day,group_id)
+ LEFT JOIN stats_cvs_group scg USING (month,day,group_id)
+ LEFT JOIN stats_agg_site_by_group sasbg USING (month,day,group_id)
+ LEFT JOIN stats_agg_logo_by_group salbg USING (month,day,group_id)
+ LEFT JOIN stats_subd_pages ssp USING (month,day,group_id)
+ LEFT JOIN frs_dlstats_group_vw fdga USING (month,day,group_id)
+;
+
+CREATE VIEW stats_project_all_vw AS
+SELECT group_id,
+ AVG(developers)::int AS developers,
+ AVG(group_ranking)::int AS group_ranking,
+ AVG(group_metric)::float AS group_metric,
+ SUM(logo_showings) AS logo_showings,
+ SUM(downloads) AS downloads,
+ SUM(site_views) AS site_views,
+ SUM(subdomain_views) AS subdomain_views,
+ SUM(page_views) AS page_views,
+ SUM(file_releases) AS file_releases,
+ SUM(msg_posted) AS msg_posted,
+ AVG(msg_uniq_auth)::int AS msg_uniq_auth,
+ SUM(bugs_opened) AS bugs_opened,
+ SUM(bugs_closed) AS bugs_closed,
+ SUM(support_opened) AS support_opened,
+ SUM(support_closed) AS support_closed,
+ SUM(patches_opened) AS patches_opened,
+ SUM(patches_closed) AS patches_closed,
+ SUM(artifacts_opened) AS artifacts_opened,
+ SUM(artifacts_closed) AS artifacts_closed,
+ SUM(tasks_opened) AS tasks_opened,
+ SUM(tasks_closed) AS tasks_closed,
+ SUM(help_requests) AS help_requests,
+ SUM(cvs_checkouts) AS cvs_checkouts,
+ SUM(cvs_commits) AS cvs_commits,
+ SUM(cvs_adds) AS cvs_adds
+ FROM stats_project_months
+ GROUP BY group_id;
+
+CREATE VIEW stats_site_vw AS
+SELECT p.month,
+ p.day,
+ sspbd.site_page_views,
+ SUM(p.downloads) AS downloads,
+ SUM(p.subdomain_views) AS subdomain_views,
+ SUM(p.msg_posted) AS msg_posted,
+ SUM(p.bugs_opened) AS bugs_opened,
+ SUM(p.bugs_closed) AS bugs_closed,
+ SUM(p.support_opened) AS support_opened,
+ SUM(p.support_closed) AS support_closed,
+ SUM(p.patches_opened) AS patches_opened,
+ SUM(p.patches_closed) AS patches_closed,
+ SUM(artifacts_opened) AS artifacts_opened,
+ SUM(artifacts_closed) AS artifacts_closed,
+ SUM(p.tasks_opened) AS tasks_opened,
+ SUM(p.tasks_closed) AS tasks_closed,
+ SUM(p.help_requests) AS help_requests,
+ SUM(p.cvs_checkouts) AS cvs_checkouts,
+ SUM(p.cvs_commits) AS cvs_commits,
+ SUM(p.cvs_adds) AS cvs_adds
+ FROM stats_project_vw p, stats_site_pages_by_day sspbd
+ WHERE p.month=sspbd.month AND p.day=sspbd.day
+ GROUP BY p.month, p.day, sspbd.site_page_views;
+
+
+CREATE VIEW stats_site_all_vw AS
+SELECT
+ SUM(site_page_views) AS site_page_views,
+ SUM(downloads) AS downloads,
+ SUM(subdomain_views) AS subdomain_views,
+ SUM(msg_posted) AS msg_posted,
+ SUM(bugs_opened) AS bugs_opened,
+ SUM(bugs_closed) AS bugs_closed,
+ SUM(support_opened) AS support_opened,
+ SUM(support_closed) AS support_closed,
+ SUM(patches_opened) AS patches_opened,
+ SUM(patches_closed) AS patches_closed,
+ SUM(artifacts_opened) AS artifacts_opened,
+ SUM(artifacts_closed) AS artifacts_closed,
+ SUM(tasks_opened) AS tasks_opened,
+ SUM(tasks_closed) AS tasks_closed,
+ SUM(help_requests) AS help_requests,
+ SUM(cvs_checkouts) AS cvs_checkouts,
+ SUM(cvs_commits) AS cvs_commits,
+ SUM(cvs_adds) AS cvs_adds
+ FROM stats_site_months;
Deleted: trunk/gforge_base/gforge-4.8/db/20030113-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20030113-drops.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20030113-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,4 +0,0 @@
-DROP VIEW stats_project_vw;
-DROP VIEW stats_project_all_vw;
-DROP VIEW stats_site_vw;
-DROP VIEW stats_site_all_vw;
Deleted: trunk/gforge_base/gforge-4.8/db/20030113.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20030113.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20030113.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,122 +0,0 @@
-DROP TABLE stats_site_all;
-DROP TABLE stats_site_last_30;
-DROP TABLE stats_project_all;
-DROP TABLE stats_project_developers_last30;
-DROP TABLE stats_project_last_30;
-
-CREATE VIEW stats_project_vw AS
-SELECT spd.group_id,
- spd.month,
- spd.day,
- spd.developers,
- spm.ranking AS group_ranking,
- spm.percentile AS group_metric,
- salbg.count AS logo_showings,
- fdga.downloads,
- sasbg.count AS site_views,
- ssp.pages AS subdomain_views,
- (coalesce(sasbg.count,0) + coalesce(ssp.pages,0))::int AS page_views,
- sp.file_releases,
- sp.msg_posted,
- sp.msg_uniq_auth,
- sp.bugs_opened,
- sp.bugs_closed,
- sp.support_opened,
- sp.support_closed,
- sp.patches_opened,
- sp.patches_closed,
- sp.artifacts_opened,
- sp.artifacts_closed,
- sp.tasks_opened,
- sp.tasks_closed,
- sp.help_requests,
- scg.checkouts AS cvs_checkouts,
- scg.commits AS cvs_commits,
- scg.adds AS cvs_adds
-FROM stats_project_developers spd
- LEFT JOIN stats_project sp USING (month,day,group_id)
- LEFT JOIN stats_project_metric spm USING (month,day,group_id)
- LEFT JOIN stats_cvs_group scg USING (month,day,group_id)
- LEFT JOIN stats_agg_site_by_group sasbg USING (month,day,group_id)
- LEFT JOIN stats_agg_logo_by_group salbg USING (month,day,group_id)
- LEFT JOIN stats_subd_pages ssp USING (month,day,group_id)
- LEFT JOIN frs_dlstats_group_vw fdga USING (month,day,group_id)
-;
-
-CREATE VIEW stats_project_all_vw AS
-SELECT group_id,
- AVG(developers)::int AS developers,
- AVG(group_ranking)::int AS group_ranking,
- AVG(group_metric)::float AS group_metric,
- SUM(logo_showings) AS logo_showings,
- SUM(downloads) AS downloads,
- SUM(site_views) AS site_views,
- SUM(subdomain_views) AS subdomain_views,
- SUM(page_views) AS page_views,
- SUM(file_releases) AS file_releases,
- SUM(msg_posted) AS msg_posted,
- AVG(msg_uniq_auth)::int AS msg_uniq_auth,
- SUM(bugs_opened) AS bugs_opened,
- SUM(bugs_closed) AS bugs_closed,
- SUM(support_opened) AS support_opened,
- SUM(support_closed) AS support_closed,
- SUM(patches_opened) AS patches_opened,
- SUM(patches_closed) AS patches_closed,
- SUM(artifacts_opened) AS artifacts_opened,
- SUM(artifacts_closed) AS artifacts_closed,
- SUM(tasks_opened) AS tasks_opened,
- SUM(tasks_closed) AS tasks_closed,
- SUM(help_requests) AS help_requests,
- SUM(cvs_checkouts) AS cvs_checkouts,
- SUM(cvs_commits) AS cvs_commits,
- SUM(cvs_adds) AS cvs_adds
- FROM stats_project_months
- GROUP BY group_id;
-
-CREATE VIEW stats_site_vw AS
-SELECT p.month,
- p.day,
- sspbd.site_page_views,
- SUM(p.downloads) AS downloads,
- SUM(p.subdomain_views) AS subdomain_views,
- SUM(p.msg_posted) AS msg_posted,
- SUM(p.bugs_opened) AS bugs_opened,
- SUM(p.bugs_closed) AS bugs_closed,
- SUM(p.support_opened) AS support_opened,
- SUM(p.support_closed) AS support_closed,
- SUM(p.patches_opened) AS patches_opened,
- SUM(p.patches_closed) AS patches_closed,
- SUM(artifacts_opened) AS artifacts_opened,
- SUM(artifacts_closed) AS artifacts_closed,
- SUM(p.tasks_opened) AS tasks_opened,
- SUM(p.tasks_closed) AS tasks_closed,
- SUM(p.help_requests) AS help_requests,
- SUM(p.cvs_checkouts) AS cvs_checkouts,
- SUM(p.cvs_commits) AS cvs_commits,
- SUM(p.cvs_adds) AS cvs_adds
- FROM stats_project_vw p, stats_site_pages_by_day sspbd
- WHERE p.month=sspbd.month AND p.day=sspbd.day
- GROUP BY p.month, p.day, sspbd.site_page_views;
-
-
-CREATE VIEW stats_site_all_vw AS
-SELECT
- SUM(site_page_views) AS site_page_views,
- SUM(downloads) AS downloads,
- SUM(subdomain_views) AS subdomain_views,
- SUM(msg_posted) AS msg_posted,
- SUM(bugs_opened) AS bugs_opened,
- SUM(bugs_closed) AS bugs_closed,
- SUM(support_opened) AS support_opened,
- SUM(support_closed) AS support_closed,
- SUM(patches_opened) AS patches_opened,
- SUM(patches_closed) AS patches_closed,
- SUM(artifacts_opened) AS artifacts_opened,
- SUM(artifacts_closed) AS artifacts_closed,
- SUM(tasks_opened) AS tasks_opened,
- SUM(tasks_closed) AS tasks_closed,
- SUM(help_requests) AS help_requests,
- SUM(cvs_checkouts) AS cvs_checkouts,
- SUM(cvs_commits) AS cvs_commits,
- SUM(cvs_adds) AS cvs_adds
- FROM stats_site_months;
Modified: trunk/gforge_base/gforge-4.8/db/20040826_migrateforum.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20040826_migrateforum.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20040826_migrateforum.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -23,6 +23,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
*/
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
//
Modified: trunk/gforge_base/gforge-4.8/db/20040826_migraterbac.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20040826_migraterbac.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20040826_migraterbac.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -23,6 +23,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
*/
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
//system library
Modified: trunk/gforge_base/gforge-4.8/db/20041211-syncmail.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20041211-syncmail.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20041211-syncmail.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,5 +1,6 @@
#! /usr/bin/php5
<?php
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
require_once $gfcommon.'mail/MailingList.class.php';
require_once $gfcommon.'include/Group.class.php';
Modified: trunk/gforge_base/gforge-4.8/db/20041222-1-delete-task-artifact.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20041222-1-delete-task-artifact.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20041222-1-delete-task-artifact.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,5 +1,6 @@
#! /usr/bin/php5
<?php
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
require_once $gfcommon.'pm/ProjectTask.class.php';
Modified: trunk/gforge_base/gforge-4.8/db/20050127-frs-reorg.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050127-frs-reorg.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050127-frs-reorg.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -22,7 +22,7 @@
* along with GForge; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
*/
-
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
require_once $gfcommon.'frs/FRSFile.class.php';
require_once $gfcommon.'frs/FRSRelease.class.php';
Added: trunk/gforge_base/gforge-4.8/db/20050224-1-drop.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050224-1-drop.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050224-1-drop.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,8 @@
+DROP INDEX docdata_groupid;
+DROP INDEX forumperm_useridgroupforumid;
+ALTER TABLE forum_perm DROP CONSTRAINT forum_perm_id_key;
+DROP INDEX forumperm_groupforumiduserid;
+DROP INDEX group_cvs_history_id_key;
+ALTER TABLE project_perm DROP CONSTRAINT project_perm_id_key;
+DROP INDEX projecttaskartifact_projecttask;
+DROP INDEX supported_langu_language_id_key;
Added: trunk/gforge_base/gforge-4.8/db/20050224-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050224-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050224-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,302 @@
+CREATE INDEX artifactextrafldlmts_extrafieldid ON
+artifact_extra_field_elements(extra_field_id);
+
+CREATE INDEX artifactextrafielddata_artifactid ON
+artifact_extra_field_data(artifact_id);
+
+CREATE INDEX artifactextrafieldlist_groupartid ON
+artifact_extra_field_list(group_artifact_id);
+
+CREATE INDEX docdata_groupid ON doc_data (group_id,doc_group);
+
+CREATE SEQUENCE artifact_extra_field_elements_element_id_seq;
+ALTER TABLE artifact_extra_field_elements ALTER COLUMN
+ element_id SET DEFAULT nextval('artifact_extra_field_elements_element_id_seq');
+DROP SEQUENCE artifact_group_selection_box_options_id_seq;
+SELECT setval('artifact_extra_field_elements_element_id_seq',(SELECT
+max(element_id) FROM artifact_extra_field_elements));
+
+CREATE SEQUENCE artifact_extra_field_data_data_id_seq;
+ALTER TABLE artifact_extra_field_data ALTER COLUMN
+ data_id SET DEFAULT nextval('artifact_extra_field_data_data_id_seq');
+SELECT setval('artifact_extra_field_data_data_id_seq',(SELECT
+max(data_id) FROM artifact_extra_field_data));
+DROP SEQUENCE artifact_extra_field_data_id_seq;
+
+CREATE SEQUENCE artifact_extra_field_list_extra_field_id_seq;
+ALTER TABLE artifact_extra_field_list ALTER COLUMN
+ extra_field_id SET DEFAULT nextval('artifact_extra_field_list_extra_field_id_seq');
+SELECT setval('artifact_extra_field_list_extra_field_id_seq',(SELECT
+max(extra_field_id) FROM artifact_extra_field_list));
+DROP SEQUENCE artifact_group_selection_box_list_id_seq;
+
+
+ALTER TABLE artifact_counts_agg ADD CONSTRAINT
+ artifact_counts_agg_pkey primary key (group_artifact_id);
+DROP INDEX artifactcountsagg_groupartid;
+
+
+ALTER TABLE artifact_extra_field_elements DROP CONSTRAINT
+ artifact_group_selection_box_options_pkey;
+ALTER TABLE artifact_extra_field_elements ADD CONSTRAINT
+ artifact_extra_field_elements_pkey primary key (element_id);
+
+
+ALTER TABLE artifact_extra_field_list DROP CONSTRAINT
+ artifact_group_selection_box_list_pkey;
+ALTER TABLE artifact_extra_field_list ADD CONSTRAINT
+ artifact_extra_field_list_pkey primary key (extra_field_id);
+
+DROP INDEX artfile_artid;
+
+DROP INDEX artgrouplist_groupid;
+
+DROP INDEX arthistory_artid;
+
+DROP INDEX artmessage_artid;
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE artifact_monitor DROP CONSTRAINT artifact_monitor_pkey;
+DROP INDEX artmonitor_artifactid;
+ALTER TABLE artifact_monitor ADD CONSTRAINT artifact_monitor_pkey PRIMARY KEY (artifact_id,user_id);
+CREATE INDEX artmonitor_useridartid ON artifact_monitor(user_id,artifact_id);
+
+DROP INDEX artperm_groupartifactid;
+
+CREATE INDEX cronhist_jobrundate ON cron_history(job,rundate);
+
+DROP INDEX doc_group_doc_group;
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE filemodule_monitor DROP CONSTRAINT filemodule_monitor_pkey;
+DROP INDEX filemodule_monitor_id;
+DROP INDEX filemodulemonitor_userid;
+ALTER TABLE filemodule_monitor ADD CONSTRAINT filemodule_monitor_pkey PRIMARY KEY (filemodule_id,user_id);
+CREATE INDEX filemodulemonitor_useridfilemoduleid ON filemodule_monitor (user_id,filemodule_id);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE forum_monitored_forums DROP CONSTRAINT forum_monitored_forums_pkey;
+DROP INDEX forum_monitor_combo_id;
+DROP INDEX forum_monitor_thread_id;
+DROP INDEX forummonitoredforums_user;
+ALTER TABLE forum_monitored_forums ADD CONSTRAINT forum_monitored_forums_pkey PRIMARY KEY (forum_id,user_id);
+CREATE INDEX forummonitoredforums_useridforumid ON forum_monitored_forums(user_id,forum_id);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE forum_perm DROP CONSTRAINT forum_perm_id_key;
+CREATE INDEX forumperm_useridgroupforumid ON forum_perm(user_id,group_forum_id);
+ALTER TABLE forum_perm ADD CONSTRAINT forum_perm_pkey PRIMARY KEY (group_forum_id, user_id);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE forum_saved_place DROP CONSTRAINT forum_saved_place_pkey;
+ALTER TABLE forum_saved_place ADD CONSTRAINT
+ forum_saved_place_pkey PRIMARY KEY (user_id,forum_id);
+
+DROP INDEX frsdlfiletotal_fileid;
+ALTER TABLE frs_dlstats_filetotal_agg DROP CONSTRAINT frs_dlstats_filetotal_agg_pkey;
+ALTER TABLE frs_dlstats_filetotal_agg ADD CONSTRAINT
+ frs_dlstats_filetotal_agg_pkey PRIMARY KEY (file_id);
+
+--
+-- TODO investigate if group_plugin_id is needed at all
+--
+CREATE INDEX groupplugin_groupid ON group_plugin(group_id);
+
+ALTER TABLE licenses DROP CONSTRAINT licenses_license_id_key CASCADE;
+ALTER TABLE licenses ADD CONSTRAINT licenses_pkey PRIMARY KEY (license_id);
+--groups fkey is dropped BY CASCADE
+--"groups_license" FOREIGN KEY (license) REFERENCES licenses(license_id) MATCH FULL
+ALTER TABLE groups ADD CONSTRAINT groups_license
+ FOREIGN KEY (license) REFERENCES licenses(license_id) MATCH FULL;
+
+CREATE INDEX prdbdbs_groupid ON prdb_dbs(group_id);
+CREATE INDEX prdbstates_stateid ON prdb_states(stateid);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE project_assigned_to DROP CONSTRAINT project_assigned_to_pkey;
+DROP INDEX project_assigned_to_assigned_to;
+DROP INDEX project_assigned_to_task_id;
+--mop up duplicate ids
+DELETE FROM project_assigned_to WHERE EXISTS (
+SELECT * FROM (SELECT project_task_id,assigned_to_id,count(*) AS count FROM project_assigned_to
+ GROUP BY project_task_id,assigned_to_id ORDER BY count) ta WHERE ta.count > 1
+ AND ta.project_task_id=project_assigned_to.project_task_id);
+ALTER TABLE project_assigned_to ADD CONSTRAINT
+ project_assigned_to_pkey PRIMARY KEY (project_task_id,assigned_to_id);
+CREATE INDEX projectassigned_assignedtotaskid ON
+ project_assigned_to(assigned_to_id,project_task_id);
+
+ALTER TABLE project_counts_agg ADD CONSTRAINT
+ project_counts_agg_pkey PRIMARY KEY (group_project_id);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE project_dependencies DROP CONSTRAINT project_dependencies_pkey;
+DROP INDEX project_dependencies_task_id;
+DROP INDEX project_is_dependent_on_task_id;
+ALTER TABLE project_dependencies ALTER COLUMN link_type SET DEFAULT 'FS';
+--mop up duplicate ids
+DELETE FROM project_dependencies WHERE EXISTS (
+SELECT * FROM (SELECT project_task_id,is_dependent_on_task_id,count(*) AS count
+ FROM project_dependencies
+ GROUP BY project_task_id,is_dependent_on_task_id ORDER BY count) ta WHERE ta.count > 1
+ AND ta.project_task_id=project_dependencies.project_task_id
+ AND ta.is_dependent_on_task_id=project_dependencies.is_dependent_on_task_id);
+ALTER TABLE project_dependencies ADD CONSTRAINT project_dependencies_pkey
+ PRIMARY KEY(project_task_id,is_dependent_on_task_id);
+CREATE INDEX projectdep_isdepon_projtaskid ON
+ project_dependencies(is_dependent_on_task_id,project_task_id);
+
+DROP TABLE project_group_doccat;
+DROP TABLE project_group_forum;
+
+CREATE INDEX projectmsgs_projtaskidpostdate ON project_messages(project_task_id,postdate);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE project_perm DROP CONSTRAINT project_perm_id_key;
+DROP INDEX projectperm_groupprojiduserid;
+ALTER TABLE project_perm ADD CONSTRAINT project_perm_id_key PRIMARY KEY(group_project_id,user_id);
+CREATE INDEX projectperm_useridgroupprojid ON project_perm(user_id,group_project_id);
+
+
+DROP INDEX projectsumsagg_groupid;
+--MAY HAVE TO RUN db_project_sums.php cronjob first
+ALTER TABLE project_sums_agg ALTER type SET NOT NULL;
+DELETE FROM project_sums_agg;
+ALTER TABLE project_sums_agg ADD CONSTRAINT project_sums_agg_pkey PRIMARY KEY (group_id,type);
+
+DROP INDEX project_task_group_project_id;
+
+DROP INDEX projecttaskartifact_artifactid;
+ALTER TABLE project_task_artifact ALTER project_task_id SET NOT NULL;
+ALTER TABLE project_task_artifact ALTER artifact_id SET NOT NULL;
+ALTER TABLE project_task_artifact ADD CONSTRAINT
+ project_task_artifact_pkey PRIMARY KEY (project_task_id,artifact_id);
+CREATE INDEX projecttaskartifact_artidprojtaskid ON
+ project_task_artifact(artifact_id,project_task_id);
+
+DROP INDEX projecttaskexternal_projtaskid;
+ALTER TABLE project_task_external_order ADD CONSTRAINT
+ roject_task_external_order_pkey PRIMARY KEY (project_task_id);
+
+--UNKNOWN IF CORRECT: project_weekly_metric
+--UNKNOWN IF CORRECT: prweb_vhost
+
+ALTER TABLE role DROP CONSTRAINT role_role_id_key CASCADE;
+--NOTICE: drop cascades to constraint usergroup_roleid on table user_group
+--NOTICE: drop cascades to constraint $1 on table role_setting
+ALTER TABLE role ADD CONSTRAINT role_role_id_pkey PRIMARY KEY (role_id);
+ALTER TABLE user_group ADD CONSTRAINT usergroup_roleid
+ FOREIGN KEY (role_id) REFERENCES role(role_id) MATCH FULL;
+ALTER TABLE role_setting ADD CONSTRAINT rolesetting_roleroleid
+ FOREIGN KEY (role_id) REFERENCES role(role_id) ON DELETE CASCADE;
+
+DROP INDEX rolesetting_roleidsectionid;
+ALTER TABLE role_setting ADD CONSTRAINT role_setting_pkey
+ PRIMARY KEY (role_id,section_name,ref_id);
+
+--skills_data ignored - to be dropped
+--stats tables ignored - to be dropped
+
+CREATE UNIQUE INDEX supportedlanguage_code ON supported_languages(language_code);
+--TODO DROP supported_languages.filename
+
+--NEED TO BE INVESTIGATED MORE THOROUGHLY
+-- public | survey_questions | table | tperdue
+-- public | survey_rating_aggregate | table | tperdue
+-- public | survey_rating_response | table | tperdue
+-- public | survey_responses | table | tperdue
+DROP INDEX survey_responses_user_survey;
+
+DROP INDEX troveagg_trovecatid;
+--trove_agg - what is this?
+DROP INDEX parent_idx;
+CREATE INDEX trovecat_parentid ON trove_cat(parent);
+DROP INDEX version_idx;
+DROP INDEX root_parent_idx;
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE trove_group_link DROP CONSTRAINT trove_group_link_pkey;
+DROP INDEX trove_group_link_cat_id;
+DROP INDEX trove_group_link_group_id;
+CREATE INDEX trovegrouplink_groupidcatid ON trove_group_link(group_id,trove_cat_id);
+ALTER TABLE trove_group_link ADD CONSTRAINT
+ trove_group_link_pkey PRIMARY KEY(trove_cat_id,group_id,trove_cat_version);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE trove_treesums DROP CONSTRAINT trove_treesums_pkey;
+ALTER TABLE trove_treesums ADD CONSTRAINT trove_treesums_pkey PRIMARY KEY (trove_cat_id);
+
+DROP INDEX user_diary_user;
+DROP INDEX user_diary_date;
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE user_diary_monitor DROP CONSTRAINT user_diary_monitor_pkey;
+DROP INDEX user_diary_monitor_monitored_us;
+DROP INDEX user_diary_monitor_user;
+ALTER TABLE user_diary_monitor ADD CONSTRAINT
+ user_diary_monitor_pkey PRIMARY KEY (monitored_user,user_id);
+CREATE INDEX userdiarymon_useridmonitoredid ON
+ user_diary_monitor(user_id,monitored_user);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+DROP INDEX admin_flags_idx;
+DROP INDEX forum_flags_idx;
+DROP INDEX project_flags_idx;
+DROP INDEX user_group_group_id;
+DROP INDEX user_group_user_id;
+ALTER TABLE user_group DROP CONSTRAINT user_group_pkey;
+ALTER TABLE user_group ADD CONSTRAINT user_group_pkey PRIMARY KEY (group_id,user_id);
+CREATE INDEX usergroup_useridgroupid ON user_group(user_id,group_id);
+DROP INDEX usergroup_uniq_groupid_userid;
+
+CREATE UNIQUE INDEX usermetric_userid ON user_metric(user_id);
+
+CREATE INDEX usermetrichistory_useridmonthday ON user_metric_history(user_id,month,day);
+DROP INDEX user_metric_history_date_userid;
+ALTER TABLE user_metric_history ADD CONSTRAINT
+ user_metric_history_pkey PRIMARY KEY (month,day,user_id);
+
+--
+-- TODO DROP unnecessary sequence/id
+--
+ALTER TABLE user_plugin DROP CONSTRAINT user_plugin_pkey;
+ALTER TABLE user_plugin ALTER user_id SET NOT NULL;
+ALTER TABLE user_plugin ALTER plugin_id SET NOT NULL;
+ALTER TABLE user_plugin ADD CONSTRAINT user_plugin_pkey PRIMARY KEY (user_id,plugin_id);
+
+
+DROP INDEX user_pref_user_id;
+ALTER TABLE user_preferences ALTER user_id SET NOT NULL;
+ALTER TABLE user_preferences ALTER preference_name SET NOT NULL;
+ALTER TABLE user_preferences ADD CONSTRAINT
+ user_preferences_pkey PRIMARY KEY (user_id,preference_name);
+
+DROP INDEX user_ratings_rated_by;
+ALTER TABLE user_ratings ADD CONSTRAINT user_ratings_pkey PRIMARY KEY (rated_by,user_id,rate_field);
+
+DROP INDEX users_user_pw;
+
Deleted: trunk/gforge_base/gforge-4.8/db/20050224-drop.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050224-drop.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050224-drop.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,8 +0,0 @@
-DROP INDEX docdata_groupid;
-DROP INDEX forumperm_useridgroupforumid;
-DROP INDEX forum_perm_id_key;
-DROP INDEX forumperm_groupforumiduserid;
-DROP INDEX group_cvs_history_id_key;
-DROP INDEX project_perm_id_key;
-DROP INDEX projecttaskartifact_projecttask;
-DROP INDEX supported_langu_language_id_key;
Deleted: trunk/gforge_base/gforge-4.8/db/20050224.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050224.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050224.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,302 +0,0 @@
-CREATE INDEX artifactextrafldlmts_extrafieldid ON
-artifact_extra_field_elements(extra_field_id);
-
-CREATE INDEX artifactextrafielddata_artifactid ON
-artifact_extra_field_data(artifact_id);
-
-CREATE INDEX artifactextrafieldlist_groupartid ON
-artifact_extra_field_list(group_artifact_id);
-
-CREATE INDEX docdata_groupid ON doc_data (group_id,doc_group);
-
-CREATE SEQUENCE artifact_extra_field_elements_element_id_seq;
-ALTER TABLE artifact_extra_field_elements ALTER COLUMN
- element_id SET DEFAULT nextval('artifact_extra_field_elements_element_id_seq');
-DROP SEQUENCE artifact_group_selection_box_options_id_seq;
-SELECT setval('artifact_extra_field_elements_element_id_seq',(SELECT
-max(element_id) FROM artifact_extra_field_elements));
-
-CREATE SEQUENCE artifact_extra_field_data_data_id_seq;
-ALTER TABLE artifact_extra_field_data ALTER COLUMN
- data_id SET DEFAULT nextval('artifact_extra_field_data_data_id_seq');
-SELECT setval('artifact_extra_field_data_data_id_seq',(SELECT
-max(data_id) FROM artifact_extra_field_data));
-DROP SEQUENCE artifact_extra_field_data_id_seq;
-
-CREATE SEQUENCE artifact_extra_field_list_extra_field_id_seq;
-ALTER TABLE artifact_extra_field_list ALTER COLUMN
- extra_field_id SET DEFAULT nextval('artifact_extra_field_list_extra_field_id_seq');
-SELECT setval('artifact_extra_field_list_extra_field_id_seq',(SELECT
-max(extra_field_id) FROM artifact_extra_field_list));
-DROP SEQUENCE artifact_group_selection_box_list_id_seq;
-
-
-ALTER TABLE artifact_counts_agg ADD CONSTRAINT
- artifact_counts_agg_pkey primary key (group_artifact_id);
-DROP INDEX artifactcountsagg_groupartid;
-
-
-ALTER TABLE artifact_extra_field_elements DROP CONSTRAINT
- artifact_group_selection_box_options_pkey;
-ALTER TABLE artifact_extra_field_elements ADD CONSTRAINT
- artifact_extra_field_elements_pkey primary key (element_id);
-
-
-ALTER TABLE artifact_extra_field_list DROP CONSTRAINT
- artifact_group_selection_box_list_pkey;
-ALTER TABLE artifact_extra_field_list ADD CONSTRAINT
- artifact_extra_field_list_pkey primary key (extra_field_id);
-
-DROP INDEX artfile_artid;
-
-DROP INDEX artgrouplist_groupid;
-
-DROP INDEX arthistory_artid;
-
-DROP INDEX artmessage_artid;
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE artifact_monitor DROP CONSTRAINT artifact_monitor_pkey;
-DROP INDEX artmonitor_artifactid;
-ALTER TABLE artifact_monitor ADD CONSTRAINT artifact_monitor_pkey PRIMARY KEY (artifact_id,user_id);
-CREATE INDEX artmonitor_useridartid ON artifact_monitor(user_id,artifact_id);
-
-DROP INDEX artperm_groupartifactid;
-
-CREATE INDEX cronhist_jobrundate ON cron_history(job,rundate);
-
-DROP INDEX doc_group_doc_group;
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE filemodule_monitor DROP CONSTRAINT filemodule_monitor_pkey;
-DROP INDEX filemodule_monitor_id;
-DROP INDEX filemodulemonitor_userid;
-ALTER TABLE filemodule_monitor ADD CONSTRAINT filemodule_monitor_pkey PRIMARY KEY (filemodule_id,user_id);
-CREATE INDEX filemodulemonitor_useridfilemoduleid ON filemodule_monitor (user_id,filemodule_id);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE forum_monitored_forums DROP CONSTRAINT forum_monitored_forums_pkey;
-DROP INDEX forum_monitor_combo_id;
-DROP INDEX forum_monitor_thread_id;
-DROP INDEX forummonitoredforums_user;
-ALTER TABLE forum_monitored_forums ADD CONSTRAINT forum_monitored_forums_pkey PRIMARY KEY (forum_id,user_id);
-CREATE INDEX forummonitoredforums_useridforumid ON forum_monitored_forums(user_id,forum_id);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE forum_perm DROP CONSTRAINT forum_perm_id_key;
-CREATE INDEX forumperm_useridgroupforumid ON forum_perm(user_id,group_forum_id);
-ALTER TABLE forum_perm ADD CONSTRAINT forum_perm_pkey PRIMARY KEY (group_forum_id, user_id);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE forum_saved_place DROP CONSTRAINT forum_saved_place_pkey;
-ALTER TABLE forum_saved_place ADD CONSTRAINT
- forum_saved_place_pkey PRIMARY KEY (user_id,forum_id);
-
-DROP INDEX frsdlfiletotal_fileid;
-ALTER TABLE frs_dlstats_filetotal_agg DROP CONSTRAINT frs_dlstats_filetotal_agg_pkey;
-ALTER TABLE frs_dlstats_filetotal_agg ADD CONSTRAINT
- frs_dlstats_filetotal_agg_pkey PRIMARY KEY (file_id);
-
---
--- TODO investigate if group_plugin_id is needed at all
---
-CREATE INDEX groupplugin_groupid ON group_plugin(group_id);
-
-ALTER TABLE licenses DROP CONSTRAINT licenses_license_id_key CASCADE;
-ALTER TABLE licenses ADD CONSTRAINT licenses_pkey PRIMARY KEY (license_id);
---groups fkey is dropped BY CASCADE
---"groups_license" FOREIGN KEY (license) REFERENCES licenses(license_id) MATCH FULL
-ALTER TABLE groups ADD CONSTRAINT groups_license
- FOREIGN KEY (license) REFERENCES licenses(license_id) MATCH FULL;
-
-CREATE INDEX prdbdbs_groupid ON prdb_dbs(group_id);
-CREATE INDEX prdbstates_stateid ON prdb_states(stateid);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE project_assigned_to DROP CONSTRAINT project_assigned_to_pkey;
-DROP INDEX project_assigned_to_assigned_to;
-DROP INDEX project_assigned_to_task_id;
---mop up duplicate ids
-DELETE FROM project_assigned_to WHERE EXISTS (
-SELECT * FROM (SELECT project_task_id,assigned_to_id,count(*) AS count FROM project_assigned_to
- GROUP BY project_task_id,assigned_to_id ORDER BY count) ta WHERE ta.count > 1
- AND ta.project_task_id=project_assigned_to.project_task_id);
-ALTER TABLE project_assigned_to ADD CONSTRAINT
- project_assigned_to_pkey PRIMARY KEY (project_task_id,assigned_to_id);
-CREATE INDEX projectassigned_assignedtotaskid ON
- project_assigned_to(assigned_to_id,project_task_id);
-
-ALTER TABLE project_counts_agg ADD CONSTRAINT
- project_counts_agg_pkey PRIMARY KEY (group_project_id);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE project_dependencies DROP CONSTRAINT project_dependencies_pkey;
-DROP INDEX project_dependencies_task_id;
-DROP INDEX project_is_dependent_on_task_id;
-ALTER TABLE project_dependencies ALTER COLUMN link_type SET DEFAULT 'FS';
---mop up duplicate ids
-DELETE FROM project_dependencies WHERE EXISTS (
-SELECT * FROM (SELECT project_task_id,is_dependent_on_task_id,count(*) AS count
- FROM project_dependencies
- GROUP BY project_task_id,is_dependent_on_task_id ORDER BY count) ta WHERE ta.count > 1
- AND ta.project_task_id=project_dependencies.project_task_id
- AND ta.is_dependent_on_task_id=project_dependencies.is_dependent_on_task_id);
-ALTER TABLE project_dependencies ADD CONSTRAINT project_dependencies_pkey
- PRIMARY KEY(project_task_id,is_dependent_on_task_id);
-CREATE INDEX projectdep_isdepon_projtaskid ON
- project_dependencies(is_dependent_on_task_id,project_task_id);
-
-DROP TABLE project_group_doccat;
-DROP TABLE project_group_forum;
-
-CREATE INDEX projectmsgs_projtaskidpostdate ON project_messages(project_task_id,postdate);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE project_perm DROP CONSTRAINT project_perm_id_key;
-DROP INDEX projectperm_groupprojiduserid;
-ALTER TABLE project_perm ADD CONSTRAINT project_perm_id_key PRIMARY KEY(group_project_id,user_id);
-CREATE INDEX projectperm_useridgroupprojid ON project_perm(user_id,group_project_id);
-
-
-DROP INDEX projectsumsagg_groupid;
---MAY HAVE TO RUN db_project_sums.php cronjob first
-ALTER TABLE project_sums_agg ALTER type SET NOT NULL;
-DELETE FROM project_sums_agg;
-ALTER TABLE project_sums_agg ADD CONSTRAINT project_sums_agg_pkey PRIMARY KEY (group_id,type);
-
-DROP INDEX project_task_group_project_id;
-
-DROP INDEX projecttaskartifact_artifactid;
-ALTER TABLE project_task_artifact ALTER project_task_id SET NOT NULL;
-ALTER TABLE project_task_artifact ALTER artifact_id SET NOT NULL;
-ALTER TABLE project_task_artifact ADD CONSTRAINT
- project_task_artifact_pkey PRIMARY KEY (project_task_id,artifact_id);
-CREATE INDEX projecttaskartifact_artidprojtaskid ON
- project_task_artifact(artifact_id,project_task_id);
-
-DROP INDEX projecttaskexternal_projtaskid;
-ALTER TABLE project_task_external_order ADD CONSTRAINT
- roject_task_external_order_pkey PRIMARY KEY (project_task_id);
-
---UNKNOWN IF CORRECT: project_weekly_metric
---UNKNOWN IF CORRECT: prweb_vhost
-
-ALTER TABLE role DROP CONSTRAINT role_role_id_key CASCADE;
---NOTICE: drop cascades to constraint usergroup_roleid on table user_group
---NOTICE: drop cascades to constraint $1 on table role_setting
-ALTER TABLE role ADD CONSTRAINT role_role_id_pkey PRIMARY KEY (role_id);
-ALTER TABLE user_group ADD CONSTRAINT usergroup_roleid
- FOREIGN KEY (role_id) REFERENCES role(role_id) MATCH FULL;
-ALTER TABLE role_setting ADD CONSTRAINT rolesetting_roleroleid
- FOREIGN KEY (role_id) REFERENCES role(role_id) ON DELETE CASCADE;
-
-DROP INDEX rolesetting_roleidsectionid;
-ALTER TABLE role_setting ADD CONSTRAINT role_setting_pkey
- PRIMARY KEY (role_id,section_name,ref_id);
-
---skills_data ignored - to be dropped
---stats tables ignored - to be dropped
-
-CREATE UNIQUE INDEX supportedlanguage_code ON supported_languages(language_code);
---TODO DROP supported_languages.filename
-
---NEED TO BE INVESTIGATED MORE THOROUGHLY
--- public | survey_questions | table | tperdue
--- public | survey_rating_aggregate | table | tperdue
--- public | survey_rating_response | table | tperdue
--- public | survey_responses | table | tperdue
-DROP INDEX survey_responses_user_survey;
-
-DROP INDEX troveagg_trovecatid;
---trove_agg - what is this?
-DROP INDEX parent_idx;
-CREATE INDEX trovecat_parentid ON trove_cat(parent);
-DROP INDEX version_idx;
-DROP INDEX root_parent_idx;
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE trove_group_link DROP CONSTRAINT trove_group_link_pkey;
-DROP INDEX trove_group_link_cat_id;
-DROP INDEX trove_group_link_group_id;
-CREATE INDEX trovegrouplink_groupidcatid ON trove_group_link(group_id,trove_cat_id);
-ALTER TABLE trove_group_link ADD CONSTRAINT
- trove_group_link_pkey PRIMARY KEY(trove_cat_id,group_id,trove_cat_version);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE trove_treesums DROP CONSTRAINT trove_treesums_pkey;
-ALTER TABLE trove_treesums ADD CONSTRAINT trove_treesums_pkey PRIMARY KEY (trove_cat_id);
-
-DROP INDEX user_diary_user;
-DROP INDEX user_diary_date;
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE user_diary_monitor DROP CONSTRAINT user_diary_monitor_pkey;
-DROP INDEX user_diary_monitor_monitored_us;
-DROP INDEX user_diary_monitor_user;
-ALTER TABLE user_diary_monitor ADD CONSTRAINT
- user_diary_monitor_pkey PRIMARY KEY (monitored_user,user_id);
-CREATE INDEX userdiarymon_useridmonitoredid ON
- user_diary_monitor(user_id,monitored_user);
-
---
--- TODO DROP unnecessary sequence/id
---
-DROP INDEX admin_flags_idx;
-DROP INDEX forum_flags_idx;
-DROP INDEX project_flags_idx;
-DROP INDEX user_group_group_id;
-DROP INDEX user_group_user_id;
-ALTER TABLE user_group DROP CONSTRAINT user_group_pkey;
-ALTER TABLE user_group ADD CONSTRAINT user_group_pkey PRIMARY KEY (group_id,user_id);
-CREATE INDEX usergroup_useridgroupid ON user_group(user_id,group_id);
-DROP INDEX usergroup_uniq_groupid_userid;
-
-CREATE UNIQUE INDEX usermetric_userid ON user_metric(user_id);
-
-CREATE INDEX usermetrichistory_useridmonthday ON user_metric_history(user_id,month,day);
-DROP INDEX user_metric_history_date_userid;
-ALTER TABLE user_metric_history ADD CONSTRAINT
- user_metric_history_pkey PRIMARY KEY (month,day,user_id);
-
---
--- TODO DROP unnecessary sequence/id
---
-ALTER TABLE user_plugin DROP CONSTRAINT user_plugin_pkey;
-ALTER TABLE user_plugin ALTER user_id SET NOT NULL;
-ALTER TABLE user_plugin ALTER plugin_id SET NOT NULL;
-ALTER TABLE user_plugin ADD CONSTRAINT user_plugin_pkey PRIMARY KEY (user_id,plugin_id);
-
-
-DROP INDEX user_pref_user_id;
-ALTER TABLE user_preferences ALTER user_id SET NOT NULL;
-ALTER TABLE user_preferences ALTER preference_name SET NOT NULL;
-ALTER TABLE user_preferences ADD CONSTRAINT
- user_preferences_pkey PRIMARY KEY (user_id,preference_name);
-
-DROP INDEX user_ratings_rated_by;
-ALTER TABLE user_ratings ADD CONSTRAINT user_ratings_pkey PRIMARY KEY (rated_by,user_id,rate_field);
-
-DROP INDEX users_user_pw;
-
Deleted: trunk/gforge_base/gforge-4.8/db/20050325-1.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050325-1.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050325-1.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,40 +0,0 @@
-ALTER TABLE artifact_extra_field_list ADD COLUMN is_required INT;
-UPDATE artifact_extra_field_list SET is_required=0;
-ALTER TABLE artifact_extra_field_list ALTER COLUMN is_required SET NOT NULL;
-ALTER TABLE artifact_extra_field_list ALTER COLUMN is_required SET DEFAULT 0;
-
-ALTER TABLE artifact_extra_field_elements ADD COLUMN status_id INT;
-UPDATE artifact_extra_field_elements SET status_id=0;
-ALTER TABLE artifact_extra_field_elements ALTER COLUMN status_id SET NOT NULL;
-ALTER TABLE artifact_extra_field_elements ALTER COLUMN status_id SET DEFAULT 0;
-
-ALTER TABLE artifact_group_list ADD COLUMN custom_status_field INT;
-UPDATE artifact_group_list SET custom_status_field=0;
-ALTER TABLE artifact_group_list ALTER COLUMN custom_status_field SET NOT NULL;
-ALTER TABLE artifact_group_list ALTER COLUMN custom_status_field SET DEFAULT 0;
-
-ALTER TABLE artifact_group_list ADD COLUMN custom_renderer TEXT;
-
-CREATE TABLE artifact_query (
- artifact_query_id SERIAL NOT NULL,
- group_artifact_id integer NOT NULL
- CONSTRAINT artquery_groupartid_fk REFERENCES artifact_group_list(group_artifact_id) ON DELETE CASCADE,
- user_id integer NOT NULL,
- query_name text NOT NULL,
- Constraint artifact_query_pkey Primary Key (artifact_query_id)
-);
-
-CREATE TABLE artifact_query_fields (
- artifact_query_id integer NOT NULL
- CONSTRAINT artqueryelmnt_artqueryid REFERENCES artifact_query(artifact_query_id) ON DELETE CASCADE,
- query_field_type text NOT NULL,
- query_field_id int NOT NULL,
- query_field_values text NOT NULL,
- Constraint artifact_query_elements_pkey Primary Key (artifact_query_id,query_field_type,query_field_id)
-);
-
-ALTER TABLE doc_groups ADD COLUMN parent_doc_group INTEGER;
-UPDATE doc_groups SET parent_doc_group=0;
-ALTER TABLE doc_groups ALTER COLUMN parent_doc_group SET NOT NULL;
-ALTER TABLE doc_groups ALTER COLUMN parent_doc_group SET DEFAULT 0;
-CREATE INDEX docgroups_parentdocgroup ON doc_groups(parent_doc_group);
Deleted: trunk/gforge_base/gforge-4.8/db/20050325-2.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050325-2.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050325-2.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,247 +0,0 @@
-#! /usr/bin/php5
-<?php
-/**
- * GForge Extra Field Conversion Script
- *
- * Copyright 2004 GForge, LLC
- * http://gforge.org/
- *
- * This file is part of GForge.
- *
- * GForge is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * GForge is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GForge; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
- */
-
-require_once $gfwww.'include/squal_pre.php';
-require_once $gfcommon.'tracker/ArtifactExtraField.class.php';
-require_once $gfcommon.'tracker/ArtifactExtraFieldElement.class.php';
-
-// First of all, try to create the "alias" field if it doesn't exist
-$res = db_query("SELECT alias FROM artifact_extra_field_list");
-if (!$res) { // error, the field doesn't exist
- $res = db_query("ALTER TABLE artifact_extra_field_list ADD COLUMN alias TEXT");
- if (!$res) {
- echo db_error();
- exit(16);
- }
-}
-
-//
-// Set up this script to run as the site admin
-//
-
-$res = db_query("SELECT user_id FROM user_group WHERE admin_flags='A' AND group_id='1'");
-
-if (!$res) {
- echo db_error();
- exit(1);
-}
-
-if (db_numrows($res) == 0) {
- // There are no Admins yet, aborting without failing
- echo "SUCCESS\n";
- exit(0);
-}
-
-$id=db_result($res,0,0);
-session_set_new($id);
-
-db_begin();
-
-$res=db_query("SELECT group_id,group_artifact_id,use_resolution FROM artifact_group_list");
-
-for ($i=0; $i<db_numrows($res); $i++) {
-
- $group_id=db_result($res,$i,'group_id');
- $gaid=db_result($res,$i,'group_artifact_id');
- $ur=db_result($res,$i,'use_resolution');
-
- $g = group_get_object($group_id);
- if (!$g || !is_object($g)) {
- echo "\nCould Not Get Group: $group_id";
- db_rollback();
- exit(2);
- }
-
- $at = new ArtifactType($g,$gaid);
- if (!$at || !is_object($at)) {
- echo "\nCould Not Get ArtifactType: $gaid";
- db_rollback();
- exit(3);
- }
- //
- // Convert ArtifactCategory To Extra Field
- //
- $aef=new ArtifactExtraField($at);
- $aef->create('Category',ARTIFACT_EXTRAFIELDTYPE_SELECT,0,0);
- $catbox_id=$aef->getID();
- if (!$catbox_id) {
- echo "\nCould Not Get New Category Box ID: $gaid ".$aef->getErrorMessage();
- db_rollback();
- exit(4);
- }
- $resc=db_query("SELECT * FROM artifact_category WHERE group_artifact_id='$gaid'");
- for ($j=0; $j<db_numrows($resc); $j++) {
- $cat_id=db_result($resc,$j,'id');
- $cat_name=addslashes(db_result($resc,$j,'category_name'));
- if (strlen($cat_name) < 1) {
- $cat_name='[empty]';
- }
-
- $efe=new ArtifactExtraFieldElement($aef);
- #DEBUG
- #$efe->create($cat_name);
- if (!$efe->create($cat_name)) {
- echo 'Group: '.$group_id.' Could not create category element: '.$cat_name.' '.$efe->getErrorMessage();
- db_rollback();
- exit(5);
- }
- $efe_id=$efe->getID();
-//echo 'Artifact Category: Group: '.$group_id;
-//print_r($efe->data_array);
- if (!$efe_id) {
- #DEBUG echo "\nDid Not Get efe_id";
- echo "\nDid Not Get efe_id (group_id: $group_id)";
- db_rollback();
- exit(5);
- }
- $res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
- SELECT artifact_id,$efe_id,$catbox_id FROM artifact
- WHERE category_id='$cat_id' AND group_artifact_id='$gaid'");
- if (!$res2) {
- echo "Could Not Insert AEFD for category " . db_error();
- db_rollback();
- exit(6);
- }
- $res3=db_query("UPDATE artifact_history SET old_value='$cat_name',field_name='Category'
- WHERE old_value='$cat_id' AND field_name='category_id' AND artifact_id IN
- (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
- if (!$res3) {
- echo "Could Not update history category " . db_error();
- db_rollback();
- exit(7);
- }
- }
-
- //
- // Convert ArtifactGroup To Extra Field
- //
- $aef=new ArtifactExtraField($at);
- $aef->create('Group',ARTIFACT_EXTRAFIELDTYPE_SELECT,0,0);
- $groupbox_id=$aef->getID();
- if (!$groupbox_id) {
- echo "\nCould Not Get groupbox_id ".$aef->getErrorMessage();
- db_rollback();
- exit(8);
- }
- $resc=db_query("SELECT * FROM artifact_group WHERE group_artifact_id='$gaid'");
- for ($j=0; $j<db_numrows($resc); $j++) {
- $artgroup_id=db_result($resc,$j,'id');
- $group_name=addslashes(db_result($resc,$j,'group_name'));
- if (strlen($group_name) < 1) {
- $group_name='[empty]';
- }
-
- $efe=new ArtifactExtraFieldElement($aef);
- //$efe->create($group_name);
- if (!$efe->create($group_name)) {
- echo 'Group: '.$group_id.' Could not create group element: '.$group_name.' '.$efe->getErrorMessage();
- db_rollback();
- exit(5);
- }
-//echo 'Artifact Group: Group: '.$group_id;
-//print_r($efe->data_array);
- $efe_id=$efe->getID();
- if (!$efe_id) {
- echo "\nDid Not Get efe_id";
- db_rollback();
- exit(9);
- }
- $res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
- SELECT artifact_id,$efe_id,$groupbox_id FROM artifact
- WHERE artifact_group_id='$artgroup_id' AND group_artifact_id='$gaid'");
- if (!$res2) {
- echo "Could Not Insert AEFD for artifactgroup " . db_error();
- db_rollback();
- exit(10);
- }
- $res3=db_query("UPDATE artifact_history SET old_value='$group_name',field_name='Group'
- WHERE old_value='$artgroup_id' AND field_name='artifact_group_id' AND artifact_id IN
- (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
- if (!$res3) {
- echo "Could Not update history artifactgroup " . db_error();
- db_rollback();
- exit(11);
- }
- }
-
- if ($ur) {
- //
- // Convert ArtifactResolution To Extra Field
- //
- $aef=new ArtifactExtraField($at);
- $aef->create('Resolution',ARTIFACT_EXTRAFIELDTYPE_SELECT,0,0);
- $resolutionbox_id=$aef->getID();
- if (!$resolutionbox_id) {
- echo "\nCould Not Get resolutionbox_id ".$aef->getErrorMessage();
- db_rollback();
- exit(12);
- }
- $resc=db_query("SELECT * FROM artifact_resolution");
- for ($j=0; $j<db_numrows($resc); $j++) {
- $resolution_id=db_result($resc,$j,'id');
- $resolution_name=addslashes(db_result($resc,$j,'resolution_name'));
- if (strlen($resolution_name) < 1) {
- $resolution_name='[empty]';
- }
- $efe=new ArtifactExtraFieldElement($aef);
- // $efe->create($resolution_name);
- if (!$efe->create($resolution_name)) {
- echo 'Group: '.$group_id.' Could not create resolution element: '.$resolution_name.' '.$efe->getErrorMessage();
- db_rollback();
- exit(5);
- }
-//echo 'Artifact Group: Group: '.$group_id;
-//print_r($efe->data_array);
- $efe_id=$efe->getID();
- if (!$efe_id) {
- echo "\nDid Not Get efe_id";
- db_rollback();
- exit(13);
- }
- $res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
- SELECT artifact_id,$efe_id,$resolutionbox_id FROM artifact
- WHERE resolution_id='$resolution_id' AND group_artifact_id='$gaid'");
- if (!$res2) {
- echo "Could Not Insert AEFD for resolution " . db_error();
- db_rollback();
- exit(14);
- }
- $res3=db_query("UPDATE artifact_history SET old_value='$resolution_name',field_name='Resolution'
- WHERE old_value='$resolution_id' AND field_name='resolution_id' AND artifact_id IN
- (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
- if (!$res3) {
- echo "Could Not update history resolution " . db_error();
- db_rollback();
- exit(15);
- }
- }
- }
-}
-db_commit();
-
-
-echo "\nSUCCESS";
-
-?>
Added: trunk/gforge_base/gforge-4.8/db/20050325-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050325-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050325-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,40 @@
+ALTER TABLE artifact_extra_field_list ADD COLUMN is_required INT;
+UPDATE artifact_extra_field_list SET is_required=0;
+ALTER TABLE artifact_extra_field_list ALTER COLUMN is_required SET NOT NULL;
+ALTER TABLE artifact_extra_field_list ALTER COLUMN is_required SET DEFAULT 0;
+
+ALTER TABLE artifact_extra_field_elements ADD COLUMN status_id INT;
+UPDATE artifact_extra_field_elements SET status_id=0;
+ALTER TABLE artifact_extra_field_elements ALTER COLUMN status_id SET NOT NULL;
+ALTER TABLE artifact_extra_field_elements ALTER COLUMN status_id SET DEFAULT 0;
+
+ALTER TABLE artifact_group_list ADD COLUMN custom_status_field INT;
+UPDATE artifact_group_list SET custom_status_field=0;
+ALTER TABLE artifact_group_list ALTER COLUMN custom_status_field SET NOT NULL;
+ALTER TABLE artifact_group_list ALTER COLUMN custom_status_field SET DEFAULT 0;
+
+ALTER TABLE artifact_group_list ADD COLUMN custom_renderer TEXT;
+
+CREATE TABLE artifact_query (
+ artifact_query_id SERIAL NOT NULL,
+ group_artifact_id integer NOT NULL
+ CONSTRAINT artquery_groupartid_fk REFERENCES artifact_group_list(group_artifact_id) ON DELETE CASCADE,
+ user_id integer NOT NULL,
+ query_name text NOT NULL,
+ Constraint artifact_query_pkey Primary Key (artifact_query_id)
+);
+
+CREATE TABLE artifact_query_fields (
+ artifact_query_id integer NOT NULL
+ CONSTRAINT artqueryelmnt_artqueryid REFERENCES artifact_query(artifact_query_id) ON DELETE CASCADE,
+ query_field_type text NOT NULL,
+ query_field_id int NOT NULL,
+ query_field_values text NOT NULL,
+ Constraint artifact_query_elements_pkey Primary Key (artifact_query_id,query_field_type,query_field_id)
+);
+
+ALTER TABLE doc_groups ADD COLUMN parent_doc_group INTEGER;
+UPDATE doc_groups SET parent_doc_group=0;
+ALTER TABLE doc_groups ALTER COLUMN parent_doc_group SET NOT NULL;
+ALTER TABLE doc_groups ALTER COLUMN parent_doc_group SET DEFAULT 0;
+CREATE INDEX docgroups_parentdocgroup ON doc_groups(parent_doc_group);
Deleted: trunk/gforge_base/gforge-4.8/db/20050325-3-drop.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050325-3-drop.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050325-3-drop.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,2 +0,0 @@
-DROP VIEW artifact_group_list_vw;
-DROP VIEW artifact_vw;
Added: trunk/gforge_base/gforge-4.8/db/20050325-3.php
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050325-3.php (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050325-3.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,248 @@
+#! /usr/bin/php5
+<?php
+/**
+ * GForge Extra Field Conversion Script
+ *
+ * Copyright 2004 GForge, LLC
+ * http://gforge.org/
+ *
+ * This file is part of GForge.
+ *
+ * GForge is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GForge; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
+ */
+
+require_once dirname(__FILE__).'/../www/env.inc.php';
+require_once $gfwww.'include/squal_pre.php';
+require_once $gfcommon.'tracker/ArtifactExtraField.class.php';
+require_once $gfcommon.'tracker/ArtifactExtraFieldElement.class.php';
+
+// First of all, try to create the "alias" field if it doesn't exist
+$res = db_query("SELECT alias FROM artifact_extra_field_list");
+if (!$res) { // error, the field doesn't exist
+ $res = db_query("ALTER TABLE artifact_extra_field_list ADD COLUMN alias TEXT");
+ if (!$res) {
+ echo db_error();
+ exit(16);
+ }
+}
+
+//
+// Set up this script to run as the site admin
+//
+
+$res = db_query("SELECT user_id FROM user_group WHERE admin_flags='A' AND group_id='1'");
+
+if (!$res) {
+ echo db_error();
+ exit(1);
+}
+
+if (db_numrows($res) == 0) {
+ // There are no Admins yet, aborting without failing
+ echo "SUCCESS\n";
+ exit(0);
+}
+
+$id=db_result($res,0,0);
+session_set_new($id);
+
+db_begin();
+
+$res=db_query("SELECT group_id,group_artifact_id,use_resolution FROM artifact_group_list");
+
+for ($i=0; $i<db_numrows($res); $i++) {
+
+ $group_id=db_result($res,$i,'group_id');
+ $gaid=db_result($res,$i,'group_artifact_id');
+ $ur=db_result($res,$i,'use_resolution');
+
+ $g = group_get_object($group_id);
+ if (!$g || !is_object($g)) {
+ echo "\nCould Not Get Group: $group_id";
+ db_rollback();
+ exit(2);
+ }
+
+ $at = new ArtifactType($g,$gaid);
+ if (!$at || !is_object($at)) {
+ echo "\nCould Not Get ArtifactType: $gaid";
+ db_rollback();
+ exit(3);
+ }
+ //
+ // Convert ArtifactCategory To Extra Field
+ //
+ $aef=new ArtifactExtraField($at);
+ $aef->create('Category',ARTIFACT_EXTRAFIELDTYPE_SELECT,0,0);
+ $catbox_id=$aef->getID();
+ if (!$catbox_id) {
+ echo "\nCould Not Get New Category Box ID: $gaid ".$aef->getErrorMessage();
+ db_rollback();
+ exit(4);
+ }
+ $resc=db_query("SELECT * FROM artifact_category WHERE group_artifact_id='$gaid'");
+ for ($j=0; $j<db_numrows($resc); $j++) {
+ $cat_id=db_result($resc,$j,'id');
+ $cat_name=addslashes(db_result($resc,$j,'category_name'));
+ if (strlen($cat_name) < 1) {
+ $cat_name='[empty]';
+ }
+
+ $efe=new ArtifactExtraFieldElement($aef);
+ #DEBUG
+ #$efe->create($cat_name);
+ if (!$efe->create($cat_name)) {
+ echo 'Group: '.$group_id.' Could not create category element: '.$cat_name.' '.$efe->getErrorMessage();
+ db_rollback();
+ exit(5);
+ }
+ $efe_id=$efe->getID();
+//echo 'Artifact Category: Group: '.$group_id;
+//print_r($efe->data_array);
+ if (!$efe_id) {
+ #DEBUG echo "\nDid Not Get efe_id";
+ echo "\nDid Not Get efe_id (group_id: $group_id)";
+ db_rollback();
+ exit(5);
+ }
+ $res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
+ SELECT artifact_id,$efe_id,$catbox_id FROM artifact
+ WHERE category_id='$cat_id' AND group_artifact_id='$gaid'");
+ if (!$res2) {
+ echo "Could Not Insert AEFD for category " . db_error();
+ db_rollback();
+ exit(6);
+ }
+ $res3=db_query("UPDATE artifact_history SET old_value='$cat_name',field_name='Category'
+ WHERE old_value='$cat_id' AND field_name='category_id' AND artifact_id IN
+ (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
+ if (!$res3) {
+ echo "Could Not update history category " . db_error();
+ db_rollback();
+ exit(7);
+ }
+ }
+
+ //
+ // Convert ArtifactGroup To Extra Field
+ //
+ $aef=new ArtifactExtraField($at);
+ $aef->create('Group',ARTIFACT_EXTRAFIELDTYPE_SELECT,0,0);
+ $groupbox_id=$aef->getID();
+ if (!$groupbox_id) {
+ echo "\nCould Not Get groupbox_id ".$aef->getErrorMessage();
+ db_rollback();
+ exit(8);
+ }
+ $resc=db_query("SELECT * FROM artifact_group WHERE group_artifact_id='$gaid'");
+ for ($j=0; $j<db_numrows($resc); $j++) {
+ $artgroup_id=db_result($resc,$j,'id');
+ $group_name=addslashes(db_result($resc,$j,'group_name'));
+ if (strlen($group_name) < 1) {
+ $group_name='[empty]';
+ }
+
+ $efe=new ArtifactExtraFieldElement($aef);
+ //$efe->create($group_name);
+ if (!$efe->create($group_name)) {
+ echo 'Group: '.$group_id.' Could not create group element: '.$group_name.' '.$efe->getErrorMessage();
+ db_rollback();
+ exit(5);
+ }
+//echo 'Artifact Group: Group: '.$group_id;
+//print_r($efe->data_array);
+ $efe_id=$efe->getID();
+ if (!$efe_id) {
+ echo "\nDid Not Get efe_id";
+ db_rollback();
+ exit(9);
+ }
+ $res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
+ SELECT artifact_id,$efe_id,$groupbox_id FROM artifact
+ WHERE artifact_group_id='$artgroup_id' AND group_artifact_id='$gaid'");
+ if (!$res2) {
+ echo "Could Not Insert AEFD for artifactgroup " . db_error();
+ db_rollback();
+ exit(10);
+ }
+ $res3=db_query("UPDATE artifact_history SET old_value='$group_name',field_name='Group'
+ WHERE old_value='$artgroup_id' AND field_name='artifact_group_id' AND artifact_id IN
+ (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
+ if (!$res3) {
+ echo "Could Not update history artifactgroup " . db_error();
+ db_rollback();
+ exit(11);
+ }
+ }
+
+ if ($ur) {
+ //
+ // Convert ArtifactResolution To Extra Field
+ //
+ $aef=new ArtifactExtraField($at);
+ $aef->create('Resolution',ARTIFACT_EXTRAFIELDTYPE_SELECT,0,0);
+ $resolutionbox_id=$aef->getID();
+ if (!$resolutionbox_id) {
+ echo "\nCould Not Get resolutionbox_id ".$aef->getErrorMessage();
+ db_rollback();
+ exit(12);
+ }
+ $resc=db_query("SELECT * FROM artifact_resolution");
+ for ($j=0; $j<db_numrows($resc); $j++) {
+ $resolution_id=db_result($resc,$j,'id');
+ $resolution_name=addslashes(db_result($resc,$j,'resolution_name'));
+ if (strlen($resolution_name) < 1) {
+ $resolution_name='[empty]';
+ }
+ $efe=new ArtifactExtraFieldElement($aef);
+ // $efe->create($resolution_name);
+ if (!$efe->create($resolution_name)) {
+ echo 'Group: '.$group_id.' Could not create resolution element: '.$resolution_name.' '.$efe->getErrorMessage();
+ db_rollback();
+ exit(5);
+ }
+//echo 'Artifact Group: Group: '.$group_id;
+//print_r($efe->data_array);
+ $efe_id=$efe->getID();
+ if (!$efe_id) {
+ echo "\nDid Not Get efe_id";
+ db_rollback();
+ exit(13);
+ }
+ $res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
+ SELECT artifact_id,$efe_id,$resolutionbox_id FROM artifact
+ WHERE resolution_id='$resolution_id' AND group_artifact_id='$gaid'");
+ if (!$res2) {
+ echo "Could Not Insert AEFD for resolution " . db_error();
+ db_rollback();
+ exit(14);
+ }
+ $res3=db_query("UPDATE artifact_history SET old_value='$resolution_name',field_name='Resolution'
+ WHERE old_value='$resolution_id' AND field_name='resolution_id' AND artifact_id IN
+ (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
+ if (!$res3) {
+ echo "Could Not update history resolution " . db_error();
+ db_rollback();
+ exit(15);
+ }
+ }
+ }
+}
+db_commit();
+
+
+echo "\nSUCCESS";
+
+?>
Deleted: trunk/gforge_base/gforge-4.8/db/20050325-3.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050325-3.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050325-3.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,42 +0,0 @@
-DROP TABLE artifact_category CASCADE;
-DROP TABLE artifact_group CASCADE;
-DROP TABLE artifact_resolution CASCADE;
-ALTER TABLE artifact DROP COLUMN artifact_group_id;
-ALTER TABLE artifact DROP COLUMN resolution_id;
-ALTER TABLE artifact DROP COLUMN category_id;
-ALTER TABLE artifact_group_list DROP COLUMN use_resolution CASCADE;
-
-CREATE VIEW artifact_group_list_vw AS
-SELECT agl.*,aca.count,aca.open_count
- FROM artifact_group_list agl
- LEFT JOIN artifact_counts_agg aca USING (group_artifact_id);
-
-CREATE VIEW artifact_vw
-AS
-SELECT artifact.artifact_id,
- artifact.group_artifact_id,
- artifact.status_id,
- artifact.priority,
- artifact.submitted_by,
- artifact.assigned_to,
- artifact.open_date,
- artifact.close_date,
- artifact.summary,
- artifact.details,
- u.user_name AS assigned_unixname,
- u.realname AS assigned_realname,
- u.email AS assigned_email,
- u2.user_name AS submitted_unixname,
- u2.realname AS submitted_realname,
- u2.email AS submitted_email,
- artifact_status.status_name,
- artifact.last_modified_date
-FROM users u,
- users u2,
- artifact_status,
- artifact
-WHERE artifact.assigned_to = u.user_id
-AND artifact.submitted_by = u2.user_id
-AND artifact.status_id = artifact_status.id;
-
-DELETE FROM user_preferences WHERE preference_name LIKE 'art_cust%';
Added: trunk/gforge_base/gforge-4.8/db/20050325-4-drop.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050325-4-drop.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050325-4-drop.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,2 @@
+DROP VIEW artifact_group_list_vw;
+DROP VIEW artifact_vw;
Added: trunk/gforge_base/gforge-4.8/db/20050325-5.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050325-5.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050325-5.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,42 @@
+DROP TABLE artifact_category CASCADE;
+DROP TABLE artifact_group CASCADE;
+DROP TABLE artifact_resolution CASCADE;
+ALTER TABLE artifact DROP COLUMN artifact_group_id;
+ALTER TABLE artifact DROP COLUMN resolution_id;
+ALTER TABLE artifact DROP COLUMN category_id;
+ALTER TABLE artifact_group_list DROP COLUMN use_resolution CASCADE;
+
+CREATE VIEW artifact_group_list_vw AS
+SELECT agl.*,aca.count,aca.open_count
+ FROM artifact_group_list agl
+ LEFT JOIN artifact_counts_agg aca USING (group_artifact_id);
+
+CREATE VIEW artifact_vw
+AS
+SELECT artifact.artifact_id,
+ artifact.group_artifact_id,
+ artifact.status_id,
+ artifact.priority,
+ artifact.submitted_by,
+ artifact.assigned_to,
+ artifact.open_date,
+ artifact.close_date,
+ artifact.summary,
+ artifact.details,
+ u.user_name AS assigned_unixname,
+ u.realname AS assigned_realname,
+ u.email AS assigned_email,
+ u2.user_name AS submitted_unixname,
+ u2.realname AS submitted_realname,
+ u2.email AS submitted_email,
+ artifact_status.status_name,
+ artifact.last_modified_date
+FROM users u,
+ users u2,
+ artifact_status,
+ artifact
+WHERE artifact.assigned_to = u.user_id
+AND artifact.submitted_by = u2.user_id
+AND artifact.status_id = artifact_status.id;
+
+DELETE FROM user_preferences WHERE preference_name LIKE 'art_cust%';
Modified: trunk/gforge_base/gforge-4.8/db/20050617.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050617.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050617.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -23,6 +23,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
*/
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
// these names can't be assigned to an extra field's alias because they are already
Modified: trunk/gforge_base/gforge-4.8/db/20050804-2.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050804-2.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050804-2.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -22,7 +22,8 @@
* along with GForge; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
*/
-
+
+require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
$res = db_query("SELECT * FROM doc_data");
Added: trunk/gforge_base/gforge-4.8/db/20050822-1-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050822-1-drops.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050822-1-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,2 @@
+drop table forum_attachment;
+drop table forum_attachmenttype;
Added: trunk/gforge_base/gforge-4.8/db/20050822-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20050822-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20050822-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,116 @@
+--
+-- Modification to forum table for bbcode support
+--
+
+alter table forum add bbcode_uid character varying(15);
+
+--
+-- forum_attachment
+--
+
+
+--
+-- Name: forum_attachment; Type: TABLE; Schema: public; Owner: gforge; Tablespace:
+--
+
+
+CREATE TABLE forum_attachment (
+ attachmentid serial NOT NULL,
+ userid integer DEFAULT 0 NOT NULL,
+ dateline integer DEFAULT 0 NOT NULL,
+ filename character varying(100) DEFAULT ''::character varying NOT NULL,
+ filedata text NOT NULL,
+ visible smallint DEFAULT (0)::smallint NOT NULL,
+ counter smallint DEFAULT (0)::smallint NOT NULL,
+ filesize integer DEFAULT 0 NOT NULL,
+ msg_id integer DEFAULT 0 NOT NULL,
+ filehash character varying(32) DEFAULT ''::character varying NOT NULL
+);
+
+
+
+--
+-- Name: filehash; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
+--
+
+ALTER TABLE ONLY forum_attachment
+ ADD CONSTRAINT filehash UNIQUE (filehash);
+
+
+
+--
+-- Name: forum_attachment_key; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
+--
+
+ALTER TABLE ONLY forum_attachment
+ ADD CONSTRAINT forum_attachment_key PRIMARY KEY (attachmentid);
+
+
+
+--
+-- Name: msg_id; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
+--
+
+ALTER TABLE ONLY forum_attachment
+ ADD CONSTRAINT msg_id UNIQUE (msg_id);
+
+
+
+--
+-- forum_attachmenttype
+--
+
+
+--
+-- Name: forum_attachmenttype; Type: TABLE; Schema: public; Owner: gforge; Tablespace:
+--
+
+
+CREATE TABLE forum_attachmenttype (
+ extension character varying(20) DEFAULT ''::character varying NOT NULL,
+ mimetype character varying(255) DEFAULT ''::character varying NOT NULL,
+ size integer DEFAULT 0 NOT NULL,
+ width smallint DEFAULT 0::smallint NOT NULL,
+ height smallint DEFAULT 0::smallint NOT NULL,
+ enabled smallint DEFAULT 1::smallint NOT NULL,
+ display smallint DEFAULT 0::smallint NOT NULL
+);
+
+
+
+--
+-- Data for Name: forum_attachmenttype; Type: TABLE DATA; Schema: public; Owner: gforge
+--
+
+INSERT INTO forum_attachmenttype VALUES ('gif', 'a:1:{i:0;s:23:"Content-type: image/gif";}', 20000, 620, 280, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('jpeg', 'a:1:{i:0;s:24:"Content-type: image/jpeg";}', 20000, 620, 280, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('jpg', 'a:1:{i:0;s:24:"Content-type: image/jpeg";}', 100000, 0, 0, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('jpe', 'a:1:{i:0;s:24:"Content-type: image/jpeg";}', 20000, 620, 280, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('png', 'a:1:{i:0;s:23:"Content-type: image/png";}', 20000, 620, 280, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('txt', 'a:1:{i:0;s:24:"Content-type: plain/text";}', 20000, 0, 0, 1, 2);
+INSERT INTO forum_attachmenttype VALUES ('doc', 'a:2:{i:0;s:20:"Accept-ranges: bytes";i:1;s:32:"Content-type: application/msword";}', 20000, 0, 0, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('pdf', 'a:1:{i:0;s:29:"Content-type: application/pdf";}', 20000, 0, 0, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('bmp', 'a:1:{i:0;s:26:"Content-type: image/bitmap";}', 20000, 620, 280, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('psd', 'a:1:{i:0;s:29:"Content-type: unknown/unknown";}', 20000, 0, 0, 1, 0);
+INSERT INTO forum_attachmenttype VALUES ('zip', 'a:1:{i:0;s:29:"Content-type: application/zip";}', 100000, 0, 0, 1, 0);
+
+
+--
+-- Name: forum_attachmenttype_key; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
+--
+
+ALTER TABLE ONLY forum_attachmenttype
+ ADD CONSTRAINT forum_attachmenttype_key PRIMARY KEY (extension);
+
+
+--
+-- change the views
+--
+
+DROP VIEW forum_user_vw;
+
+CREATE VIEW forum_user_vw AS
+ SELECT forum.msg_id, forum.group_forum_id, forum.posted_by, forum.subject, forum.body, forum.post_date, forum.is_followup_to, forum.thread_id, forum.has_followups, forum.most_recent_date,
+forum.bbcode_uid, users.user_name, users.realname FROM forum, users WHERE (forum.posted_by = users.user_id);
+
+
Deleted: trunk/gforge_base/gforge-4.8/db/20050822-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050822-drops.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050822-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,2 +0,0 @@
-drop table forum_attachment;
-drop table forum_attachmenttype;
Deleted: trunk/gforge_base/gforge-4.8/db/20050822.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20050822.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20050822.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,120 +0,0 @@
---
--- Modification to forum table for bbcode support
---
-
-alter table forum add bbcode_uid character varying(15);
-
---
--- forum_attachment
---
-
-
---
--- Name: forum_attachment; Type: TABLE; Schema: public; Owner: gforge; Tablespace:
---
-
-
-CREATE TABLE forum_attachment (
- attachmentid serial NOT NULL,
- userid integer DEFAULT 0 NOT NULL,
- dateline integer DEFAULT 0 NOT NULL,
- filename character varying(100) DEFAULT ''::character varying NOT NULL,
- filedata text NOT NULL,
- visible smallint DEFAULT (0)::smallint NOT NULL,
- counter smallint DEFAULT (0)::smallint NOT NULL,
- filesize integer DEFAULT 0 NOT NULL,
- msg_id integer DEFAULT 0 NOT NULL,
- filehash character varying(32) DEFAULT ''::character varying NOT NULL
-);
-
-
-
---
--- Name: filehash; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
---
-
-ALTER TABLE ONLY forum_attachment
- ADD CONSTRAINT filehash UNIQUE (filehash);
-
-
-
---
--- Name: forum_attachment_key; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
---
-
-ALTER TABLE ONLY forum_attachment
- ADD CONSTRAINT forum_attachment_key PRIMARY KEY (attachmentid);
-
-
-
---
--- Name: msg_id; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
---
-
-ALTER TABLE ONLY forum_attachment
- ADD CONSTRAINT msg_id UNIQUE (msg_id);
-
-
-
---
--- forum_attachmenttype
---
-
-
---
--- Name: forum_attachmenttype; Type: TABLE; Schema: public; Owner: gforge; Tablespace:
---
-
-
-CREATE TABLE forum_attachmenttype (
- extension character varying(20) DEFAULT ''::character varying NOT NULL,
- mimetype character varying(255) DEFAULT ''::character varying NOT NULL,
- size integer DEFAULT 0 NOT NULL,
- width smallint DEFAULT 0::smallint NOT NULL,
- height smallint DEFAULT 0::smallint NOT NULL,
- enabled smallint DEFAULT 1::smallint NOT NULL,
- display smallint DEFAULT 0::smallint NOT NULL
-);
-
-
-
---
--- Data for Name: forum_attachmenttype; Type: TABLE DATA; Schema: public; Owner: gforge
---
-
---COPY forum_attachmenttype (extension, mimetype, size, width, height, enabled, display) FROM stdin;
---compat for older version
-COPY forum_attachmenttype FROM stdin;
-gif a:1:{i:0;s:23:"Content-type: image/gif";} 20000 620 280 1 0
-jpeg a:1:{i:0;s:24:"Content-type: image/jpeg";} 20000 620 280 1 0
-jpg a:1:{i:0;s:24:"Content-type: image/jpeg";} 100000 0 0 1 0
-jpe a:1:{i:0;s:24:"Content-type: image/jpeg";} 20000 620 280 1 0
-txt a:1:{i:0;s:24:"Content-type: plain/text";} 20000 0 0 1 2
-png a:1:{i:0;s:23:"Content-type: image/png";} 20000 620 280 1 0
-doc a:2:{i:0;s:20:"Accept-ranges: bytes";i:1;s:32:"Content-type: application/msword";} 20000 0 0 1 0
-pdf a:1:{i:0;s:29:"Content-type: application/pdf";} 20000 0 0 1 0
-bmp a:1:{i:0;s:26:"Content-type: image/bitmap";} 20000 620 280 1 0
-psd a:1:{i:0;s:29:"Content-type: unknown/unknown";} 20000 0 0 1 0
-zip a:1:{i:0;s:29:"Content-type: application/zip";} 100000 0 0 1 0
-\.
-
-
---
--- Name: forum_attachmenttype_key; Type: CONSTRAINT; Schema: public; Owner: gforge; Tablespace:
---
-
-ALTER TABLE ONLY forum_attachmenttype
- ADD CONSTRAINT forum_attachmenttype_key PRIMARY KEY (extension);
-
-
---
--- change the views
---
-
-DROP VIEW forum_user_vw;
-
-CREATE VIEW forum_user_vw AS
- SELECT forum.msg_id, forum.group_forum_id, forum.posted_by, forum.subject, forum.body, forum.post_date, forum.is_followup_to, forum.thread_id, forum.has_followups, forum.most_recent_date,
-forum.bbcode_uid, users.user_name, users.realname FROM forum, users WHERE (forum.posted_by = users.user_id);
-
-
Modified: trunk/gforge_base/gforge-4.8/db/20051003.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20051003.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20051003.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,5 +1,5 @@
---ALTER TABLE plugin_cvstracker_data_master DROP COLUMN cvs_date;
---ALTER TABLE plugin_cvstracker_data_master ADD COLUMN cvs_date int;
---UPDATE plugin_cvstracker_data_master SET cvs_date=extract(epoch from now());
---ALTER TABLE plugin_cvstracker_data_master ALTER COLUMN cvs_date SET NOT NULL;
-
+ALTER TABLE plugin_cvstracker_data_master ADD COLUMN cvs_date_int int;
+UPDATE plugin_cvstracker_data_master SET cvs_date_int=extract(epoch from cvs_date);
+ALTER TABLE plugin_cvstracker_data_master DROP COLUMN cvs_date;
+ALTER TABLE plugin_cvstracker_data_master RENAME COLUMN cvs_date_int TO cvs_date;
+ALTER TABLE plugin_cvstracker_data_master ALTER COLUMN cvs_date SET NOT NULL;
\ No newline at end of file
Added: trunk/gforge_base/gforge-4.8/db/20060216-1-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20060216-1-drops.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20060216-1-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1 @@
+DROP VIEW activity_vw;
Added: trunk/gforge_base/gforge-4.8/db/20060216-2-debian-nocommit.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20060216-2-debian-nocommit.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20060216-2-debian-nocommit.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,38 @@
+
+CREATE VIEW activity_vw AS
+SELECT
+agl.group_id, 'trackeropen'::text AS section, agl.group_artifact_id AS ref_id,
+a.artifact_id as subref_id, a.summary as description, a.open_date AS activity_date, u.user_id, u.user_name, u.realname
+FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
+users u WHERE u.user_id=a.submitted_by
+UNION
+SELECT
+agl.group_id, 'trackerclose'::text AS section, agl.group_artifact_id AS ref_id,
+a.artifact_id as subref_id, a.summary as description, a.close_date AS activity_date, u.user_id, u.user_name, u.realname
+FROM artifact_group_list agl JOIN artifact a using (group_artifact_id), users u WHERE u.user_id=a.assigned_to
+--actually should join against
+AND a.close_date > 0
+UNION
+SELECT
+frsp.group_id, 'frsrelease'::text as section,frsp.package_id as ref_id,
+frsr.release_id as subref_id, frsr.name AS description, frsr.release_date AS activity_date,
+u.user_id, u.user_name, u.realname FROM frs_package frsp JOIN frs_release frsr USING (package_id), users u WHERE
+u.user_id=frsr.released_by
+UNION
+SELECT
+fgl.group_id, 'forumpost'::text as section,fgl.group_forum_id as ref_id, forum.msg_id
+as subref_id, forum.subject AS description, forum.post_date AS activity_date, u.user_id,
+u.user_name, u.realname FROM forum_group_list fgl JOIN forum USING (group_forum_id), users u WHERE
+u.user_id=forum.posted_by
+;
+
+CREATE TABLE group_activity_monitor (
+group_id int not null CONSTRAINT group_id REFERENCES groups(group_id) ON DELETE CASCADE,
+user_id int NOT NULL CONSTRAINT userid_fk REFERENCES users(user_id),
+filter text,
+PRIMARY KEY (group_id,user_id)
+);
+
+CREATE RULE groupactivity_userdelete_rule AS ON UPDATE TO USERS DO
+ DELETE FROM group_activity_monitor WHERE user_id =(CASE WHEN NEW.status='D'
+ THEN NEW.user_id ELSE 0 END);
Added: trunk/gforge_base/gforge-4.8/db/20060216-2.sql
===================================================================
--- trunk/gforge_base/gforge-4.8/db/20060216-2.sql (rev 0)
+++ trunk/gforge_base/gforge-4.8/db/20060216-2.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -0,0 +1,46 @@
+CREATE VIEW activity_vw AS
+SELECT
+agl.group_id, 'trackeropen'::text AS section, agl.group_artifact_id AS ref_id,
+a.artifact_id as subref_id, a.summary as description, a.open_date AS activity_date, u.user_id, u.user_name, u.realname
+FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
+users u WHERE u.user_id=a.submitted_by
+UNION
+SELECT
+agl.group_id, 'trackerclose'::text AS section, agl.group_artifact_id AS ref_id,
+a.artifact_id as subref_id, a.summary as description, a.close_date AS activity_date, u.user_id, u.user_name, u.realname
+FROM artifact_group_list agl JOIN artifact a using (group_artifact_id), users u WHERE u.user_id=a.assigned_to
+--actually should join against
+AND a.close_date > 0
+UNION
+SELECT
+agl.group_id, 'commit'::text AS section, agl.group_artifact_id AS ref_id,
+a.artifact_id as subref_id, pcdm.log_text AS description, pcdm.cvs_date AS activity_date, u.user_id, u.user_name, u.realname
+FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
+plugin_cvstracker_data_master pcdm, plugin_cvstracker_data_artifact pcda, users u
+WHERE pcdm.holder_id=pcda.id
+AND pcda.group_artifact_id=a.artifact_id
+AND u.user_name=pcdm.author
+UNION
+SELECT
+frsp.group_id, 'frsrelease'::text as section,frsp.package_id as ref_id,
+frsr.release_id as subref_id, frsr.name AS description, frsr.release_date AS activity_date,
+u.user_id, u.user_name, u.realname FROM frs_package frsp JOIN frs_release frsr USING (package_id), users u WHERE
+u.user_id=frsr.released_by
+UNION
+SELECT
+fgl.group_id, 'forumpost'::text as section,fgl.group_forum_id as ref_id, forum.msg_id
+as subref_id, forum.subject AS description, forum.post_date AS activity_date, u.user_id,
+u.user_name, u.realname FROM forum_group_list fgl JOIN forum USING (group_forum_id), users u WHERE
+u.user_id=forum.posted_by
+;
+
+CREATE TABLE group_activity_monitor (
+group_id int not null CONSTRAINT group_id REFERENCES groups(group_id) ON DELETE CASCADE,
+user_id int NOT NULL CONSTRAINT userid_fk REFERENCES users(user_id),
+filter text,
+PRIMARY KEY (group_id,user_id)
+);
+
+CREATE RULE groupactivity_userdelete_rule AS ON UPDATE TO USERS DO
+ DELETE FROM group_activity_monitor WHERE user_id =(CASE WHEN NEW.status='D'
+ THEN NEW.user_id ELSE 0 END);
Deleted: trunk/gforge_base/gforge-4.8/db/20060216-drops.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20060216-drops.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20060216-drops.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1 +0,0 @@
-DROP VIEW activity_vw;
Deleted: trunk/gforge_base/gforge-4.8/db/20060216-nocommit.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20060216-nocommit.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20060216-nocommit.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,38 +0,0 @@
-
-CREATE VIEW activity_vw AS
-SELECT
-agl.group_id, 'trackeropen'::text AS section, agl.group_artifact_id AS ref_id,
-a.artifact_id as subref_id, a.summary as description, a.open_date AS activity_date, u.user_id, u.user_name, u.realname
-FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
-users u WHERE u.user_id=a.submitted_by
-UNION
-SELECT
-agl.group_id, 'trackerclose'::text AS section, agl.group_artifact_id AS ref_id,
-a.artifact_id as subref_id, a.summary as description, a.close_date AS activity_date, u.user_id, u.user_name, u.realname
-FROM artifact_group_list agl JOIN artifact a using (group_artifact_id), users u WHERE u.user_id=a.assigned_to
---actually should join against
-AND a.close_date > 0
-UNION
-SELECT
-frsp.group_id, 'frsrelease'::text as section,frsp.package_id as ref_id,
-frsr.release_id as subref_id, frsr.name AS description, frsr.release_date AS activity_date,
-u.user_id, u.user_name, u.realname FROM frs_package frsp JOIN frs_release frsr USING (package_id), users u WHERE
-u.user_id=frsr.released_by
-UNION
-SELECT
-fgl.group_id, 'forumpost'::text as section,fgl.group_forum_id as ref_id, forum.msg_id
-as subref_id, forum.subject AS description, forum.post_date AS activity_date, u.user_id,
-u.user_name, u.realname FROM forum_group_list fgl JOIN forum USING (group_forum_id), users u WHERE
-u.user_id=forum.posted_by
-;
-
-CREATE TABLE group_activity_monitor (
-group_id int not null CONSTRAINT group_id REFERENCES groups(group_id) ON DELETE CASCADE,
-user_id int NOT NULL CONSTRAINT userid_fk REFERENCES users(user_id),
-filter text,
-PRIMARY KEY (group_id,user_id)
-);
-
-CREATE RULE groupactivity_userdelete_rule AS ON UPDATE TO USERS DO
- DELETE FROM group_activity_monitor WHERE user_id =(CASE WHEN NEW.status='D'
- THEN NEW.user_id ELSE 0 END);
Deleted: trunk/gforge_base/gforge-4.8/db/20060216.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/20060216.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/20060216.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,47 +0,0 @@
-
-CREATE VIEW activity_vw AS
-SELECT
-agl.group_id, 'trackeropen'::text AS section, agl.group_artifact_id AS ref_id,
-a.artifact_id as subref_id, a.summary as description, a.open_date AS activity_date, u.user_id, u.user_name, u.realname
-FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
-users u WHERE u.user_id=a.submitted_by
-UNION
-SELECT
-agl.group_id, 'trackerclose'::text AS section, agl.group_artifact_id AS ref_id,
-a.artifact_id as subref_id, a.summary as description, a.close_date AS activity_date, u.user_id, u.user_name, u.realname
-FROM artifact_group_list agl JOIN artifact a using (group_artifact_id), users u WHERE u.user_id=a.assigned_to
---actually should join against
-AND a.close_date > 0
-UNION
-SELECT
-agl.group_id, 'commit'::text AS section, agl.group_artifact_id AS ref_id,
-a.artifact_id as subref_id, pcdm.log_text AS description, pcdm.cvs_date AS activity_date, u.user_id, u.user_name, u.realname
-FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
-plugin_cvstracker_data_master pcdm, plugin_cvstracker_data_artifact pcda, users u
-WHERE pcdm.holder_id=pcda.id
-AND pcda.group_artifact_id=a.artifact_id
-AND u.user_name=pcdm.author
-UNION
-SELECT
-frsp.group_id, 'frsrelease'::text as section,frsp.package_id as ref_id,
-frsr.release_id as subref_id, frsr.name AS description, frsr.release_date AS activity_date,
-u.user_id, u.user_name, u.realname FROM frs_package frsp JOIN frs_release frsr USING (package_id), users u WHERE
-u.user_id=frsr.released_by
-UNION
-SELECT
-fgl.group_id, 'forumpost'::text as section,fgl.group_forum_id as ref_id, forum.msg_id
-as subref_id, forum.subject AS description, forum.post_date AS activity_date, u.user_id,
-u.user_name, u.realname FROM forum_group_list fgl JOIN forum USING (group_forum_id), users u WHERE
-u.user_id=forum.posted_by
-;
-
-CREATE TABLE group_activity_monitor (
-group_id int not null CONSTRAINT group_id REFERENCES groups(group_id) ON DELETE CASCADE,
-user_id int NOT NULL CONSTRAINT userid_fk REFERENCES users(user_id),
-filter text,
-PRIMARY KEY (group_id,user_id)
-);
-
-CREATE RULE groupactivity_userdelete_rule AS ON UPDATE TO USERS DO
- DELETE FROM group_activity_monitor WHERE user_id =(CASE WHEN NEW.status='D'
- THEN NEW.user_id ELSE 0 END);
Modified: trunk/gforge_base/gforge-4.8/db/upgrade-db.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/db/upgrade-db.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/db/upgrade-db.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -107,7 +107,7 @@
if (strlen($name) >= 8) {
$date_aux = substr($name, 0, 8);
$type_aux = substr($file, $pos + 1);
- if ((int) $date_aux > 20000000 && $type_aux=='sql' || $type_aux=='php') {
+ if ((int) $date_aux > 20000000 && ($type_aux=='sql' || $type_aux=='php') && strpos($file, 'debian') === false) {
$data[] = array('date'=>$date_aux, 'filename'=>$file, 'ext'=>$type_aux);
}
}
@@ -115,12 +115,17 @@
}
closedir($dh);
}
- sort($data);
+ usort($data, 'compare_scripts');
reset($data);
}
+
return $data;
}
+function compare_scripts($script1, $script2) {
+ return strcmp($script1['filename'], $script2['filename']);
+}
+
function run_script($script) {
global $db_path;
$return = false;
@@ -183,7 +188,7 @@
$content = preg_replace("/--(.*)/", '', $content);
- $parts = explode(';', $content);
+ $parts = explode(";\n", $content);
$queries = array();
$query_temp = '';
$is_function = false;
@@ -206,7 +211,7 @@
} else if (in_string($q, 'copy') && in_string($q, 'from stdin')) {
while (!in_string($q, '\.')) {
$i++;
- $q = $q.';'.$parts[$i];
+ $q = $q.";\n".$parts[$i];
}
$aux = explode('\.', $q, 2);
$queries[] = ltrim($aux[0]."\\.\n");
@@ -216,7 +221,7 @@
// Else, we just add it up
} else {
if (trim($q) != '') {
- $queries[] = trim($q);
+ $queries[] = trim(preg_replace("/\s+/", ' ', str_replace("\n", ' ', $q)));
}
}
}
@@ -230,7 +235,7 @@
if (in_string($query, 'drop table')) {
$aux = explode(' ', trim($query));
if (count($aux) == 3 || count($aux) == 4) { // PERFECT!
- drop_table_if_exists($aux[2]);
+ drop_table_if_exists($aux[2], (count($aux) == 4) && preg_match('/CASCADE/i', trim($aux[3])));
} else {
print_r($aux);
}
@@ -258,6 +263,21 @@
} else {
print_r($aux);
}
+ // Check if it is a DROP INDEX
+ } else if (in_string($query, 'drop index')) {
+ $aux = explode(' ', trim($query));
+ if (count($aux) == 3 || count($aux) == 4) { // PERFECT!
+ drop_index_if_exists($aux[2]);
+ } else {
+ print_r($aux);
+ }
+ // Check if it is a DROP CONSTRAINT
+ } else if (in_string($query, 'alter table') && in_string($query, 'drop constraint')) {
+ $aux = explode(' ', trim($query));
+ $table = trim($aux[2], "\" ");
+ $constraint = trim($aux[5], "\" ");
+
+ drop_constraint_if_exists($table, $constraint, $query);
} else {
$res = db_query($query);
if (!$res) {
@@ -266,7 +286,7 @@
show("Continue executing ([Y]es/[N]o)?\n");
// Read the input
$answer = strtolower(trim(fgets(STDIN)));
- if ($answer != 'y' && $anser != 'yes') {
+ if ($answer != 'y' && $answer != 'yes') {
//db_rollback();
return false;
} else {
@@ -376,19 +396,28 @@
return $result;
}
-function drop_table_if_exists($name) {
- $result = drop_if_exists($name, 'DROP TABLE', 'r');
+function drop_index_if_exists($name) {
+ $result = drop_if_exists($name, 'DROP INDEX', 'i');
return $result;
}
-function drop_if_exists($name, $command, $kind) {
+function drop_table_if_exists($name, $cascade) {
+ if($cascade) {
+ $result = drop_if_exists($name, 'DROP TABLE', 'r', 'CASCADE');
+ } else {
+ $result = drop_if_exists($name, 'DROP TABLE', 'r');
+ }
+ return $result;
+}
+
+function drop_if_exists($name, $command, $kind, $commandSuffix = '') {
$res = db_query("SELECT COUNT(*) AS exists FROM pg_class WHERE relname='$name' AND relkind='$kind'");
if (!$res) {
show("ERROR:".db_error()."\n");
return false;
}
if (db_result($res, 0, 'exists') != '0') {
- $res = db_query("$command $name");
+ $res = db_query("$command $name $commandSuffix");
if (!$res) {
show("ERROR:".db_error()."\n");
//db_rollback();
@@ -398,6 +427,21 @@
return true;
}
+function drop_constraint_if_exists($table, $constraint, $query) {
+ $res = db_query("SELECT COUNT(*) AS exists FROM information_schema.constraint_table_usage WHERE table_name='$table' AND constraint_name='$constraint'");
+ if (!$res) {
+ show("ERROR:".db_error()."\n");
+ return false;
+ }
+ if (db_result($res, 0, 'exists') != '0') {
+ $res = db_query($query);
+ if (!$res) {
+ show("ERROR:".db_error()."\n");
+ }
+ }
+ return true;
+}
+
function drop_trigger_if_exists($name, $on) {
$res = db_query("SELECT COUNT(*) AS exists FROM pg_trigger WHERE tgname='$name'");
if (!$res) {
@@ -431,4 +475,4 @@
fwrite(STDOUT, $text);
}
-?>
+?>
\ No newline at end of file
Modified: trunk/gforge_base/gforge-4.8/deb-specific/db-upgrade.pl
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/deb-specific/db-upgrade.pl 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/deb-specific/db-upgrade.pl 2009-09-21 09:00:23 UTC (rev 154)
@@ -835,9 +835,9 @@
$version = &get_db_version ;
$target = "2.6-0+checkpoint+14" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20021213.sql") ;
+ &debug ("Upgrading with 20021213-1.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20021213.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20021213-1.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -944,9 +944,9 @@
$version = &get_db_version ;
$target = "2.6-0+checkpoint+19" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20021223.sql") ;
+ &debug ("Upgrading with 20021223-2.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20021223.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20021223-2.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -964,9 +964,9 @@
$version = &get_db_version ;
$target = "2.6-0+checkpoint+20" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20030102.sql") ;
+ &debug ("Upgrading with 20030102-2.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20030102.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20030102-2.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -1075,9 +1075,9 @@
$version = &get_db_version ;
$target = "2.6-0+checkpoint+25" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20030113.sql") ;
+ &debug ("Upgrading with 20030113-2.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20030113.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20030113-2.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -2139,9 +2139,9 @@
$version = &get_db_version ;
$target = "4.1-0" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20050224.sql") ;
+ &debug ("Upgrading with 20050224-2.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20050224.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20050224-2.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -2219,9 +2219,9 @@
$version = &get_db_version ;
$target = "4.1-4" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20050325-1.sql") ;
+ &debug ("Upgrading with 20050325-2.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20050325-1.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20050325-2.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -2435,9 +2435,9 @@
$version = &get_db_version ;
$target = "4.1-6" ;
if (&is_lesser ($version, $target)) {
- &debug ("Upgrading with 20050325-3.sql") ;
+ &debug ("Upgrading with 20050325-5.sql") ;
- @reqlist = @{ &parse_sql_file ("$sqldir/20050325-3.sql") } ;
+ @reqlist = @{ &parse_sql_file ("$sqldir/20050325-5.sql") } ;
foreach my $s (@reqlist) {
$query = $s ;
# debug $query ;
@@ -2680,14 +2680,14 @@
# If the view doesn't exists apply
if (! &view_exists ($dbh, 'activity_vw')) {
&update_with_sql("20050812","4.5.15-10merge");
- &update_with_sql("20050822","4.5.15-11merge");
+ &update_with_sql("20050822-2","4.5.15-11merge");
&update_with_sql("20050823","4.5.15-12merge");
&update_with_sql("20050824","4.5.15-13merge");
&update_with_sql("20050831","4.5.15-14merge");
&update_with_sql("20060113","4.5.15-15");
&update_with_sql("20060214","4.5.15-16");
- &update_with_sql("20060216-nocommit","4.5.15-17");
+ &update_with_sql("20060216-2-debian-nocommit","4.5.15-17");
}
$version = &get_db_version ;
Modified: trunk/gforge_base/gforge-4.8/debian/changelog
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/debian/changelog 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/debian/changelog 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,3 +1,28 @@
+gforge (4.8-3evolvis1) unreleased; urgency=low
+
+ * Upstream sync
+
+ -- Thorsten Glaser <t.glaser at tarent.de> Mon, 21 Sep 2009 10:52:33 +0200
+
+gforge (4.8-3) unstable; urgency=low
+
+ * New upstream snapshot as of SVN r7960.
+
+ -- Roland Mas <lolando at debian.org> Thu, 27 Aug 2009 10:47:54 +0200
+
+gforge (4.8-2) unstable; urgency=low
+
+ * Upload to Debian unstable, with a new upstream snapshot as of SVN
+ r7945.
+
+ -- Roland Mas <lolando at debian.org> Thu, 06 Aug 2009 11:25:16 +0200
+
+gforge (4.8-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Roland Mas <lolando at debian.org> Fri, 12 Jun 2009 13:44:57 +0200
+
gforge (4.8~rc2-1evolvis1) unreleased; urgency=low
* Upstream sync
@@ -47,6 +72,13 @@
-- Roland Mas <lolando at debian.org> Tue, 28 Apr 2009 15:33:18 +0200
+gforge (4.7.3-2) unstable; urgency=high
+
+ * Fixed SQL injection and possible cross-site scripting vulnerabilities
+ due to insufficient input sanitizing (CVE ids pending).
+
+ -- Roland Mas <lolando at debian.org> Mon, 15 Jun 2009 16:10:06 +0200
+
gforge (4.7.3-1) unstable; urgency=low
* New upstream release.
Modified: trunk/gforge_base/gforge-4.8/debian/patches/use-snoopy-from-distro.dpatch
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/debian/patches/use-snoopy-from-distro.dpatch 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/debian/patches/use-snoopy-from-distro.dpatch 2009-09-21 09:00:23 UTC (rev 154)
@@ -7,23 +7,44 @@
@DPATCH@
diff -urNad gforge~/plugins/cvstracker/bin/post.php gforge/plugins/cvstracker/bin/post.php
---- gforge~/plugins/cvstracker/bin/post.php 2007-09-03 18:08:13.000000000 +0200
-+++ gforge/plugins/cvstracker/bin/post.php 2007-09-25 09:34:07.000000000 +0200
-@@ -33,7 +33,7 @@
-
- //require ('local.inc'); we don´t need this file. also, in some installations this file cannot be accessed by the caller (perms problem)
- require $gfconfig.'plugins/cvstracker/config.php';
--require $gfplugins.'cvstracker/common/Snoopy.class.php';
-+require '/usr/share/php/libphp-snoopy/Snoopy.class.php';
+--- gforge~/plugins/cvstracker/bin/post.php 2009-06-07 14:20:47.000000000 +0200
++++ gforge/plugins/cvstracker/bin/post.php 2009-06-07 17:24:09.000000000 +0200
+@@ -34,7 +34,7 @@
+ require dirname(__FILE__).'/../../env.inc.php';
+ require_once ($gfconfig.'plugins/cvstracker/config.php');
+ require_once ($gfcommon.'common/include/utils.php');
+-require_once ($gfplugins.'cvstracker/common/Snoopy.class.php');
++require_once ('/usr/share/php/libphp-snoopy/Snoopy.class.php');
if ($cvs_binary_version != "1.12" &&
+diff -urNad gforge~/plugins/cvstracker/bin/post.php.rej gforge/plugins/cvstracker/bin/post.php.rej
+--- gforge~/plugins/cvstracker/bin/post.php.rej 1970-01-01 01:00:00.000000000 +0100
++++ gforge/plugins/cvstracker/bin/post.php.rej 2009-06-07 17:22:33.000000000 +0200
+@@ -0,0 +1,17 @@
++***************
++*** 33,39 ****
++
++ //require ('local.inc'); we don´t need this file. also, in some installations this file cannot be accessed by the caller (perms problem)
++ require $gfconfig.'plugins/cvstracker/config.php';
++- require $gfplugins.'cvstracker/common/Snoopy.class.php';
++
++
++ if ($cvs_binary_version != "1.12" &&
++--- 33,39 ----
++
++ //require ('local.inc'); we don´t need this file. also, in some installations this file cannot be accessed by the caller (perms problem)
++ require $gfconfig.'plugins/cvstracker/config.php';
+++ require '/usr/share/php/libphp-snoopy/Snoopy.class.php';
++
++
++ if ($cvs_binary_version != "1.12" &&
diff -urNad gforge~/plugins/scmcvs/bin/aclcheck.php gforge/plugins/scmcvs/bin/aclcheck.php
---- gforge~/plugins/scmcvs/bin/aclcheck.php 2007-09-03 18:08:13.000000000 +0200
-+++ gforge/plugins/scmcvs/bin/aclcheck.php 2007-09-25 09:33:25.000000000 +0200
+--- gforge~/plugins/scmcvs/bin/aclcheck.php 2009-06-02 20:33:08.000000000 +0200
++++ gforge/plugins/scmcvs/bin/aclcheck.php 2009-06-07 17:22:33.000000000 +0200
@@ -30,7 +30,7 @@
- }
-
+ require_once dirname(__FILE__).'/../../env.inc.php';
+ require_once $gfwww.'include/squal_pre.php';
require_once $gfconfig.'plugins/scmcvs/config.php';
-require $gfplugins.'scmcvs/common/Snoopy.class.php';
+require '/usr/share/php/libphp-snoopy/Snoopy.class.php';
@@ -31,8 +52,8 @@
// Input cleansing
$env_cvsroot = (string) $_ENV['CVSROOT'];
diff -urNad gforge~/plugins/svntracker/bin/post.php gforge/plugins/svntracker/bin/post.php
---- gforge~/plugins/svntracker/bin/post.php 2007-09-03 18:08:13.000000000 +0200
-+++ gforge/plugins/svntracker/bin/post.php 2007-09-25 09:33:46.000000000 +0200
+--- gforge~/plugins/svntracker/bin/post.php 2009-05-15 18:55:18.000000000 +0200
++++ gforge/plugins/svntracker/bin/post.php 2009-06-07 17:22:33.000000000 +0200
@@ -32,7 +32,7 @@
Modified: trunk/gforge_base/gforge-4.8/fusionforge.spec
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/fusionforge.spec 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/fusionforge.spec 2009-09-21 09:00:23 UTC (rev 154)
@@ -158,6 +158,7 @@
install -m 755 -d $RPM_BUILD_ROOT/%{UPLOAD_DIR}
#install -m 755 -d $RPM_BUILD_ROOT/%{CACHE_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{SCM_TARBALLS_DIR}
+install -m 755 -d $RPM_BUILD_ROOT/%{SCM_SNAPSHOTS_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{PLUGINS_LIB_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{SBIN_DIR}
install -m 755 -d $RPM_BUILD_ROOT/%{HTTPD_CONF_DIR}/conf.d
@@ -372,6 +373,7 @@
%{GFORGE_LANG_DIR}
%{GFORGE_CONF_DIR}
%{SCM_TARBALLS_DIR}
+%{SCM_SNAPSHOTS_DIR}
%changelog
* Wed Jun 29 2005 Open Wide <guillaume.smet at openwide.fr>
Deleted: trunk/gforge_base/gforge-4.8/image-sources/fusionforge-logo.xcf
===================================================================
(Binary files differ)
Copied: trunk/gforge_base/gforge-4.8/image-sources/fusionforge-logo.xcf (from rev 153, vendor/gforge-4.8/image-sources/fusionforge-logo.xcf)
===================================================================
(Binary files differ)
Property changes on: trunk/gforge_base/gforge-4.8/image-sources/fusionforge-logo.xcf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Name: svn:mergeinfo
+
Modified: trunk/gforge_base/gforge-4.8/plugins/cvstracker/bin/post.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/cvstracker/bin/post.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/cvstracker/bin/post.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -31,8 +31,10 @@
*/
//require ('local.inc'); we don't need this file. also, in some installations this file cannot be accessed by the caller (perms problem)
-require $gfconfig.'plugins/cvstracker/config.php';
-require $gfplugins.'cvstracker/common/Snoopy.class.php';
+require dirname(__FILE__).'/../../env.inc.php';
+require_once ($gfconfig.'plugins/cvstracker/config.php');
+require_once ($gfcommon.'common/include/utils.php');
+require_once ($gfplugins.'cvstracker/common/Snoopy.class.php');
if ($cvs_binary_version != "1.12" &&
@@ -103,6 +105,7 @@
$Lines = explode("\n", $Input);
$ii = count($Lines);
$Logging=false;
+ $Log = "";
for ( $i=0; $i < $ii ; $i++ )
{
if ($Logging==true)
@@ -122,7 +125,7 @@
}
if( $cvs_binary_version == "1.11" ) {
- if ($argc != 3 ) {
+ if ($argc <= 3 ) {
usage ( $argv );
}
Modified: trunk/gforge_base/gforge-4.8/plugins/cvstracker/common/cvstrackerPlugin.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/cvstracker/common/cvstrackerPlugin.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/cvstracker/common/cvstrackerPlugin.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -118,7 +118,7 @@
*
*/
function getFileLink($GroupName, $FileName, $LatestRevision) {
- return url_make_link ('/scm/viewvc.php/'.$FileName .
+ return util_make_link ('/scm/viewvc.php/'.$FileName .
'?root='.$GroupName.'&view=log',
$FileName);
}
@@ -134,7 +134,7 @@
*
*/
function getActualVersionLink($GroupName, $FileName, $Version) {
- return url_make_link ('/scm/viewvc.php/'.$FileName .
+ return util_make_link ('/scm/viewvc.php/'.$FileName .
'?root='.$GroupName.'&pathrev='.$Version .
'&view=markup',
$Version);
@@ -152,7 +152,7 @@
*
*/
function getDiffLink($GroupName, $FileName, $PrevVersion, $ActualVersion) {
- return url_make_link ('/scm/viewvc.php/'.$FileName .
+ return util_make_link ('/scm/viewvc.php/'.$FileName .
'?root='.$GroupName.'&r1='.$PrevVersion .
'&r2='.$ActualVersion,
_('Diff To').' '.$PrevVersion);
@@ -165,7 +165,7 @@
* @param string $path The filename of loginfo
*
*/
- function addCvsTrackerToFile($path) {
+ function addCvsTrackerToFile($group, $path) {
global $sys_plugins_path, $sys_users_host, $cvs_binary_version;
$FOut = fopen($path, "a");
@@ -179,7 +179,7 @@
if ( $cvs_binary_version == "1.11") {
$Line = "ALL ( php -q -d include_path=".ini_get('include_path').
" ".$sys_plugins_path."/cvstracker/bin/post.php".
- " %r %{sVv} )\n";
+ " ".$group->getUnixName()." %{sVv} )\n";
}
fwrite($FOut,$Line);
fwrite($FOut, "# END added by gforge-plugin-cvstracker\n");
@@ -200,7 +200,7 @@
if ( $cvs_binary_version == "1.11" ) {
$array[] = "ALL ( php -q -d include_path=".ini_get('include_path').
" ".$sys_plugins_path."/cvstracker/bin/post.php".
- " %r %{sVv} )\n";
+ " ".$group->getUnixName()." %{sVv} )\n";
}else { //it's version 1.12
$array[] = "ALL ( php -q -d include_path=".ini_get('include_path').
" ".$sys_plugins_path."/cvstracker/bin/post.php".
@@ -320,13 +320,14 @@
if($LineFound==FALSE) {
$newfile=getCvsFile($params["file_name"],
"CVSROOT/loginfo");
- $this->addCvsTrackerToFile($newfile);
+ $this->addCvsTrackerToFile($group, $newfile);
$this->putCvsFile($params["file_name"],
$newfile);
}
}
} elseif ($hookname == "get_cvs_loginfo_lines") {
- $GLOBALS['loginfo_lines']=$this->getCvsTrackerLogInfoLines();
+ $group = &group_get_object($group_id);
+ $GLOBALS['loginfo_lines']=$this->getCvsTrackerLogInfoLines($group);
}
}
}
Modified: trunk/gforge_base/gforge-4.8/plugins/cvstracker/www/newcommit.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/cvstracker/www/newcommit.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/cvstracker/www/newcommit.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -15,6 +15,7 @@
* store in DB the commit info attached to the tracker or task.
*
*/
+require_once dirname(__FILE__)."/../../env.inc.php";
require_once $gfwww.'include/squal_pre.php';
require_once $gfconfig.'plugins/cvstracker/config.php';
@@ -25,7 +26,7 @@
*/
$Config = array();
$SubmittedVars = array();
-$SubmittedVars = unserialize(str_replace('\"','"',$_POST['data']));
+$SubmittedVars = unserialize(str_replace('\\\\', '\\', str_replace('\"','"',$_POST['data'])));
$i = 0;
foreach ($SubmittedVars as $SubmittedVar) {
Modified: trunk/gforge_base/gforge-4.8/plugins/scmcvs/bin/aclcheck.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/scmcvs/bin/aclcheck.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/scmcvs/bin/aclcheck.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -27,6 +27,9 @@
exit(1);
}
+require_once dirname(__FILE__).'/../../env.inc.php';
+require $gfcgfile;
+require_once $gfcommon.'include/utils.php';
require_once $gfconfig.'plugins/scmcvs/config.php';
require $gfplugins.'scmcvs/common/Snoopy.class.php';
Modified: trunk/gforge_base/gforge-4.8/plugins/scmcvs/common/Snoopy.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/scmcvs/common/Snoopy.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/scmcvs/common/Snoopy.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -287,7 +287,12 @@
}
else
{
- $path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : "");
+ if (isset($URI_PARTS["query"]))
+ {
+ $path = $URI_PARTS["path"].$URI_PARTS["query"];
+ }else {
+ $path = $URI_PARTS["path"];
+ }
// no proxy, send only the path
$this->_httprequest($path, $fp, $URI, $this->_submit_method, $this->_submit_type, $postdata);
}
@@ -1137,6 +1142,7 @@
{
settype($formvars, "array");
settype($formfiles, "array");
+ $postdata = "";
if (count($formvars) == 0 && count($formfiles) == 0)
return;
Modified: trunk/gforge_base/gforge-4.8/plugins/scmcvs/cron.d/fusionforge-plugin-scmcvs
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/scmcvs/cron.d/fusionforge-plugin-scmcvs 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/scmcvs/cron.d/fusionforge-plugin-scmcvs 2009-09-21 09:00:23 UTC (rev 154)
@@ -39,7 +39,7 @@
#
# Create CVS tarballs
#
-#5 2 * * * root $PHP $FUSIONFORGE/plugins/plugins/scmcvs/cronjobs/tarballs.php
+5 2 * * * root $PHP $FUSIONFORGE/plugins/scmcvs/cronjobs/tarballs.php
#
# Create CVS snapshots
@@ -47,4 +47,4 @@
# CVSROOT and SCMSNAPSHOTSDIR variables are hard-coded in the script, so
# you'll have to edit the script if necessary.
#
-#35 2 * * * root /bin/sh $FUSIONFORGE/plugins/plugins/scmcvs/cronjobs/snapshots.sh generate
+35 2 * * * root /bin/sh $FUSIONFORGE/plugins/scmcvs/cronjobs/snapshots.sh generate
Modified: trunk/gforge_base/gforge-4.8/plugins/scmcvs/cronjobs/history_parse.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/scmcvs/cronjobs/history_parse.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/scmcvs/cronjobs/history_parse.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -167,9 +167,11 @@
if ( ($time_parsed > $day_begin) && ($time_parsed < $day_end) ) {
if ( $type == 'M' ) {
$cvs_commit++;
+ if(!isset($usr_commit[$user])) $usr_commit[$user] = 0;
$usr_commit[$user]++;
} elseif ( $type == 'A' ) {
$cvs_add++;
+ if(!isset($usr_add[$user])) $usr_add[$user] = 0;
$usr_add[$user]++;
} elseif ( $type == 'O' || $type == 'E' ) {
$cvs_co++;
@@ -253,7 +255,7 @@
exit;
}
-if ( $ARGV[1] && $ARGV[2] && $ARGV[3] ) {
+if ( isset($ARGV[1]) && isset($ARGV[2]) && isset($ARGV[3]) ) {
$day_begin = gmmktime( 0, 0, 0, $ARGV[2], $ARGV[3], $ARGV[1] );
// $day_begin = timegm( 0, 0, 0, $ARGV[2], $ARGV[1] - 1, $ARGV[0] - 1900 );
@@ -265,7 +267,7 @@
} else {
db_commit();
}
-} else if($ARGV[1]=='all' && !$ARGV[2] && !$ARGV[3]) {
+} else if(isset($ARGV) && $ARGV[1]=='all' && !isset($ARGV[2]) && !isset($ARGV[3])) {
// Heavy (rarely used) operation, allow for 8hrs
ini_set('max_execution_time', '30000');
@@ -299,12 +301,6 @@
}
}
-if ( $rollback ) {
- db_rollback();
-} else {
- db_commit();
-}
-
cron_entry(14,$err);
?>
Modified: trunk/gforge_base/gforge-4.8/plugins/scmsvn/db/scmsvn-init.sql
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/scmsvn/db/scmsvn-init.sql 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/scmsvn/db/scmsvn-init.sql 2009-09-21 09:00:23 UTC (rev 154)
@@ -1,4 +1,4 @@
-DROP TABLE plugin_scmsvn_group_usage;
-DROP TABLE plugin_scmsvn_stats;
-DROP SEQUENCE plugin_scmsvn_grp_usage_pk_seq;
-DROP SEQUENCE plugin_scmsvn_stats_pk_seq;
+DROP TABLE IF EXISTS plugin_scmsvn_group_usage;
+DROP TABLE IF EXISTS plugin_scmsvn_stats;
+DROP SEQUENCE IF EXISTS plugin_scmsvn_grp_usage_pk_seq;
+DROP SEQUENCE IF EXISTS plugin_scmsvn_stats_pk_seq;
Modified: trunk/gforge_base/gforge-4.8/plugins/svntracker/common/svntrackerPlugin.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/svntracker/common/svntrackerPlugin.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/svntracker/common/svntrackerPlugin.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -111,7 +111,7 @@
*
*/
function getFileLink($GroupName, $FileName, $LatestRevision) {
- return util_make_link ('/plugins/scmsvn/viewcvs.php/'.$FileName .
+ return util_make_link ('/scm/viewvc.php'.$FileName .
'?root='.$GroupName.'&view=log&rev=' .
$LatestRevision,
$FileName) ;
@@ -128,7 +128,7 @@
*
*/
function getActualVersionLink($GroupName, $FileName, $Version) {
- return util_make_link ('/plugins/scmsvn/viewcvs.php/'.$FileName .
+ return util_make_link ('/scm/viewvc.php'.$FileName .
'?root='.$GroupName.'&rev='.$Version,
$Version);
}
@@ -145,7 +145,7 @@
*
*/
function getDiffLink($GroupName, $FileName, $PrevVersion, $ActualVersion) {
- return util_make_link ('/plugins/scmsvn/viewcvs.php/'.$FileName .
+ return util_make_link ('/scm/viewvc.php'.$FileName .
'?root='.$GroupName.'&r1='.$PrevVersion .
'&r2='.$ActualVersion,
_('Diff To').' '.$PrevVersion);
Modified: trunk/gforge_base/gforge-4.8/plugins/svntracker/www/newcommit.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/svntracker/www/newcommit.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/svntracker/www/newcommit.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -16,6 +16,7 @@
*
*/
+require_once dirname(__FILE__)."/../../env.inc.php";
require_once $gfwww.'include/squal_pre.php';
require_once $gfconfig.'plugins/svntracker/config.php';
@@ -30,10 +31,11 @@
*/
$Config = array();
$SubmittedVars = array();
-$SubmittedVars = unserialize(str_replace('\"','"',$_POST['data']));
+$SubmittedVars = unserialize(str_replace('\\\\', '\\', str_replace('\"','"',$_POST['data'])));
$i = 0;
foreach ($SubmittedVars as $SubmittedVar) {
+ $Configs[$i] = array();
$Configs[$i]['UserName'] = $SubmittedVar['UserName'];
//$Configs[$i]['UserName'] = 'def_admin'; use this to make tests, just replace with a gforge user
$Configs[$i]['Repository'] = $SubmittedVar['Repository'];
@@ -127,7 +129,7 @@
*/
function addArtifactLog($Config, $GroupId, $Num)
{
- global $file;
+ global $file, $svn_tracker_debug;
$return = array();
$Query = "SELECT * from artifact,artifact_group_list WHERE ".
"artifact.group_artifact_id=artifact_group_list.group_artifact_id ".
@@ -140,7 +142,7 @@
fwrite($file,"rows : " . $Rows ."\n");
}
if ($Rows == 0) {
- $return['Error'] .= "Artifact ".$Num." Not Found.";
+ $return['Error'] = "Artifact ".$Num." Not Found.";
}
if ($Rows == 1) {
@@ -238,7 +240,7 @@
}
foreach ($Configs as $Config) {
- $Result = parseConfig(&$Config);
+ $Result = parseConfig($Config);
if ($Result['check'] == false) {
exit_error('Check_error', $Result['error']);
}
Modified: trunk/gforge_base/gforge-4.8/plugins/wiki/README
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/plugins/wiki/README 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/plugins/wiki/README 2009-09-21 09:00:23 UTC (rev 154)
@@ -57,3 +57,14 @@
2) By default, phpWiki creates lots of pages with plugins and helps. The current
implementation allows to create a full wiki (with all standard pages) or one big
and the others with minimal pages (see configuration file for more).
+
+PROBLEMS:
+* If you have PearDB problems and if you have a peardb package already installed, then
+you can try to remove it. By default, phpwiki will try to use the installed one and
+failback to the embedded one if none found.
+
+* You may also have problems with the tsearch configuration. phpWiki uses full text
+search to provide an improved search and you have to check that the configuration
+is supported by the installed locale on your system.
+Here is an example of command if your installed locale is fr_FR.UTF-8:
+SQL: UPDATE pg_ts_cfg set locale = 'fr_FR.UTF-8' WHERE ts_name = 'default';
Modified: trunk/gforge_base/gforge-4.8/www/account/change_email.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/account/change_email.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/account/change_email.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -58,14 +58,14 @@
);
}
- $message = stripcslashes(sprintf(_('You have requested a change of email address on %1$s.
+ $message = sprintf(_('You have requested a change of email address on %1$s.
Please visit the following URL to complete the email change:
%2$s
-- the %1$s staff'),
$GLOBALS['sys_name'],
- util_make_url ('/account/change_email-complete.php?ch=_'.$confirm_hash)));
+ util_make_url ('/account/change_email-complete.php?ch=_'.$confirm_hash));
util_send_message($newemail,sprintf(_('%1$s Verification'), $GLOBALS['sys_name']),$message);
Modified: trunk/gforge_base/gforge-4.8/www/account/lostpw.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/account/lostpw.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/account/lostpw.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -54,7 +54,7 @@
exit_error('Error',$u->getErrorMessage());
} else {
- $message = stripcslashes(sprintf(_('Someone (presumably you) on the %1$s site requested a
+ $message = sprintf(_('Someone (presumably you) on the %1$s site requested a
password change through email verification. If this was not you,
ignore this message and nothing will happen.
@@ -64,13 +64,13 @@
<%2$s>
-- the %1$s staff
-'), $GLOBALS['sys_name'], util_make_url ("/account/lostlogin.php?ch=_".$confirm_hash)));
+'), $GLOBALS['sys_name'], util_make_url ("/account/lostlogin.php?ch=_".$confirm_hash));
util_send_message($u->getEmail(),sprintf(_('%1$s Verification'), $GLOBALS['sys_name']),$message);
$HTML->header(array('title'=>"Lost Password Confirmation"));
- echo '<p>'.printf(_('An email has been sent to the address you have on file. Follow the instructions in the email to change your account password.').'</p><p><a href="%1$s">Home</a>', util_make_url ('/')).'</p>';
+ echo '<p>'.printf(_('An email has been sent to the address you have on file. Follow the instructions in the email to change your account password.').'</p><p><a href="%1$s">'._("Home").'</a>', util_make_url ('/')).'</p>';
$HTML->footer(array());
exit();
Modified: trunk/gforge_base/gforge-4.8/www/admin/useredit.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/admin/useredit.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/admin/useredit.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -71,8 +71,12 @@
if ($u->getUnixStatus() != 'N') {
$u->setUnixStatus($status);
} else {
- // make sure that user doesn't have LDAP entry
- $u->setUnixStatus('N');
+ if (count($u->getGroups())>0 && $u->isActive()) {
+ $u->setUnixStatus('A');
+ }else{
+ // make sure that user doesn't have LDAP entry
+ $u->setUnixStatus('N');
+ }
}
if ($u->isError()) {
Modified: trunk/gforge_base/gforge-4.8/www/admin/userlist.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/admin/userlist.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/admin/userlist.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -48,7 +48,11 @@
} else {
if(!$u->setStatus($newStatus)) {
exit_error('Error',$u->getErrorMessage());
- }
+ }
+ if(!$u->setUnixStatus($newStatus)) {
+ exit_error('Error',$u->getErrorMessage());
+ }
+
}
echo "<h2>" .sprintf(_('User updated to %1$s status'), $statusString)."</h2>";
}
Modified: trunk/gforge_base/gforge-4.8/www/docman/admin/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/docman/admin/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/docman/admin/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -203,9 +203,9 @@
<td>
<strong><?php echo _('File')?></strong><?php echo utils_requiredField(); ?><br />
<?php if ($d->isURL()) {
- echo '<a href="'.$d->getFileName().'">[View File URL]</a>';
+ echo '<a href="'.inputSpecialchars($d->getFileName()).'">[View File URL]</a>';
} else { ?>
- <a target="_blank" href="../view.php/<?php echo $group_id.'/'.$d->getID().'/'.$d->getFileName() ?>"><?php echo $d->getName(); ?></a>
+ <a target="_blank" href="../view.php/<?php echo $group_id.'/'.$d->getID().'/'.urlencode($d->getFileName()) ?>"><?php echo $d->getName(); ?></a>
<?php } ?>
</td>
</tr>
Modified: trunk/gforge_base/gforge-4.8/www/docman/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/docman/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/docman/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -34,8 +34,8 @@
docman_recursive_display($dg->getID());
if (isset($nested_docs[$dg->getID()]) && is_array($nested_docs[$dg->getID()])) {
foreach ($nested_docs[$dg->getID()] as $d) {
- $docurl=util_make_url ('/docman/view.php/'.$group_id.'/'.$d->getID().'/'.$d->getFileName());
- $docname=addslashes($d->getName())." (".$d->getFileName().")";
+ $docurl=util_make_url ('/docman/view.php/'.$group_id.'/'.$d->getID().'/'.urlencode($d->getFileName()));
+ $docname=addslashes($d->getName(), ENT_QUOTES)." (".htmlspecialchars($d->getFileName(), ENT_QUOTES).")";
$docdesc=addslashes($d->getDescription());
echo ",['','".$docname."','".$docurl."','','".$docdesc."' ]";
}
Modified: trunk/gforge_base/gforge-4.8/www/docman/search.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/docman/search.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/docman/search.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -190,7 +190,7 @@
$vtp->SetVar($handle,"RESULT.SEARCHPATH",$s);
$vtp->SetVar($handle,"RESULT.GROUP_ID",$_GET["group_id"]);
$vtp->SetVar($handle,"RESULT.DOC_ID",$item["docid"]);
- $vtp->SetVar($handle,"RESULT.FILE_NAME",$item["filename"]);
+ $vtp->SetVar($handle,"RESULT.FILE_NAME",urlencode($item["filename"]));
if ($is_editor) $vtp->SetVar($handle,"RESULT.STATE",$item["statename"]);
$vtp->CloseSession($handle,"RESULT");
}
Modified: trunk/gforge_base/gforge-4.8/www/export/rss20_activity.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss20_activity.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss20_activity.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -49,11 +49,11 @@
if ($rowwm = db_fetch_array($reswm)) {
$webmaster = $rowwm['user_name']."@".$GLOBALS['sys_users_host']." (".$rowwm['realname'].")";
} else {
- $webmaster = "admin@".$GLOBALS['sys_default_domain'];
+ $webmaster = $GLOBALS['sys_admin_email'];
}
// ## one time output
- header("Content-Type: text/xml");
+ header("Content-Type: text/xml; charset=utf-8");
print '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
';
@@ -62,22 +62,12 @@
print " <link>$url/activity/$link</link>\n";
print " <description>".$GLOBALS['sys_name']." Project Activity$description</description>\n";
print " <language>en-us</language>\n";
- print " <copyright>Copyright 2000-".date("Y")." ".$GLOBALS['sys_name']." OSI</copyright>\n";
+ print " <copyright>Copyright ".date("Y")." ".$GLOBALS['sys_name']."</copyright>\n";
print " <webMaster>$webmaster</webMaster>\n";
- print " <lastBuildDate>".gmdate('D, d M Y G:i:s',time())." GMT</lastBuildDate>\n";
+ print " <lastBuildDate>".rss_date(time())."</lastBuildDate>\n";
print " <docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
print " <generator>".$GLOBALS['sys_name']." RSS generator</generator>\n";
- if (file_exists('../images/bflogo-88.png')) {
- print " <image>\n";
- print " <url>$url/images/bflogo-88.png</url>\n";
- print " <title>".$GLOBALS['sys_name']."</title>\n";
- print " <link>$url/</link>\n";
- print " <width>124</width>\n";
- print " <heigth>32</heigth>\n";
- print " </image>\n";
- }
-
$sql="SELECT * FROM activity_vw WHERE activity_date BETWEEN '".(time()-(30*86400))."' AND '".time()."'
AND group_id='$group_id' ORDER BY activity_date DESC";
$res = db_query($sql, $limit);
@@ -90,44 +80,44 @@
case 'commit': {
print " <title>".htmlspecialchars('Commit for Tracker Item [#'.$arr['subref_id'].'] '.$arr['description'])."</title>\n";
print " <link>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</link>\n";
- print " <comment>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comment>\n";
+ print " <comments>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comments>\n";
break;
}
case 'trackeropen': {
print " <title>".htmlspecialchars('Tracker Item [#'.$arr['subref_id'].' '.$arr['description'].'] Opened')."</title>\n";
print " <link>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</link>\n";
- print " <comment>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comment>\n";
+ print " <comments>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comments>\n";
break;
}
case 'trackerclose': {
print " <title>".htmlspecialchars('Tracker Item [#'.$arr['subref_id'].' '.$arr['description'].'] Closed')."</title>\n";
print " <link>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</link>\n";
- print " <comment>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comment>\n";
+ print " <comments>$url/tracker/?func=detail&atid=".$arr['ref_id'].'&aid='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comments>\n";
break;
}
case 'frsrelease': {
print " <title>".htmlspecialchars('FRS Release [#'.$arr['description'].']')."</title>\n";
print " <link>$url/frs/?release_id=".$arr['subref_id'].'&group_id='.$arr['group_id']."</link>\n";
- print " <comment>$url/frs/?release_id=".$arr['subref_id'].'&group_id='.$arr['group_id']."</comment>\n";
+ print " <comments>$url/frs/?release_id=".$arr['subref_id'].'&group_id='.$arr['group_id']."</comments>\n";
break;
}
case 'forumpost': {
print " <title>".htmlspecialchars('Forum Post [#'.$arr['subref_id'].'] '.$arr['description'])."</title>\n";
print " <link>$url/forum/message.php?forum_id=".$arr['ref_id'].'&msg_id='.$arr['subref_id'].'&group_id='.$arr['group_id']."</link>\n";
- print " <comment>$url/forum/message.php?forum_id=".$arr['ref_id'].'&msg_id='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comment>\n";
+ print " <comments>$url/forum/message.php?forum_id=".$arr['ref_id'].'&msg_id='.$arr['subref_id'].'&group_id='.$arr['group_id']."</comments>\n";
break;
}
case 'news': {
print " <title>".htmlspecialchars('News Post [#'.$arr['subref_id'].'] '.$arr['description'])."</title>\n";
print " <link>$url/forum/forum.php?forum_id=".$arr['subref_id']."</link>\n";
- print " <comment>$url/forum/forum.php?forum_id=".$arr['subref_id']."</comment>\n";
+ print " <comments>$url/forum/forum.php?forum_id=".$arr['subref_id']."</comments>\n";
break;
}
}
print " <description>".rss_description($arr['description'])."</description>\n";
print " <author>".$arr['user_name']."@".$GLOBALS['sys_users_host']." (".$arr['realname'].")</author>\n";
- print " <pubDate>".gmdate('D, d M Y G:i:s',$arr['activity_date'])." GMT</pubDate>\n";
+ print " <pubDate>".rss_date($arr['activity_date'])."</pubDate>\n";
print " </item>\n";
}
// ## end output
Modified: trunk/gforge_base/gforge-4.8/www/export/rss20_newreleases.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss20_newreleases.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss20_newreleases.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -14,7 +14,7 @@
require_once $gfwww.'include/pre.php';
require_once $gfwww.'export/rss_utils.inc';
-header("Content-Type: text/xml");
+header("Content-Type: text/xml; charset=utf-8");
print '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
';
@@ -53,17 +53,10 @@
print " <link>http://".$GLOBALS['sys_default_domain']."$link</link>\n";
print " <description>".$GLOBALS['sys_name']." Project Releases$description</description>\n";
print " <language>en-us</language>\n";
-print " <copyright>Copyright 2000-".date("Y")." ".$GLOBALS['sys_name']." OSI</copyright>\n";
+print " <copyright>Copyright ".date("Y")." ".$GLOBALS['sys_name']."</copyright>\n";
print " <webMaster>$webmaster</webMaster>\n";
-print " <lastBuildDate>".gmdate('D, d M Y G:i:s',time())." GMT</lastBuildDate>\n";
+print " <lastBuildDate>".rss_date(time())."</lastBuildDate>\n";
print " <docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
-print " <image>\n";
-print " <url>http://".$GLOBALS['sys_default_domain']."/images/bflogo-88.png</url>\n";
-print " <title>".$GLOBALS['sys_name']." Developer</title>\n";
-print " <link>http://".$GLOBALS['sys_default_domain']."/</link>\n";
-print " <width>124</width>\n";
-print " <heigth>32</heigth>\n";
-print " </image>\n";
$res = db_query("SELECT groups.group_name AS group_name,"
. "frs_package.group_id AS group_id,"
@@ -103,8 +96,8 @@
print " <link>http://".$GLOBALS['sys_default_domain']."/project/showfiles.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</link>\n";
print " <description>".rss_description($row['module_notes'])."</description>\n";
print " <author>".$row['user_name']."@".$GLOBALS['sys_users_host']." (".$row['realname'].")</author>\n";
- print " <comment>http://".$GLOBALS['sys_default_domain']."/project/shownotes.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</comment>\n";
- print " <pubDate>".gmdate('D, d M Y G:i:s',$row['release_date'])." GMT</pubDate>\n";
+ print " <comments>http://".$GLOBALS['sys_default_domain']."/project/shownotes.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</comments>\n";
+ print " <pubDate>".rss_date($row['release_date'])."</pubDate>\n";
print " <guid>http://".$GLOBALS['sys_default_domain']."/project/showfiles.php?group_id=".$row['group_id']."&release_id=".$row['filerelease_id']."</guid>\n";
print " </item>\n";
$outputtotal++;
Modified: trunk/gforge_base/gforge-4.8/www/export/rss20_news.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss20_news.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss20_news.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -7,7 +7,7 @@
require_once $gfwww.'include/pre.php';
require_once $gfwww.'export/rss_utils.inc';
-header("Content-Type: text/xml");
+header("Content-Type: text/xml; charset=utf-8");
print '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
';
@@ -16,8 +16,8 @@
if ($limit > 100) $limit = 100;
if ($group_id) {
- $where = "group_id=$group_id";
- $query = "SELECT group_name FROM groups WHERE $where";
+ $where = "AND g.group_id=$group_id";
+ $query = "SELECT group_name FROM groups WHERE group_id=$group_id";
$res = db_query($query,1);
$row = db_fetch_array($res);
$title = ": ".$row['group_name']." - ";
@@ -38,24 +38,20 @@
$webmaster = $GLOBALS['sys_admin_email'];
}
+$rssTitle = $GLOBALS['sys_name']." Project$title News";
+$rssLink = "http://".$GLOBALS['sys_default_domain']."/news/$link";
+
// ## one time output
print " <channel>\n";
-print " <title>".$GLOBALS['sys_name']." Project$title News</title>\n";
-print " <link>http://".$GLOBALS['sys_default_domain']."/news/$link</link>\n";
+print " <title>".$rssTitle."</title>\n";
+print " <link>".$rssLink."</link>\n";
print " <description>".$GLOBALS['sys_name']." Project News$description</description>\n";
print " <language>en-us</language>\n";
-print " <copyright>Copyright 2000-".date("Y")." ".$GLOBALS['sys_name']." OSI</copyright>\n";
+print " <copyright>Copyright ".date("Y")." ".$GLOBALS['sys_name']."</copyright>\n";
print " <webMaster>$webmaster</webMaster>\n";
-print " <lastBuildDate>".gmdate('D, d M Y G:i:s',time())." GMT</lastBuildDate>\n";
+print " <lastBuildDate>".rss_date(time())."</lastBuildDate>\n";
print " <docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
print " <generator>".$GLOBALS['sys_name']." RSS generator</generator>\n";
-print " <image>\n";
-print " <url>http://".$GLOBALS['sys_default_domain']."/images/bflogo-88.png</url>\n";
-print " <title>".$GLOBALS['sys_name']." Developer</title>\n";
-print " <link>http://".$GLOBALS['sys_default_domain']."/</link>\n";
-print " <width>124</width>\n";
-print " <heigth>32</heigth>\n";
-print " </image>\n";
$sql = "SELECT forum_id,summary,post_date,details,g.group_id,g.group_name,u.realname,u.user_name
FROM news_bytes, groups g,users u
@@ -81,7 +77,7 @@
}
print " <description>".rss_description($row['details'])."</description>\n";
print " <author>".$row['user_name']."@".$GLOBALS['sys_users_host']." (".$row['realname'].")</author>\n";
- print " <pubDate>".gmdate('D, d M Y G:i:s',$row['post_date'])." GMT</pubDate>\n";
+ print " <pubDate>".rss_date($row['post_date'])."</pubDate>\n";
if ($row['group_id'] != $sys_news_group) {
print " <guid>http://".$GLOBALS['sys_default_domain']."/forum/forum.php?forum_id=".$row['forum_id']."</guid>\n";
} else {
@@ -89,9 +85,9 @@
}
// if news group, comment is main page
if ($row['group_id'] != $sys_news_group) {
- print " <comment>http://".$GLOBALS['sys_default_domain']."/forum/forum.php?forum_id=".$row['forum_id']."</comment>\n";
+ print " <comments>http://".$GLOBALS['sys_default_domain']."/forum/forum.php?forum_id=".$row['forum_id']."</comments>\n";
} else {
- print " <comment>http://".$GLOBALS['sys_default_domain']."/</comment>\n";
+ print " <comments>http://".$GLOBALS['sys_default_domain']."/</comments>\n";
}
print " </item>\n";
}
Modified: trunk/gforge_base/gforge-4.8/www/export/rss20_projects.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss20_projects.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss20_projects.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -3,13 +3,15 @@
// Author: Scott Grayban <sgrayban at borgnet.us>
//
-include "../env.inc.php";
-include "pre.php";
-include "rss_utils.inc";
-header("Content-Type: text/xml");
-print '<?xml version="1.0"?>
+require_once '../env.inc.php';
+require_once $gfwww.'include/pre.php';
+require_once $gfwww.'export/rss_utils.inc';
+
+header("Content-Type: text/xml; charset=utf-8");
+print '<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
';
+
$limit = getIntFromRequest('limit', 10);
$res = db_query(
@@ -20,6 +22,6 @@
//rss20_dump_project_result_set($res,$GLOBALS['sys_default_name'].' Full Project Listing');
// quick and dirty fix
-rss_dump_project_result_set($res,$GLOBALS['sys_default_name'].' Full Project Listing');
+rss_dump_project_result_set($res,$GLOBALS['sys_name'].' Full Project Listing');
?>
</rss>
Modified: trunk/gforge_base/gforge-4.8/www/export/rss20_version.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss20_version.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss20_version.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -3,18 +3,20 @@
// Export software version in RSS 2.0
// Author: Christian Bayle <bayle at debian.org>
-include "../env.inc.php";
-include "pre.php";
+require_once '../env.inc.php';
+require_once $gfwww.'include/pre.php';
+require_once $gfwww.'export/rss_utils.inc';
require_once $gfcommon.'include/FusionForge.class.php';
$forge=new FusionForge();
$vers=$forge->software_version;
$name=$forge->software_name;
-$date=gmdate('D, d M Y g:i:s',time())." GMT";
-$link="http://".$GLOBALS[sys_default_domain];
+$date=rss_date(time());
+$link="http://".$GLOBALS['sys_default_domain'].'/';
+$title=$GLOBALS['sys_name'].' - Software version';
-header("Content-Type: text/xml");
-print '<?xml version="1.0"?>';
+header("Content-Type: text/xml; charset=utf-8");
+print '<?xml version="1.0" encoding="UTF-8"?>';
?>
<rss version="2.0">
<channel>
@@ -23,7 +25,6 @@
<description><?php echo "$name $vers"; ?></description>
<link><?php echo $link; ?></link>
<title><?php echo $title; ?></title>
- <webMaster><?php echo $webmaster; ?></webMaster>
<language>en-us</language>
<item>
<title>Name</title>
Modified: trunk/gforge_base/gforge-4.8/www/export/rss_sfnewreleases.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss_sfnewreleases.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss_sfnewreleases.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -17,8 +17,8 @@
$limit = getIntFromRequest('limit', 10);
if ($limit > 100) $limit = 100;
-header("Content-Type: text/plain");
-print '<?xml version="1.0"?>
+header("Content-Type: text/xml; charset=utf-8");
+print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
';
@@ -46,12 +46,12 @@
// ## one time output
print " <channel>\n";
-print " <copyright>Copyright 1999-2000 VA Linux Systems, Inc.</copyright>\n";
-print " <pubDate>".gmdate('D, d M Y g:i:s',time())." GMT</pubDate>\n";
+print " <copyright>Copyright ".date("Y")." ".$GLOBALS['sys_name']."</copyright>\n";
+print " <pubDate>".rss_date(time())."</pubDate>\n";
print " <description>".$GLOBALS['sys_name']." New Releases</description>\n";
-print " <link>http://$GLOBALS[sys_default_domain]</link>\n";
+print " <link>http://".$GLOBALS['sys_default_domain']."</link>\n";
print " <title>".$GLOBALS['sys_name']." New Releases</title>\n";
-print " <webMaster>webmaster@$GLOBALS[sys_default_domain]</webMaster>\n";
+print " <webMaster>".$GLOBALS['sys_admin_email']."</webMaster>\n";
print " <language>en-us</language>\n";
// ## item outputs
$outputtotal = 0;
Modified: trunk/gforge_base/gforge-4.8/www/export/rss_sfnews.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss_sfnews.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss_sfnews.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -18,7 +18,7 @@
$limit = getIntFromRequest('limit', 10);
if ($limit > 100) $limit = 100;
-header("Content-Type: text/plain");
+header("Content-Type: text/xml; charset=utf-8");
print '<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
@@ -45,7 +45,6 @@
$res = db_query($sql, $limit);
print "\n <channel rdf:about=".'"'."http://$GLOBALS[sys_default_domain]/export/rss_sfnews.php".'"'.">\n";
-print " <copyright>Copyright 1999-2000 VA Linux Systems, Inc.</copyright>\n";
$grsql = "SELECT group_name from groups where group_id='.$group_id'";
$grres = db_query($sql,$limit);
$grrow = db_fetch_array($grres);
@@ -75,7 +74,7 @@
print " <description>".rss_description($row['details'])."</description>\n";
print " <dc:subject>".$row['group_name']."</dc:subject>\n";
print " <dc:creator>".$row['realname']."</dc:creator>\n";
- print " <dc:date>".gmdate('D, d M Y g:i:s',$row['post_date'])." GMT</dc:date>\n";
+ print " <dc:date>".gmdate('c', $row['post_date'])."</dc:date>\n";
print " </item>\n";
}
// ## end output
Modified: trunk/gforge_base/gforge-4.8/www/export/rss_sfprojects.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss_sfprojects.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss_sfprojects.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -17,8 +17,8 @@
$limit = getIntFromRequest('limit', 10);
if ($limit > 100) $limit = 100;
-header("Content-Type: text/plain");
-print '<?xml version="1.0"?>
+header("Content-Type: text/xml; charset=utf-8");
+print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
';
Modified: trunk/gforge_base/gforge-4.8/www/export/rss_utils.inc
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/rss_utils.inc 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/rss_utils.inc 2009-09-21 09:00:23 UTC (rev 154)
@@ -21,6 +21,10 @@
}
}
+function rss_date($date) {
+ return gmdate('D, d M Y H:i:s', $date).' GMT';
+}
+
function rss_description ($in) {
// if description_maxlen is defined, then truncate appropriately
// added for netscape rss schema compat
@@ -44,12 +48,12 @@
if (!$desription) $desription=$title;
// one time output
print " <channel>\n";
- print " <copyright>Copyright 2007-2009 tarent GmbH</copyright>\n";
- print " <pubDate>".gmdate('D, d M Y G:i:s',time())." GMT</pubDate>\n";
+ print " <copyright>Copyright 2007-2009 tarent GmbH; ".date("Y")." ".$GLOBALS['sys_name']."</copyright>\n";
+ print " <pubDate>".rss_date(time())."</pubDate>\n";
print " <description>$desription</description>\n";
- print " <link>http://$GLOBALS[sys_default_domain]</link>\n";
+ print " <link>http://".$GLOBALS['sys_default_domain']."/</link>\n";
print " <title>$title</title>\n";
- print " <webMaster>webmaster@$GLOBALS[sys_default_domain]</webMaster>\n";
+ print " <webMaster>".$GLOBALS['sys_admin_email']."</webMaster>\n";
print " <language>en-us</language>\n";
// item outputs
@@ -110,4 +114,4 @@
print " </channel>\n";
}
-?>
+?>
\ No newline at end of file
Modified: trunk/gforge_base/gforge-4.8/www/export/search_plugin.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/export/search_plugin.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/export/search_plugin.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -19,3 +19,4 @@
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon"><?php echo "http://".$GLOBALS['sys_default_domain']."/images/opensearchdescription.png"; ?></Image>
<Url type="text/html" method="GET" template="<?php print 'http' . (session_issecure()?'s':'') . '://' . $GLOBALS['sys_default_domain']; ?>/search/?type_of_search=soft&words={searchTerms}"/>
+</OpenSearchDescription>
Modified: trunk/gforge_base/gforge-4.8/www/forum/admin/ForumAdmin.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/forum/admin/ForumAdmin.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/forum/admin/ForumAdmin.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -59,8 +59,8 @@
function PrintAdminMessageOptions($msg_id,$group_id,$thread_id=0,$forum_id=0) {
global $HTML;
- $return = '<a href="admin/index.php?editmsg=' . $msg_id . '&group_id=' . $group_id . '&thread_id=' . $thread_id. '&forum_id=' . $forum_id . '">' . html_image('ic/forum_edit.gif','37','15',array('alt'=>"Edit")) . "</a>";
- $return .= ' <a href="admin/index.php?deletemsg=' . $msg_id . '&group_id=' . $group_id . '&thread_id=' . $thread_id. '&forum_id=' . $forum_id . '">' . html_image('ic/forum_delete.gif','16','18',array('alt'=>"Delete")) . "</a>";
+ $return = '<a href="admin/index.php?editmsg=' . $msg_id . '&group_id=' . $group_id . '&thread_id=' . $thread_id. '&forum_id=' . $forum_id . '">' . html_image('ic/forum_edit.gif','37','15',array('alt'=>_("Edit"))) . "</a>";
+ $return .= ' <a href="admin/index.php?deletemsg=' . $msg_id . '&group_id=' . $group_id . '&thread_id=' . $thread_id. '&forum_id=' . $forum_id . '">' . html_image('ic/forum_delete.gif','16','18',array('alt'=>_("Delete"))) . "</a>";
$return .= "<br>";
return $return;
}
Modified: trunk/gforge_base/gforge-4.8/www/forum/admin/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/forum/admin/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/forum/admin/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -376,7 +376,8 @@
echo $farr[$j]->getErrorMessage();
} else {
echo '<a href="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'&change_status=1&group_forum_id='. $farr[$j]->getID() .'">'.
- $farr[$j]->getName() .'</a><br />'.$farr[$j]->getDescription().'<br /><a href="monitor.php?group_id='.$group_id.'&group_forum_id='. $farr[$j]->getID() .'">Monitoring Users</a><p>';
+ $farr[$j]->getName() .'</a><br />'.$farr[$j]->getDescription().'<br /><a href="monitor.php?group_id='.$group_id.'&group_forum_id='. $farr[$j]->getID() .'">'.
+ _('Monitoring Users').'</a><p>';
}
}
Modified: trunk/gforge_base/gforge-4.8/www/forum/attachment.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/forum/attachment.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/forum/attachment.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -147,7 +147,7 @@
foreach ($am->Getmessages() as $item) {
$feedback .= "<br>" . $item;
}
- echo '<p><p><center><form method="post"><input type="button" value="Close Window" onclick="window.close()"></form></center>';
+ echo '<p><p><center><form method="post"><input type="button" value="'._("Close Window").'" onclick="window.close()"></form></center>';
forum_footer(array());
exit();
} else {
@@ -160,7 +160,7 @@
exit_error(_('Error'),$fh->getErrorMessage());
}
if (!db_result($res,0,'filename')) {
- $filename = "No attach found";
+ $filename = _("No attach found");
} else {
$filename = db_result($res,0,'filename');
}
Modified: trunk/gforge_base/gforge-4.8/www/forum/include/AttachManager.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/forum/include/AttachManager.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/forum/include/AttachManager.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -144,8 +144,8 @@
exit_error('Error', _('Could Not Get Forum Object'));
} else {
if ( ((user_getid() == $attach_userid) || ($f->userIsAdmin())) && (!$msg->isPending()) ) { //only permit the user who created the attach to delete it, or an admin
- $attach .= " <a href=\"javascript:manageattachments('".util_make_url ("/forum/attachment.php?attachid=$attachid&group_id=$group_id&forum_id=$forum_id&msg_id=$msg_id&edit=yes")."','no');\">" . "<font size=\"-3\">" . html_image('ic/forum_edit.gif','37','15',array('alt'=>"Edit")) . "</font></a>";
- $attach .= " <a href=\"javascript:manageattachments('".util_make_url("/forum/attachment.php?attachid=$attachid&group_id=$group_id&forum_id=$forum_id&delete=yes")."','yes');\">" . "<font size=\"-3\">" . html_image('ic/forum_delete.gif','16','18',array('alt'=>"Delete")) . "</font></a>";
+ $attach .= " <a href=\"javascript:manageattachments('".util_make_url ("/forum/attachment.php?attachid=$attachid&group_id=$group_id&forum_id=$forum_id&msg_id=$msg_id&edit=yes")."','no');\">" . "<font size=\"-3\">" . html_image('ic/forum_edit.gif','37','15',array('alt'=>_("Edit"))) . "</font></a>";
+ $attach .= " <a href=\"javascript:manageattachments('".util_make_url("/forum/attachment.php?attachid=$attachid&group_id=$group_id&forum_id=$forum_id&delete=yes")."','yes');\">" . "<font size=\"-3\">" . html_image('ic/forum_delete.gif','16','18',array('alt'=>_("Delete"))) . "</font></a>";
}
}
} else {
@@ -156,7 +156,7 @@
} else {
$attach = html_image('ic/cfolder15.png',"15","13",array("border"=>"0")) . _('No attachment found');
if ( ((user_getid() == $msg->getPosterID()) || ($f->userIsAdmin())) && (!$msg->isPending()) ) { //only permit an admin or the user who created the message to insert an attach
- $attach .= " <a href=\"javascript:manageattachments('".util_make_url ("/forum/attachment.php?attachid=0&group_id=$group_id&forum_id=$forum_id&msg_id=$msg_id&edit=yes")."','no');\">" . "<font size=\"-3\">" . html_image('ic/forum_add.gif','37','15',array('alt'=>"Add")) . "</font></a>";
+ $attach .= " <a href=\"javascript:manageattachments('".util_make_url ("/forum/attachment.php?attachid=0&group_id=$group_id&forum_id=$forum_id&msg_id=$msg_id&edit=yes")."','no');\">" . "<font size=\"-3\">" . html_image('ic/forum_add.gif','37','15',array('alt'=>_("Add"))) . "</font></a>";
}
}
}
Modified: trunk/gforge_base/gforge-4.8/www/forum/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/forum/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/forum/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -56,7 +56,7 @@
// echo _('<p>Choose a forum and you can browse, search, and post messages.<p>');
- echo $HTML->subMenu(array("My Monitored Forums"),array("/forum/myforums.php?group_id=$group_id"));
+ echo $HTML->subMenu(array(_("My Monitored Forums")),array("/forum/myforums.php?group_id=$group_id"));
$tablearr=array(_('Forum'),_('Description'),_('Threads'),_('Posts'), _('Last Post'),_('Moderation Level'));
echo $HTML->listTableTop($tablearr);
Modified: trunk/gforge_base/gforge-4.8/www/frs/admin/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/frs/admin/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/frs/admin/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -163,7 +163,7 @@
</a>
</td>
- <td><input type="text" name="package_name" value="'.db_result($res,$i,'package_name') .'" size="20" maxlength="30" /></td>
+ <td><input type="text" name="package_name" value="'.db_result($res,$i,'package_name') .'" size="20" maxlength="60" /></td>
<td>'.frs_show_status_popup ('status_id', db_result($res,$i,'status_id')).'</span></td>
<td><input type="submit" name="submit" value="'._('Update').'" />
Modified: trunk/gforge_base/gforge-4.8/www/frs/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/frs/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/frs/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -27,6 +27,7 @@
require_once('../env.inc.php');
require_once $gfwww.'include/pre.php';
require_once $gfwww.'frs/include/frs_utils.php';
+require_once $gfcommon.'frs/FRSPackage.class.php';
$group_id = getIntFromRequest('group_id');
$release_id = getIntFromRequest('release_id');
@@ -117,11 +118,20 @@
// Iterate and show the packages
for ( $p = 0; $p < $num_packages; $p++ ) {
$cur_style = $GLOBALS['HTML']->boxGetAltRowStyle($p);
+
+ $frsPackage = new FRSPackage($cur_group, db_result($res_package,$p,'package_id'));
+
+ print '<tr '.$cur_style.'><td colspan="3"><h3>'.db_result($res_package,$p,'name');
- print '<tr '.$cur_style.'><td colspan="3"><h3>'.db_result($res_package,$p,'name').'
- <a href="'.util_make_url ('/frs/monitor.php?filemodule_id='. db_result($res_package,$p,'package_id') .'&group_id='.db_result($res_package,$p,'group_id').'&start=1').'">'.
- html_image('ic/mail16w.png','20','20',array('alt'=>_('Monitor this package'))) .
- '</a></h3></td><td colspan="4"> </td></tr>';
+ if($frsPackage->isMonitoring()) {
+ print ' <a href="'.util_make_url ('/frs/monitor.php?filemodule_id='. db_result($res_package,$p,'package_id') .'&group_id='.db_result($res_package,$p,'group_id').'&stop=1').'">'.
+ html_image('ic/xmail16w.png','20','20',array('alt'=>_('Stop monitoring this package')));
+ } else {
+ print ' <a href="'.util_make_url ('/frs/monitor.php?filemodule_id='. db_result($res_package,$p,'package_id') .'&group_id='.db_result($res_package,$p,'group_id').'&start=1').'">'.
+ html_image('ic/mail16w.png','20','20',array('alt'=>_('Monitor this package')));
+ }
+
+ print '</a></h3></td><td colspan="4"> </td></tr>';
// get the releases of the package
$sql = "SELECT * FROM frs_release
Modified: trunk/gforge_base/gforge-4.8/www/frs/monitor.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/frs/monitor.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/frs/monitor.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -40,7 +40,7 @@
exit_error(_('Error'),$f->getErrorMessage());
} else {
frs_header(array('title'=>_('Monitoring stopped'),'group'=>$group_id));
- echo _('Monitoring Has Been Stopped');
+ echo $HTML->feedback(_('Monitoring Has Been Stopped'));
frs_footer();
}
} elseif($start) {
@@ -48,7 +48,7 @@
exit_error('Error',$f->getErrorMessage());
} else {
frs_header(array('title'=>_('Monitoring started'),'group'=>$group_id));
- echo _('Monitoring Has Been Started');
+ echo $HTML->feedback(_('Monitoring Has Been Started'));
frs_footer();
}
}
Deleted: trunk/gforge_base/gforge-4.8/www/images/fusionforge-resized.png
===================================================================
(Binary files differ)
Copied: trunk/gforge_base/gforge-4.8/www/images/fusionforge-resized.png (from rev 153, vendor/gforge-4.8/www/images/fusionforge-resized.png)
===================================================================
(Binary files differ)
Property changes on: trunk/gforge_base/gforge-4.8/www/images/fusionforge-resized.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Name: svn:mergeinfo
+
Modified: trunk/gforge_base/gforge-4.8/www/include/features_boxes.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/include/features_boxes.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/include/features_boxes.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -66,7 +66,7 @@
$return = "";
while ($row_topdown = db_fetch_array($res_topdown)) {
if ($row_topdown['downloads'] > 0)
- $return .= '(' . number_format($row_topdown['downloads']) . ')'
+ $return .= '<strong>(' . number_format($row_topdown['downloads']) . ')</strong> '
. util_make_link_g ($row_topdown['unix_group_name'],$row_topdown['group_id'],$row_topdown['group_name'])
. "<br />\n";
}
Modified: trunk/gforge_base/gforge-4.8/www/include/logger.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/include/logger.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/include/logger.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -112,11 +112,11 @@
$sql = "INSERT INTO activity_log "
. "(day,hour,group_id,browser,ver,platform,time,page,type) "
- . "VALUES (" . date('Ymd', mktime()) . ",'" . date('H', mktime())
- . "','$log_group','" . browser_get_agent() . "','" . browser_get_version()
- . "','" . browser_get_platform() . "','" . time() . "','".getStringFromServer('PHP_SELF')."','0');";
+ . "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9);";
-$res_logger = db_query ( $sql );
+$res_logger = db_query_params ($sql, array(date('Ymd'), date('H'),
+ $log_group, browser_get_agent(), browser_get_version(), browser_get_platform(),
+ time(), getStringFromServer('PHP_SELF'), '0'));
//
// temp hack
Modified: trunk/gforge_base/gforge-4.8/www/include/pre.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/include/pre.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/include/pre.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -104,8 +104,8 @@
//determine if they're logged in
session_set();
+plugin_hook('after_session_set');
-
//mandatory login
if (!session_loggedin() && $sys_force_login == 1 ) {
$expl_pathinfo = explode('/',getStringFromServer('REQUEST_URI'));
Modified: trunk/gforge_base/gforge-4.8/www/include/project_home.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/include/project_home.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/include/project_home.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -101,7 +101,7 @@
}
print '<br />'._('Activity Percentile: '). substr($actv_res, 0, 5). '%';
print '<br />'.sprintf(_('View project <a href="%1$s" >Statistics</a> or <a href="%2$s">Activity</a>'), util_make_url ('/project/stats/?group_id='.$group_id),util_make_url ('/project/report/?group_id='.$group_id));
- print '<br />'.sprintf(_('View list of <a href="%1$s">RSS feeds</a> available for this project.</a>'), util_make_url ('/export/rss_project.php?group_id='.$group_id)). ' ' . html_image('ic/rss.png',16,16,array('border'=>'0'));
+ print '<br />'.sprintf(_('View list of <a href="%1$s">RSS feeds</a> available for this project.'), util_make_url ('/export/rss_project.php?group_id='.$group_id)). ' ' . html_image('ic/rss.png',16,16,array('border'=>'0'));
}
if($GLOBALS['sys_use_people']) {
@@ -273,7 +273,7 @@
}
?>
-<p />
+<p> </p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<?php
@@ -321,7 +321,7 @@
if ($project->usesTracker()) {
print '<hr size="1" /><a href="'.util_make_url ('/tracker/?group_id='.$group_id).'">';
print html_image('ic/tracker20g.png','20','20',array('alt'=>_('Tracker')));
- print _('Tracker').'</a>';
+ print ' '._('Tracker').'</a>';
$result=db_query("SELECT agl.*,aca.count,aca.open_count
FROM artifact_group_list agl
@@ -335,12 +335,16 @@
if (!$result || $rows < 1) {
echo '<br /><em>'._('There are no public trackers available').'</em>';
} else {
+ echo '<ul>' ;
+
for ($j = 0; $j < $rows; $j++) {
- echo '<p />
- - '.util_make_link ('/tracker/?atid='. db_result($result, $j, 'group_artifact_id') . '&group_id='.$group_id.'&func=browse',db_result($result, $j, 'name'))
- .sprintf(ngettext(' (<strong>%1$s</strong> open / <strong>%2$s</strong> total)', ' (<strong>%1$s</strong> open / <strong>%2$s</strong> total)', (int) db_result($result, $j, 'open_count')), (int) db_result($result, $j, 'open_count'), (int) db_result($result, $j, 'count')) .'<br />'.
- db_result($result, $j, 'description');
+ echo '<li>' ;
+ print util_make_link ('/tracker/?atid='. db_result($result, $j, 'group_artifact_id') . '&group_id='.$group_id.'&func=browse',db_result($result, $j, 'name')) . ' ' ;
+ printf(ngettext('(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', '(<strong>%1$s</strong> open / <strong>%2$s</strong> total)', (int) db_result($result, $j, 'open_count')), (int) db_result($result, $j, 'open_count'), (int) db_result($result, $j, 'count')) .'<br />'.
+ db_result($result, $j, 'description');
+ echo '</li>' ;
}
+ echo '</ul>' ;
}
}
@@ -390,11 +394,13 @@
if (!$result || $rows < 1) {
echo '<br /><em>'._('There are no public subprojects available').'</em>';
} else {
+ echo '<ul>' ;
for ($j = 0; $j < $rows; $j++) {
- echo '
- <br /> - '.util_make_link ('/pm/task.php?group_project_id='.db_result($result, $j, 'group_project_id').'&group_id='.$group_id.'&func=browse',db_result($result, $j, 'project_name'));
+ echo '<li>' ;
+ print util_make_link ('/pm/task.php?group_project_id='.db_result($result, $j, 'group_project_id').'&group_id='.$group_id.'&func=browse',db_result($result, $j, 'project_name'));
+ echo '</li>' ;
}
-
+ echo '</ul>' ;
}
}
@@ -403,7 +409,7 @@
if ($project->usesSCM()) {
print '<hr size="1" /><a href="'.util_make_url ('/scm/?group_id='.$group_id).'">';
print html_image('ic/cvs16b.png','20','20',array('alt'=>_('SCM')));
- print " "._('SCM Repository')."</a>";
+ print ' '._('SCM Repository')."</a>";
/*
$result = db_query("
@@ -439,7 +445,7 @@
print '<hr size="1" />';
print '<a href="ftp://' . $project->getUnixName() . '.' . $GLOBALS['sys_default_domain'] . '/pub/'. $project->getUnixName() .'/">';
print html_image('ic/ftp16b.png','20','20',array('alt'=>_('Anonymous FTP Space')));
- print _('Anonymous FTP Space')."</a>";
+ print ' '._('Anonymous FTP Space')."</a>";
}
}
Modified: trunk/gforge_base/gforge-4.8/www/include/user_home.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/include/user_home.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/include/user_home.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -115,7 +115,7 @@
} else { // endif no groups
print "<p/>"._('This developer is a member of the following groups:')."<br /> ";
while ($row_cat = db_fetch_array($res_cat)) {
- print ('<br />' . util_make_link_g ($row_cat['unix_group_name'],$row_cat['group_id'],htmlentities($row_cat['group_name'])).' ('.htmlentities($row_cat['role_name']).')');
+ print ('<br />' . util_make_link_g ($row_cat['unix_group_name'],$row_cat['group_id'],$row_cat['group_name']).' ('.$row_cat['role_name'].')');
}
print '</ul><p/>';
} // end if groups
Modified: trunk/gforge_base/gforge-4.8/www/my/index.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/my/index.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/my/index.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -341,7 +341,7 @@
'<img src="'.$HTML->imgroot.'ic/'.$img.'" alt="'._('Delete').'" height="16" width="16" border="0" />') ;
echo '</td>
- <td>'.util_make_link_g (db_result($result,$i,'unix_group_name'),db_result($result,$i,'group_id'),htmlspecialchars(db_result($result,$i,'group_name'))).'</td>
+ <td>'.util_make_link_g (db_result($result,$i,'unix_group_name'),db_result($result,$i,'group_id'),db_result($result,$i,'group_name')).'</td>
<td>'. htmlspecialchars(db_result($result,$i,'role_name')) .'</td></tr>';
}
}
Modified: trunk/gforge_base/gforge-4.8/www/project/admin/massfinish.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/project/admin/massfinish.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/project/admin/massfinish.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -99,7 +99,7 @@
}
-echo '<input type="submit" name="finished" value="Add All">
+echo '<input type="submit" name="finished" value="'._('Add All').'">
</form>';
project_admin_footer(array());
Modified: trunk/gforge_base/gforge-4.8/www/reporting/toolspie.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/reporting/toolspie.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/reporting/toolspie.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -45,7 +45,11 @@
$SPAN=0;
}
-if (!isset($start)) {
+$datatype = getStringFromRequest('datatype');
+$start = getStringFromRequest('start');
+$end = getStringFromRequest('end');
+
+if (!$start) {
$z =& $report->getMonthStartArr();
$start = $z[count($z)-1];
}
@@ -54,11 +58,7 @@
echo report_header(_('Tool Pie Graphs'));
-$datatype = getStringFromRequest('datatype');
-$start = getStringFromRequest('start');
-$end = getStringFromRequest('end');
-
-if (!isset($datatype)) {
+if (!$datatype) {
$datatype=1;
}
Modified: trunk/gforge_base/gforge-4.8/www/reporting/useract_graph.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/reporting/useract_graph.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/reporting/useract_graph.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -37,6 +37,7 @@
$SPAN = getStringFromRequest('SPAN');
$start = getStringFromRequest('start');
$end = getStringFromRequest('end');
+$area = getStringFromRequest('area');
//
// Create Report
Modified: trunk/gforge_base/gforge-4.8/www/scm/reporting/commits_graph.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/scm/reporting/commits_graph.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/scm/reporting/commits_graph.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -57,15 +57,13 @@
$days=30;
}
-if (!isset($datatype)) {
- $datatype=1;
-}
-
+$start = getIntFromRequest('start');
if (!$start) {
$start=time() - ($days * 60 * 60 * 24);
$formattedmonth = date('Ym',$start);
}
+$end = getIntFromRequest('end');
if (!$end) {
$end=time();
} else {
@@ -101,7 +99,6 @@
report_pie_arr(util_result_column_to_array($res,0), util_result_column_to_array($res,1));
$p1 = new PiePlot3D($pie_vals);
-$p1->ExplodeSlice (0);
$p1->SetLegends($pie_labels);
$graph->Add( $p1);
Modified: trunk/gforge_base/gforge-4.8/www/stats/site_stats_utils.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/stats/site_stats_utils.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/stats/site_stats_utils.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -274,7 +274,7 @@
<td colspan="2"><strong><?php echo _('Tasks'); ?></strong></td>
<?php } ?>
<?php if ($GLOBALS['sys_use_scm']) { ?>
- <td colspan="3"><strong><?php echo _('CVS'); ?></strong></td>
+ <td colspan="3"><strong><?php echo _('SCM'); ?></strong></td>
<?php } ?>
<?php plugin_hook('stats_header_table'); ?>
</tr>
@@ -406,7 +406,7 @@
<td><strong><?php echo _('Support'); ?></strong></td>
<td><strong><?php echo _('Patches'); ?></strong></td>
<td><strong><?php echo _('Tasks'); ?></strong></td>
- <td><strong><?php echo _('CVS'); ?></strong></td>
+ <td><strong><?php echo _('SCM'); ?></strong></td>
</tr>
<?php
@@ -461,7 +461,7 @@
<td><strong><?php echo _('Patches'); ?></strong></td>
<td><strong><?php echo _('All Trkr'); ?></strong></td>
<td><strong><?php echo _('Tasks'); ?></strong></td>
- <td><strong><?php echo _('CVS'); ?></strong></td>
+ <td><strong><?php echo _('SCM'); ?></strong></td>
</tr>
<?php
Modified: trunk/gforge_base/gforge-4.8/www/themes/css/gforge.css
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/themes/css/gforge.css 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/themes/css/gforge.css 2009-09-21 09:00:23 UTC (rev 154)
@@ -17,7 +17,7 @@
font-size:13px;
color: #202020;
text-decoration: none;
- font-weight: none
+ font-weight: normal
}
@@ -36,7 +36,7 @@
h1, h2, h3, h4, h5, h6 {
font-family: arialverdana,arial,helvetica,sans-serif;
- font-weight:none;
+ font-weight:normal;
padding:0;
}
@@ -118,7 +118,7 @@
/* definition for content table */
.tableheading {
background-color:#D0D0D0;
- text-align=center;
+ text-align:center;
font-weight: bold
}
@@ -136,7 +136,7 @@
.prev, .next, up, down {
font-family: arial,helvetica, sans-serif;
font-size: small;
- text-decoration: bold
+ font-weight: bold
}
/* top */
@@ -165,7 +165,7 @@
Use this style if you need to display a warning*/
.warning {
- color: red:
+ color: red;
text-decoration: none
}
@@ -241,12 +241,12 @@
.altRowStyleEven {
background-color: #EAEAEA;
- font-weight: none
+ font-weight: normal
}
.altRowStyleOdd {
background-color: #E0E0E0;
- font-weight: none
+ font-weight: normal
}
Modified: trunk/gforge_base/gforge-4.8/www/themes/gforge/Theme.class.php
===================================================================
--- trunk/gforge_base/gforge-4.8~rc2/www/themes/gforge/Theme.class.php 2009-09-07 10:33:06 UTC (rev 152)
+++ trunk/gforge_base/gforge-4.8/www/themes/gforge/Theme.class.php 2009-09-21 09:00:23 UTC (rev 154)
@@ -260,7 +260,7 @@
return '
<!-- Box Top Start -->
- <table cellspacing="0" cellpadding="0" width="100%" border="0" background="'.$this->imgroot.'vert-grad.png">
+ <table cellspacing="0" cellpadding="0" style="table-layout:fixed" width="100%" border="0" background="'.$this->imgroot.'vert-grad.png">
<tr align="center">
<td valign="top" style="text-align:right" width="10" background="'.$this->imgroot.'box-topleft.png"><img src="'.$this->imgroot.'clear.png" width="10" height="20" /></td>
<td width="100%" background="'.$this->imgroot.'box-grad.png"><span class="titlebar">'.$title.'</span></td>
More information about the evolvis-commits
mailing list