[Gforge-commits] r5918 - in trunk/gforge: . common/docman common/docman/engine common/forum common/include common/reporting cronjobs db deb-specific debian etc/local.d plugins plugins/fckeditor/common plugins/mediawiki/usr/share/mediawiki1.7/includes plugins/mediawiki/usr/share/mediawiki1.7/skins plugins/projects_hierarchy plugins/projects_hierarchy/common plugins/projects_hierarchy/common/languages plugins/projects_hierarchy/db plugins/projects_hierarchy/etc plugins/projects_hierarchy/etc/plugins plugins/projects_hierarchy/www plugins/projects_hierarchy/www/img plugins/quota_management plugins/quota_management/common plugins/quota_management/common/languages plugins/quota_management/cronjobs plugins/quota_management/db plugins/quota_management/etc plugins/quota_management/etc/plugins plugins/quota_management/www plugins/scmccase/common plugins/webcalendar plugins/webcalendar/common plugins/webcalendar/common/languages plugins/webcalendar/db plugins/webcalendar/etc plugins/webcalendar/etc/plugins plugins/webcalendar/script plugins/webcalendar/www plugins/webcalendar/www/docs plugins/webcalendar/www/includes plugins/webcalendar/www/includes/js plugins/webcalendar/www/install plugins/webcalendar/www/tools plugins/webcalendar/www/translations plugins/webcalendar/www/ws www www/account www/activity www/admin www/admin/languages www/admin/trove www/developer www/docman www/docman/admin www/docman/include www/export www/forum www/forum/admin www/forum/include www/frs www/frs/admin www/help www/include www/include/languages www/mail www/mail/admin www/my www/new www/news www/news/admin www/people www/people/admin www/pm www/pm/admin www/pm/include www/pm/reporting www/project www/project/admin www/project/report www/project/stats www/register www/reporting www/scm www/scm/admin www/scm/reporting www/search www/search/include/renderers www/snippet www/softwaremap www/stats www/survey www/survey/admin www/survey/include www/themes www/themes/gforge www/themes/gforge/css www/themes/gforge/images www/themes/gforge/images/b! ottomtab

cbayle at svr1.gforge.org cbayle at svr1.gforge.org
Mon Mar 5 20:24:47 EST 2007


Author: cbayle
Date: 2007-03-05 20:03:16 -0500 (Mon, 05 Mar 2007)
New Revision: 5918

Added:
   trunk/gforge/common/docman/Parsedata.class
   trunk/gforge/common/docman/engine/
   trunk/gforge/common/docman/engine/majwords.php
   trunk/gforge/common/docman/engine/majwords.sh
   trunk/gforge/common/docman/engine/parser_list.txt
   trunk/gforge/common/docman/engine/parser_oo.php
   trunk/gforge/common/docman/engine/parser_pdf.php.php
   trunk/gforge/common/docman/engine/parser_text.inc.php
   trunk/gforge/common/docman/engine/parser_text.php
   trunk/gforge/cronjobs/ftp_create_group_access.php
   trunk/gforge/cronjobs/gforge-db-backup.sh
   trunk/gforge/db/20051103_transiciel_motscle_document.sql
   trunk/gforge/plugins/projects_hierarchy/
   trunk/gforge/plugins/projects_hierarchy/AUTHORS
   trunk/gforge/plugins/projects_hierarchy/COPYING
   trunk/gforge/plugins/projects_hierarchy/ChangeLog
   trunk/gforge/plugins/projects_hierarchy/bin/
   trunk/gforge/plugins/projects_hierarchy/common/
   trunk/gforge/plugins/projects_hierarchy/common/languages/
   trunk/gforge/plugins/projects_hierarchy/common/languages/Base.tab
   trunk/gforge/plugins/projects_hierarchy/common/languages/French.tab
   trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php
   trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class
   trunk/gforge/plugins/projects_hierarchy/db/
   trunk/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql
   trunk/gforge/plugins/projects_hierarchy/etc/
   trunk/gforge/plugins/projects_hierarchy/etc/plugins/
   trunk/gforge/plugins/projects_hierarchy/etc/plugins/projects_hierarchy/
   trunk/gforge/plugins/projects_hierarchy/www/
   trunk/gforge/plugins/projects_hierarchy/www/add_link.php
   trunk/gforge/plugins/projects_hierarchy/www/add_son.php
   trunk/gforge/plugins/projects_hierarchy/www/del_father.php
   trunk/gforge/plugins/projects_hierarchy/www/del_son.php
   trunk/gforge/plugins/projects_hierarchy/www/dtree.css
   trunk/gforge/plugins/projects_hierarchy/www/dtree.js
   trunk/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php
   trunk/gforge/plugins/projects_hierarchy/www/img/
   trunk/gforge/plugins/projects_hierarchy/www/img/base.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/cd.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/empty.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/folder.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/folderopen.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/globe.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/imgfolder.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/join.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/joinbottom.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/line.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/minus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/minusbottom.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/musicfolder.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/nolines_minus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/nolines_plus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/page.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/plus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/plusbottom.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/question.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/trash.gif
   trunk/gforge/plugins/projects_hierarchy/www/index.php
   trunk/gforge/plugins/projects_hierarchy/www/softwaremap.php
   trunk/gforge/plugins/projects_hierarchy/www/wait_son.php
   trunk/gforge/plugins/quota_management/
   trunk/gforge/plugins/quota_management/INSTALL
   trunk/gforge/plugins/quota_management/bin/
   trunk/gforge/plugins/quota_management/common/
   trunk/gforge/plugins/quota_management/common/languages/
   trunk/gforge/plugins/quota_management/common/languages/Base.tab
   trunk/gforge/plugins/quota_management/common/quota_management-init.php
   trunk/gforge/plugins/quota_management/common/quota_managementPlugin.class
   trunk/gforge/plugins/quota_management/cronjobs/
   trunk/gforge/plugins/quota_management/cronjobs/quota_update.pl
   trunk/gforge/plugins/quota_management/db/
   trunk/gforge/plugins/quota_management/db/quota_management-init.sql
   trunk/gforge/plugins/quota_management/etc/
   trunk/gforge/plugins/quota_management/etc/plugins/
   trunk/gforge/plugins/quota_management/etc/plugins/quota_management/
   trunk/gforge/plugins/quota_management/www/
   trunk/gforge/plugins/quota_management/www/index.php
   trunk/gforge/plugins/quota_management/www/quota.php
   trunk/gforge/plugins/quota_management/www/quota_admin.php
   trunk/gforge/plugins/quota_management/www/quota_project.php
   trunk/gforge/plugins/webcalendar/
   trunk/gforge/plugins/webcalendar/AUTHORS
   trunk/gforge/plugins/webcalendar/COPYING
   trunk/gforge/plugins/webcalendar/ChangeLog
   trunk/gforge/plugins/webcalendar/README
   trunk/gforge/plugins/webcalendar/bin/
   trunk/gforge/plugins/webcalendar/common/
   trunk/gforge/plugins/webcalendar/common/languages/
   trunk/gforge/plugins/webcalendar/common/languages/Base.tab
   trunk/gforge/plugins/webcalendar/common/languages/French.tab
   trunk/gforge/plugins/webcalendar/common/webcalendar-init.php
   trunk/gforge/plugins/webcalendar/common/webcalendarPlugin.class
   trunk/gforge/plugins/webcalendar/db/
   trunk/gforge/plugins/webcalendar/db/webcalendar-init.sql
   trunk/gforge/plugins/webcalendar/etc/
   trunk/gforge/plugins/webcalendar/etc/plugins/
   trunk/gforge/plugins/webcalendar/etc/plugins/webcalendar/
   trunk/gforge/plugins/webcalendar/script/
   trunk/gforge/plugins/webcalendar/script/webcalendar-init.php
   trunk/gforge/plugins/webcalendar/www/
   trunk/gforge/plugins/webcalendar/www/.project
   trunk/gforge/plugins/webcalendar/www/AUTHORS
   trunk/gforge/plugins/webcalendar/www/GPL.html
   trunk/gforge/plugins/webcalendar/www/NEWS
   trunk/gforge/plugins/webcalendar/www/README.html
   trunk/gforge/plugins/webcalendar/www/UPGRADING.html
   trunk/gforge/plugins/webcalendar/www/activity_log.php
   trunk/gforge/plugins/webcalendar/www/add_entry.php
   trunk/gforge/plugins/webcalendar/www/admin.php
   trunk/gforge/plugins/webcalendar/www/admin_handler.php
   trunk/gforge/plugins/webcalendar/www/adminhome.php
   trunk/gforge/plugins/webcalendar/www/approve_entry.php
   trunk/gforge/plugins/webcalendar/www/assistant_edit.php
   trunk/gforge/plugins/webcalendar/www/assistant_edit_handler.php
   trunk/gforge/plugins/webcalendar/www/availability.php
   trunk/gforge/plugins/webcalendar/www/category.php
   trunk/gforge/plugins/webcalendar/www/category_handler.php
   trunk/gforge/plugins/webcalendar/www/circle.gif
   trunk/gforge/plugins/webcalendar/www/colors.php
   trunk/gforge/plugins/webcalendar/www/datesel.php
   trunk/gforge/plugins/webcalendar/www/day.php
   trunk/gforge/plugins/webcalendar/www/del_entry.php
   trunk/gforge/plugins/webcalendar/www/del_layer.php
   trunk/gforge/plugins/webcalendar/www/docs/
   trunk/gforge/plugins/webcalendar/www/docs/README
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Database.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-DeveloperGuide.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Styling.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-SysAdmin.html
   trunk/gforge/plugins/webcalendar/www/docs/newwin.gif
   trunk/gforge/plugins/webcalendar/www/edit_entry.php
   trunk/gforge/plugins/webcalendar/www/edit_entry_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_layer.php
   trunk/gforge/plugins/webcalendar/www/edit_layer_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_nonusers.php
   trunk/gforge/plugins/webcalendar/www/edit_nonusers_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_report.php
   trunk/gforge/plugins/webcalendar/www/edit_report_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_template.php
   trunk/gforge/plugins/webcalendar/www/edit_user.php
   trunk/gforge/plugins/webcalendar/www/edit_user_handler.php
   trunk/gforge/plugins/webcalendar/www/export.php
   trunk/gforge/plugins/webcalendar/www/export_handler.php
   trunk/gforge/plugins/webcalendar/www/favicon.ico
   trunk/gforge/plugins/webcalendar/www/gradient.php
   trunk/gforge/plugins/webcalendar/www/group_edit.php
   trunk/gforge/plugins/webcalendar/www/group_edit_handler.php
   trunk/gforge/plugins/webcalendar/www/groups.php
   trunk/gforge/plugins/webcalendar/www/help.gif
   trunk/gforge/plugins/webcalendar/www/help_admin.php
   trunk/gforge/plugins/webcalendar/www/help_bug.php
   trunk/gforge/plugins/webcalendar/www/help_edit_entry.php
   trunk/gforge/plugins/webcalendar/www/help_import.php
   trunk/gforge/plugins/webcalendar/www/help_index.php
   trunk/gforge/plugins/webcalendar/www/help_layers.php
   trunk/gforge/plugins/webcalendar/www/help_pref.php
   trunk/gforge/plugins/webcalendar/www/htmlarea-3.0rc1.zip
   trunk/gforge/plugins/webcalendar/www/import.php
   trunk/gforge/plugins/webcalendar/www/import_handler.php
   trunk/gforge/plugins/webcalendar/www/import_ical.php
   trunk/gforge/plugins/webcalendar/www/import_palmdesktop.php
   trunk/gforge/plugins/webcalendar/www/import_vcal.php
   trunk/gforge/plugins/webcalendar/www/includes/
   trunk/gforge/plugins/webcalendar/www/includes/config.php
   trunk/gforge/plugins/webcalendar/www/includes/connect.php
   trunk/gforge/plugins/webcalendar/www/includes/dbtable.php
   trunk/gforge/plugins/webcalendar/www/includes/functions.php
   trunk/gforge/plugins/webcalendar/www/includes/help_trailer.php
   trunk/gforge/plugins/webcalendar/www/includes/index.html
   trunk/gforge/plugins/webcalendar/www/includes/index.php
   trunk/gforge/plugins/webcalendar/www/includes/init.php
   trunk/gforge/plugins/webcalendar/www/includes/js.php
   trunk/gforge/plugins/webcalendar/www/includes/js/
   trunk/gforge/plugins/webcalendar/www/includes/js/admin.php
   trunk/gforge/plugins/webcalendar/www/includes/js/assistant_edit.php
   trunk/gforge/plugins/webcalendar/www/includes/js/availability.php
   trunk/gforge/plugins/webcalendar/www/includes/js/colors.php
   trunk/gforge/plugins/webcalendar/www/includes/js/datesel.php
   trunk/gforge/plugins/webcalendar/www/includes/js/edit_entry.php
   trunk/gforge/plugins/webcalendar/www/includes/js/edit_layer.php
   trunk/gforge/plugins/webcalendar/www/includes/js/export.php
   trunk/gforge/plugins/webcalendar/www/includes/js/popups.php
   trunk/gforge/plugins/webcalendar/www/includes/js/pref.php
   trunk/gforge/plugins/webcalendar/www/includes/js/purge.php
   trunk/gforge/plugins/webcalendar/www/includes/js/search.php
   trunk/gforge/plugins/webcalendar/www/includes/js/users.php
   trunk/gforge/plugins/webcalendar/www/includes/js/usersel.php
   trunk/gforge/plugins/webcalendar/www/includes/js/view_d.php
   trunk/gforge/plugins/webcalendar/www/includes/js/views_edit.php
   trunk/gforge/plugins/webcalendar/www/includes/js/visible.php
   trunk/gforge/plugins/webcalendar/www/includes/php-dbi.php
   trunk/gforge/plugins/webcalendar/www/includes/print_styles.css
   trunk/gforge/plugins/webcalendar/www/includes/settings.php
   trunk/gforge/plugins/webcalendar/www/includes/settings.php.orig
   trunk/gforge/plugins/webcalendar/www/includes/site_extras.php
   trunk/gforge/plugins/webcalendar/www/includes/styles.php
   trunk/gforge/plugins/webcalendar/www/includes/trailer.php
   trunk/gforge/plugins/webcalendar/www/includes/translate.php
   trunk/gforge/plugins/webcalendar/www/includes/user-app-postnuke.php
   trunk/gforge/plugins/webcalendar/www/includes/user-ldap.php
   trunk/gforge/plugins/webcalendar/www/includes/user-nis.php
   trunk/gforge/plugins/webcalendar/www/includes/user.php
   trunk/gforge/plugins/webcalendar/www/includes/validate.php
   trunk/gforge/plugins/webcalendar/www/index.php
   trunk/gforge/plugins/webcalendar/www/index2.php
   trunk/gforge/plugins/webcalendar/www/install-datebook.patch
   trunk/gforge/plugins/webcalendar/www/install/
   trunk/gforge/plugins/webcalendar/www/install/index.php
   trunk/gforge/plugins/webcalendar/www/layers.php
   trunk/gforge/plugins/webcalendar/www/layers_toggle.php
   trunk/gforge/plugins/webcalendar/www/leftarrow.gif
   trunk/gforge/plugins/webcalendar/www/leftarrowsmall.gif
   trunk/gforge/plugins/webcalendar/www/list_unapproved.php
   trunk/gforge/plugins/webcalendar/www/login.gif
   trunk/gforge/plugins/webcalendar/www/login.php
   trunk/gforge/plugins/webcalendar/www/month.php
   trunk/gforge/plugins/webcalendar/www/new.gif
   trunk/gforge/plugins/webcalendar/www/nonusers.php
   trunk/gforge/plugins/webcalendar/www/nonusers_handler.php
   trunk/gforge/plugins/webcalendar/www/pix.gif
   trunk/gforge/plugins/webcalendar/www/pixb.gif
   trunk/gforge/plugins/webcalendar/www/pref.php
   trunk/gforge/plugins/webcalendar/www/pref_handler.php
   trunk/gforge/plugins/webcalendar/www/publish.php
   trunk/gforge/plugins/webcalendar/www/purge.php
   trunk/gforge/plugins/webcalendar/www/reject_entry.php
   trunk/gforge/plugins/webcalendar/www/report.php
   trunk/gforge/plugins/webcalendar/www/rightarrow.gif
   trunk/gforge/plugins/webcalendar/www/rightarrowsmall.gif
   trunk/gforge/plugins/webcalendar/www/search.php
   trunk/gforge/plugins/webcalendar/www/search_handler.php
   trunk/gforge/plugins/webcalendar/www/select_user.php
   trunk/gforge/plugins/webcalendar/www/set_entry_cat.php
   trunk/gforge/plugins/webcalendar/www/spacer.gif
   trunk/gforge/plugins/webcalendar/www/tables-db2.sql
   trunk/gforge/plugins/webcalendar/www/tables-ibase.sql
   trunk/gforge/plugins/webcalendar/www/tables-mysql.sql
   trunk/gforge/plugins/webcalendar/www/tables-oracle.sql
   trunk/gforge/plugins/webcalendar/www/tables-postgres.sql
   trunk/gforge/plugins/webcalendar/www/tools/
   trunk/gforge/plugins/webcalendar/www/tools/check_translation.pl
   trunk/gforge/plugins/webcalendar/www/tools/convert_passwords.php
   trunk/gforge/plugins/webcalendar/www/tools/palm_datebook.pl
   trunk/gforge/plugins/webcalendar/www/tools/send_reminders.php
   trunk/gforge/plugins/webcalendar/www/tools/summary.txt
   trunk/gforge/plugins/webcalendar/www/tools/translation_summary.pl
   trunk/gforge/plugins/webcalendar/www/tools/update_all.pl
   trunk/gforge/plugins/webcalendar/www/tools/update_translation.pl
   trunk/gforge/plugins/webcalendar/www/tools/upgrade_to_0.9.7.pl
   trunk/gforge/plugins/webcalendar/www/translations/
   trunk/gforge/plugins/webcalendar/www/translations/Basque.txt
   trunk/gforge/plugins/webcalendar/www/translations/Bulgarian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Catalan.txt
   trunk/gforge/plugins/webcalendar/www/translations/Chinese-Big5.txt
   trunk/gforge/plugins/webcalendar/www/translations/Chinese-GB2312.txt
   trunk/gforge/plugins/webcalendar/www/translations/Czech.txt
   trunk/gforge/plugins/webcalendar/www/translations/Danish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Dutch.txt
   trunk/gforge/plugins/webcalendar/www/translations/English-US.txt
   trunk/gforge/plugins/webcalendar/www/translations/Estonian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Finnish.txt
   trunk/gforge/plugins/webcalendar/www/translations/French.txt
   trunk/gforge/plugins/webcalendar/www/translations/Galician.txt
   trunk/gforge/plugins/webcalendar/www/translations/German.txt
   trunk/gforge/plugins/webcalendar/www/translations/Holo-Big5.txt
   trunk/gforge/plugins/webcalendar/www/translations/Hungarian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Icelandic.txt
   trunk/gforge/plugins/webcalendar/www/translations/Italian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Japanese-eucjp.txt
   trunk/gforge/plugins/webcalendar/www/translations/Japanese-utf8.txt
   trunk/gforge/plugins/webcalendar/www/translations/Japanese.txt
   trunk/gforge/plugins/webcalendar/www/translations/Korean.txt
   trunk/gforge/plugins/webcalendar/www/translations/Norwegian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Polish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Portuguese.txt
   trunk/gforge/plugins/webcalendar/www/translations/Portuguese_BR.txt
   trunk/gforge/plugins/webcalendar/www/translations/Romanian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Russian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Spanish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Swedish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Turkish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Welsh.txt
   trunk/gforge/plugins/webcalendar/www/upcoming.php
   trunk/gforge/plugins/webcalendar/www/users.php
   trunk/gforge/plugins/webcalendar/www/usersel.php
   trunk/gforge/plugins/webcalendar/www/view_d.php
   trunk/gforge/plugins/webcalendar/www/view_entry.php
   trunk/gforge/plugins/webcalendar/www/view_l.php
   trunk/gforge/plugins/webcalendar/www/view_m.php
   trunk/gforge/plugins/webcalendar/www/view_t.php
   trunk/gforge/plugins/webcalendar/www/view_v.php
   trunk/gforge/plugins/webcalendar/www/view_w.php
   trunk/gforge/plugins/webcalendar/www/views.php
   trunk/gforge/plugins/webcalendar/www/views_edit.php
   trunk/gforge/plugins/webcalendar/www/views_edit_handler.php
   trunk/gforge/plugins/webcalendar/www/week.php
   trunk/gforge/plugins/webcalendar/www/week_details.php
   trunk/gforge/plugins/webcalendar/www/week_ssi.php
   trunk/gforge/plugins/webcalendar/www/ws/
   trunk/gforge/plugins/webcalendar/www/ws/get_events.php
   trunk/gforge/plugins/webcalendar/www/ws/get_reminders.php
   trunk/gforge/plugins/webcalendar/www/ws/login.php
   trunk/gforge/plugins/webcalendar/www/year.php
   trunk/gforge/www/docman/include/vtemplate.class.php
   trunk/gforge/www/docman/search.php
   trunk/gforge/www/docman/search.tpl.html
   trunk/gforge/www/env.inc.php
   trunk/gforge/www/include/unicode.php
   trunk/gforge/www/themes/gforge/
   trunk/gforge/www/themes/gforge/COPYING
   trunk/gforge/www/themes/gforge/README.txt
   trunk/gforge/www/themes/gforge/Theme.class
   trunk/gforge/www/themes/gforge/css/
   trunk/gforge/www/themes/gforge/css/theme.css
   trunk/gforge/www/themes/gforge/images/
   trunk/gforge/www/themes/gforge/images/bottomtab-new/
   trunk/gforge/www/themes/gforge/images/bottomtab-new/middle.gif
   trunk/gforge/www/themes/gforge/images/bottomtab-new/selected-middle.gif
   trunk/gforge/www/themes/gforge/images/bottomtab-new/selected-separator.gif
   trunk/gforge/www/themes/gforge/images/bottomtab-new/separator.gif
   trunk/gforge/www/themes/gforge/images/box-grad.png
   trunk/gforge/www/themes/gforge/images/box-topleft.png
   trunk/gforge/www/themes/gforge/images/box-topright.png
   trunk/gforge/www/themes/gforge/images/clear.png
   trunk/gforge/www/themes/gforge/images/header/
   trunk/gforge/www/themes/gforge/images/header/top-logo.blank.gif
   trunk/gforge/www/themes/gforge/images/header/top-logo.gif
   trunk/gforge/www/themes/gforge/images/header/top-middle.gif
   trunk/gforge/www/themes/gforge/images/header/top-right.gif
   trunk/gforge/www/themes/gforge/images/ic/
   trunk/gforge/www/themes/gforge/images/ic/adddoc12.png
   trunk/gforge/www/themes/gforge/images/ic/caret.png
   trunk/gforge/www/themes/gforge/images/ic/cfolder15.png
   trunk/gforge/www/themes/gforge/images/ic/check.png
   trunk/gforge/www/themes/gforge/images/ic/cvs16b.png
   trunk/gforge/www/themes/gforge/images/ic/docman16b.png
   trunk/gforge/www/themes/gforge/images/ic/forum20g.png
   trunk/gforge/www/themes/gforge/images/ic/forum20w.png
   trunk/gforge/www/themes/gforge/images/ic/ftp16b.png
   trunk/gforge/www/themes/gforge/images/ic/halfcheck.png
   trunk/gforge/www/themes/gforge/images/ic/home16b.png
   trunk/gforge/www/themes/gforge/images/ic/index.png
   trunk/gforge/www/themes/gforge/images/ic/mail16b.png
   trunk/gforge/www/themes/gforge/images/ic/mail16d.png
   trunk/gforge/www/themes/gforge/images/ic/mail16w.png
   trunk/gforge/www/themes/gforge/images/ic/manual16c.png
   trunk/gforge/www/themes/gforge/images/ic/msg.png
   trunk/gforge/www/themes/gforge/images/ic/ofolder15.png
   trunk/gforge/www/themes/gforge/images/ic/pencil.png
   trunk/gforge/www/themes/gforge/images/ic/rss.png
   trunk/gforge/www/themes/gforge/images/ic/save.png
   trunk/gforge/www/themes/gforge/images/ic/survey16b.png
   trunk/gforge/www/themes/gforge/images/ic/taskman20g.png
   trunk/gforge/www/themes/gforge/images/ic/taskman20w.png
   trunk/gforge/www/themes/gforge/images/ic/tracker20g.png
   trunk/gforge/www/themes/gforge/images/ic/tracker20w.png
   trunk/gforge/www/themes/gforge/images/ic/trash-x.png
   trunk/gforge/www/themes/gforge/images/ic/trash.png
   trunk/gforge/www/themes/gforge/images/ic/write16w.png
   trunk/gforge/www/themes/gforge/images/ic/xmail16w.png
   trunk/gforge/www/themes/gforge/images/t.png
   trunk/gforge/www/themes/gforge/images/t2.png
   trunk/gforge/www/themes/gforge/images/toptab-new/
   trunk/gforge/www/themes/gforge/images/toptab-new/left.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/middle.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/right.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/selected-left.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/selected-middle.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/selected-right.gif
   trunk/gforge/www/themes/gforge/images/vert-grad.png
   trunk/gforge/www/themes/gforge/viewvc/
   trunk/gforge/www/themes/gforge/viewvc/help.css
   trunk/gforge/www/themes/gforge/viewvc/help_dirview.html
   trunk/gforge/www/themes/gforge/viewvc/help_log.html
   trunk/gforge/www/themes/gforge/viewvc/help_query.html
   trunk/gforge/www/themes/gforge/viewvc/help_rootview.html
   trunk/gforge/www/themes/gforge/viewvc/images/
   trunk/gforge/www/themes/gforge/viewvc/images/annotate.png
   trunk/gforge/www/themes/gforge/viewvc/images/back.png
   trunk/gforge/www/themes/gforge/viewvc/images/back_small.png
   trunk/gforge/www/themes/gforge/viewvc/images/broken.png
   trunk/gforge/www/themes/gforge/viewvc/images/chalk.jpg
   trunk/gforge/www/themes/gforge/viewvc/images/cvsgraph_16x16.png
   trunk/gforge/www/themes/gforge/viewvc/images/cvsgraph_32x32.png
   trunk/gforge/www/themes/gforge/viewvc/images/diff.png
   trunk/gforge/www/themes/gforge/viewvc/images/dir.png
   trunk/gforge/www/themes/gforge/viewvc/images/down.png
   trunk/gforge/www/themes/gforge/viewvc/images/download.png
   trunk/gforge/www/themes/gforge/viewvc/images/feed-icon-16x16.jpg
   trunk/gforge/www/themes/gforge/viewvc/images/forward.png
   trunk/gforge/www/themes/gforge/viewvc/images/list.png
   trunk/gforge/www/themes/gforge/viewvc/images/log.png
   trunk/gforge/www/themes/gforge/viewvc/images/logo.png
   trunk/gforge/www/themes/gforge/viewvc/images/text.png
   trunk/gforge/www/themes/gforge/viewvc/images/up.png
   trunk/gforge/www/themes/gforge/viewvc/images/view.png
   trunk/gforge/www/themes/gforge/viewvc/styles.css
Removed:
   trunk/gforge/common/docman/engine/majwords.php
   trunk/gforge/common/docman/engine/majwords.sh
   trunk/gforge/common/docman/engine/parser_list.txt
   trunk/gforge/common/docman/engine/parser_oo.php
   trunk/gforge/common/docman/engine/parser_pdf.php.php
   trunk/gforge/common/docman/engine/parser_text.inc.php
   trunk/gforge/common/docman/engine/parser_text.php
   trunk/gforge/plugins/projects_hierarchy/AUTHORS
   trunk/gforge/plugins/projects_hierarchy/COPYING
   trunk/gforge/plugins/projects_hierarchy/ChangeLog
   trunk/gforge/plugins/projects_hierarchy/bin/
   trunk/gforge/plugins/projects_hierarchy/common/
   trunk/gforge/plugins/projects_hierarchy/common/languages/
   trunk/gforge/plugins/projects_hierarchy/common/languages/Base.tab
   trunk/gforge/plugins/projects_hierarchy/common/languages/French.tab
   trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php
   trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class
   trunk/gforge/plugins/projects_hierarchy/db/
   trunk/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql
   trunk/gforge/plugins/projects_hierarchy/etc/
   trunk/gforge/plugins/projects_hierarchy/etc/plugins/
   trunk/gforge/plugins/projects_hierarchy/etc/plugins/projects_hierarchy/
   trunk/gforge/plugins/projects_hierarchy/www/
   trunk/gforge/plugins/projects_hierarchy/www/add_link.php
   trunk/gforge/plugins/projects_hierarchy/www/add_son.php
   trunk/gforge/plugins/projects_hierarchy/www/del_father.php
   trunk/gforge/plugins/projects_hierarchy/www/del_son.php
   trunk/gforge/plugins/projects_hierarchy/www/dtree.css
   trunk/gforge/plugins/projects_hierarchy/www/dtree.js
   trunk/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php
   trunk/gforge/plugins/projects_hierarchy/www/img/
   trunk/gforge/plugins/projects_hierarchy/www/img/base.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/cd.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/empty.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/folder.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/folderopen.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/globe.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/imgfolder.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/join.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/joinbottom.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/line.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/minus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/minusbottom.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/musicfolder.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/nolines_minus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/nolines_plus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/page.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/plus.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/plusbottom.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/question.gif
   trunk/gforge/plugins/projects_hierarchy/www/img/trash.gif
   trunk/gforge/plugins/projects_hierarchy/www/index.php
   trunk/gforge/plugins/projects_hierarchy/www/softwaremap.php
   trunk/gforge/plugins/projects_hierarchy/www/wait_son.php
   trunk/gforge/plugins/quota_management/INSTALL
   trunk/gforge/plugins/quota_management/bin/
   trunk/gforge/plugins/quota_management/common/
   trunk/gforge/plugins/quota_management/common/languages/
   trunk/gforge/plugins/quota_management/common/languages/Base.tab
   trunk/gforge/plugins/quota_management/common/quota_management-init.php
   trunk/gforge/plugins/quota_management/common/quota_managementPlugin.class
   trunk/gforge/plugins/quota_management/cronjobs/
   trunk/gforge/plugins/quota_management/cronjobs/quota_update.pl
   trunk/gforge/plugins/quota_management/db/
   trunk/gforge/plugins/quota_management/db/quota_management-init.sql
   trunk/gforge/plugins/quota_management/etc/
   trunk/gforge/plugins/quota_management/etc/plugins/
   trunk/gforge/plugins/quota_management/etc/plugins/quota_management/
   trunk/gforge/plugins/quota_management/www/
   trunk/gforge/plugins/quota_management/www/index.php
   trunk/gforge/plugins/quota_management/www/quota.php
   trunk/gforge/plugins/quota_management/www/quota_admin.php
   trunk/gforge/plugins/quota_management/www/quota_project.php
   trunk/gforge/plugins/webcalendar/AUTHORS
   trunk/gforge/plugins/webcalendar/COPYING
   trunk/gforge/plugins/webcalendar/ChangeLog
   trunk/gforge/plugins/webcalendar/README
   trunk/gforge/plugins/webcalendar/bin/
   trunk/gforge/plugins/webcalendar/common/
   trunk/gforge/plugins/webcalendar/common/languages/
   trunk/gforge/plugins/webcalendar/common/languages/Base.tab
   trunk/gforge/plugins/webcalendar/common/languages/French.tab
   trunk/gforge/plugins/webcalendar/common/webcalendar-init.php
   trunk/gforge/plugins/webcalendar/common/webcalendarPlugin.class
   trunk/gforge/plugins/webcalendar/db/
   trunk/gforge/plugins/webcalendar/db/webcalendar-init.sql
   trunk/gforge/plugins/webcalendar/etc/
   trunk/gforge/plugins/webcalendar/etc/plugins/
   trunk/gforge/plugins/webcalendar/etc/plugins/webcalendar/
   trunk/gforge/plugins/webcalendar/script/
   trunk/gforge/plugins/webcalendar/script/webcalendar-init.php
   trunk/gforge/plugins/webcalendar/www/
   trunk/gforge/plugins/webcalendar/www/.project
   trunk/gforge/plugins/webcalendar/www/AUTHORS
   trunk/gforge/plugins/webcalendar/www/GPL.html
   trunk/gforge/plugins/webcalendar/www/NEWS
   trunk/gforge/plugins/webcalendar/www/README.html
   trunk/gforge/plugins/webcalendar/www/UPGRADING.html
   trunk/gforge/plugins/webcalendar/www/activity_log.php
   trunk/gforge/plugins/webcalendar/www/add_entry.php
   trunk/gforge/plugins/webcalendar/www/admin.php
   trunk/gforge/plugins/webcalendar/www/admin_handler.php
   trunk/gforge/plugins/webcalendar/www/adminhome.php
   trunk/gforge/plugins/webcalendar/www/approve_entry.php
   trunk/gforge/plugins/webcalendar/www/assistant_edit.php
   trunk/gforge/plugins/webcalendar/www/assistant_edit_handler.php
   trunk/gforge/plugins/webcalendar/www/availability.php
   trunk/gforge/plugins/webcalendar/www/category.php
   trunk/gforge/plugins/webcalendar/www/category_handler.php
   trunk/gforge/plugins/webcalendar/www/circle.gif
   trunk/gforge/plugins/webcalendar/www/colors.php
   trunk/gforge/plugins/webcalendar/www/datesel.php
   trunk/gforge/plugins/webcalendar/www/day.php
   trunk/gforge/plugins/webcalendar/www/del_entry.php
   trunk/gforge/plugins/webcalendar/www/del_layer.php
   trunk/gforge/plugins/webcalendar/www/docs/
   trunk/gforge/plugins/webcalendar/www/docs/README
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Database.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-DeveloperGuide.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Styling.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-SysAdmin.html
   trunk/gforge/plugins/webcalendar/www/docs/newwin.gif
   trunk/gforge/plugins/webcalendar/www/edit_entry.php
   trunk/gforge/plugins/webcalendar/www/edit_entry_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_layer.php
   trunk/gforge/plugins/webcalendar/www/edit_layer_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_nonusers.php
   trunk/gforge/plugins/webcalendar/www/edit_nonusers_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_report.php
   trunk/gforge/plugins/webcalendar/www/edit_report_handler.php
   trunk/gforge/plugins/webcalendar/www/edit_template.php
   trunk/gforge/plugins/webcalendar/www/edit_user.php
   trunk/gforge/plugins/webcalendar/www/edit_user_handler.php
   trunk/gforge/plugins/webcalendar/www/export.php
   trunk/gforge/plugins/webcalendar/www/export_handler.php
   trunk/gforge/plugins/webcalendar/www/favicon.ico
   trunk/gforge/plugins/webcalendar/www/gradient.php
   trunk/gforge/plugins/webcalendar/www/group_edit.php
   trunk/gforge/plugins/webcalendar/www/group_edit_handler.php
   trunk/gforge/plugins/webcalendar/www/groups.php
   trunk/gforge/plugins/webcalendar/www/help.gif
   trunk/gforge/plugins/webcalendar/www/help_admin.php
   trunk/gforge/plugins/webcalendar/www/help_bug.php
   trunk/gforge/plugins/webcalendar/www/help_edit_entry.php
   trunk/gforge/plugins/webcalendar/www/help_import.php
   trunk/gforge/plugins/webcalendar/www/help_index.php
   trunk/gforge/plugins/webcalendar/www/help_layers.php
   trunk/gforge/plugins/webcalendar/www/help_pref.php
   trunk/gforge/plugins/webcalendar/www/htmlarea-3.0rc1.zip
   trunk/gforge/plugins/webcalendar/www/import.php
   trunk/gforge/plugins/webcalendar/www/import_handler.php
   trunk/gforge/plugins/webcalendar/www/import_ical.php
   trunk/gforge/plugins/webcalendar/www/import_palmdesktop.php
   trunk/gforge/plugins/webcalendar/www/import_vcal.php
   trunk/gforge/plugins/webcalendar/www/includes/
   trunk/gforge/plugins/webcalendar/www/includes/config.php
   trunk/gforge/plugins/webcalendar/www/includes/connect.php
   trunk/gforge/plugins/webcalendar/www/includes/dbtable.php
   trunk/gforge/plugins/webcalendar/www/includes/functions.php
   trunk/gforge/plugins/webcalendar/www/includes/help_trailer.php
   trunk/gforge/plugins/webcalendar/www/includes/index.html
   trunk/gforge/plugins/webcalendar/www/includes/index.php
   trunk/gforge/plugins/webcalendar/www/includes/init.php
   trunk/gforge/plugins/webcalendar/www/includes/js.php
   trunk/gforge/plugins/webcalendar/www/includes/js/
   trunk/gforge/plugins/webcalendar/www/includes/js/admin.php
   trunk/gforge/plugins/webcalendar/www/includes/js/assistant_edit.php
   trunk/gforge/plugins/webcalendar/www/includes/js/availability.php
   trunk/gforge/plugins/webcalendar/www/includes/js/colors.php
   trunk/gforge/plugins/webcalendar/www/includes/js/datesel.php
   trunk/gforge/plugins/webcalendar/www/includes/js/edit_entry.php
   trunk/gforge/plugins/webcalendar/www/includes/js/edit_layer.php
   trunk/gforge/plugins/webcalendar/www/includes/js/export.php
   trunk/gforge/plugins/webcalendar/www/includes/js/popups.php
   trunk/gforge/plugins/webcalendar/www/includes/js/pref.php
   trunk/gforge/plugins/webcalendar/www/includes/js/purge.php
   trunk/gforge/plugins/webcalendar/www/includes/js/search.php
   trunk/gforge/plugins/webcalendar/www/includes/js/users.php
   trunk/gforge/plugins/webcalendar/www/includes/js/usersel.php
   trunk/gforge/plugins/webcalendar/www/includes/js/view_d.php
   trunk/gforge/plugins/webcalendar/www/includes/js/views_edit.php
   trunk/gforge/plugins/webcalendar/www/includes/js/visible.php
   trunk/gforge/plugins/webcalendar/www/includes/php-dbi.php
   trunk/gforge/plugins/webcalendar/www/includes/print_styles.css
   trunk/gforge/plugins/webcalendar/www/includes/settings.php
   trunk/gforge/plugins/webcalendar/www/includes/settings.php.orig
   trunk/gforge/plugins/webcalendar/www/includes/site_extras.php
   trunk/gforge/plugins/webcalendar/www/includes/styles.php
   trunk/gforge/plugins/webcalendar/www/includes/trailer.php
   trunk/gforge/plugins/webcalendar/www/includes/translate.php
   trunk/gforge/plugins/webcalendar/www/includes/user-app-postnuke.php
   trunk/gforge/plugins/webcalendar/www/includes/user-ldap.php
   trunk/gforge/plugins/webcalendar/www/includes/user-nis.php
   trunk/gforge/plugins/webcalendar/www/includes/user.php
   trunk/gforge/plugins/webcalendar/www/includes/validate.php
   trunk/gforge/plugins/webcalendar/www/index.php
   trunk/gforge/plugins/webcalendar/www/index2.php
   trunk/gforge/plugins/webcalendar/www/install-datebook.patch
   trunk/gforge/plugins/webcalendar/www/install/
   trunk/gforge/plugins/webcalendar/www/install/index.php
   trunk/gforge/plugins/webcalendar/www/layers.php
   trunk/gforge/plugins/webcalendar/www/layers_toggle.php
   trunk/gforge/plugins/webcalendar/www/leftarrow.gif
   trunk/gforge/plugins/webcalendar/www/leftarrowsmall.gif
   trunk/gforge/plugins/webcalendar/www/list_unapproved.php
   trunk/gforge/plugins/webcalendar/www/login.gif
   trunk/gforge/plugins/webcalendar/www/login.php
   trunk/gforge/plugins/webcalendar/www/month.php
   trunk/gforge/plugins/webcalendar/www/new.gif
   trunk/gforge/plugins/webcalendar/www/nonusers.php
   trunk/gforge/plugins/webcalendar/www/nonusers_handler.php
   trunk/gforge/plugins/webcalendar/www/pix.gif
   trunk/gforge/plugins/webcalendar/www/pixb.gif
   trunk/gforge/plugins/webcalendar/www/pref.php
   trunk/gforge/plugins/webcalendar/www/pref_handler.php
   trunk/gforge/plugins/webcalendar/www/publish.php
   trunk/gforge/plugins/webcalendar/www/purge.php
   trunk/gforge/plugins/webcalendar/www/reject_entry.php
   trunk/gforge/plugins/webcalendar/www/report.php
   trunk/gforge/plugins/webcalendar/www/rightarrow.gif
   trunk/gforge/plugins/webcalendar/www/rightarrowsmall.gif
   trunk/gforge/plugins/webcalendar/www/search.php
   trunk/gforge/plugins/webcalendar/www/search_handler.php
   trunk/gforge/plugins/webcalendar/www/select_user.php
   trunk/gforge/plugins/webcalendar/www/set_entry_cat.php
   trunk/gforge/plugins/webcalendar/www/spacer.gif
   trunk/gforge/plugins/webcalendar/www/tables-db2.sql
   trunk/gforge/plugins/webcalendar/www/tables-ibase.sql
   trunk/gforge/plugins/webcalendar/www/tables-mysql.sql
   trunk/gforge/plugins/webcalendar/www/tables-oracle.sql
   trunk/gforge/plugins/webcalendar/www/tables-postgres.sql
   trunk/gforge/plugins/webcalendar/www/tools/
   trunk/gforge/plugins/webcalendar/www/tools/check_translation.pl
   trunk/gforge/plugins/webcalendar/www/tools/convert_passwords.php
   trunk/gforge/plugins/webcalendar/www/tools/palm_datebook.pl
   trunk/gforge/plugins/webcalendar/www/tools/send_reminders.php
   trunk/gforge/plugins/webcalendar/www/tools/summary.txt
   trunk/gforge/plugins/webcalendar/www/tools/translation_summary.pl
   trunk/gforge/plugins/webcalendar/www/tools/update_all.pl
   trunk/gforge/plugins/webcalendar/www/tools/update_translation.pl
   trunk/gforge/plugins/webcalendar/www/tools/upgrade_to_0.9.7.pl
   trunk/gforge/plugins/webcalendar/www/translations/
   trunk/gforge/plugins/webcalendar/www/translations/Basque.txt
   trunk/gforge/plugins/webcalendar/www/translations/Bulgarian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Catalan.txt
   trunk/gforge/plugins/webcalendar/www/translations/Chinese-Big5.txt
   trunk/gforge/plugins/webcalendar/www/translations/Chinese-GB2312.txt
   trunk/gforge/plugins/webcalendar/www/translations/Czech.txt
   trunk/gforge/plugins/webcalendar/www/translations/Danish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Dutch.txt
   trunk/gforge/plugins/webcalendar/www/translations/English-US.txt
   trunk/gforge/plugins/webcalendar/www/translations/Estonian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Finnish.txt
   trunk/gforge/plugins/webcalendar/www/translations/French.txt
   trunk/gforge/plugins/webcalendar/www/translations/Galician.txt
   trunk/gforge/plugins/webcalendar/www/translations/German.txt
   trunk/gforge/plugins/webcalendar/www/translations/Holo-Big5.txt
   trunk/gforge/plugins/webcalendar/www/translations/Hungarian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Icelandic.txt
   trunk/gforge/plugins/webcalendar/www/translations/Italian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Japanese-eucjp.txt
   trunk/gforge/plugins/webcalendar/www/translations/Japanese-utf8.txt
   trunk/gforge/plugins/webcalendar/www/translations/Japanese.txt
   trunk/gforge/plugins/webcalendar/www/translations/Korean.txt
   trunk/gforge/plugins/webcalendar/www/translations/Norwegian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Polish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Portuguese.txt
   trunk/gforge/plugins/webcalendar/www/translations/Portuguese_BR.txt
   trunk/gforge/plugins/webcalendar/www/translations/Romanian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Russian.txt
   trunk/gforge/plugins/webcalendar/www/translations/Spanish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Swedish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Turkish.txt
   trunk/gforge/plugins/webcalendar/www/translations/Welsh.txt
   trunk/gforge/plugins/webcalendar/www/upcoming.php
   trunk/gforge/plugins/webcalendar/www/users.php
   trunk/gforge/plugins/webcalendar/www/usersel.php
   trunk/gforge/plugins/webcalendar/www/view_d.php
   trunk/gforge/plugins/webcalendar/www/view_entry.php
   trunk/gforge/plugins/webcalendar/www/view_l.php
   trunk/gforge/plugins/webcalendar/www/view_m.php
   trunk/gforge/plugins/webcalendar/www/view_t.php
   trunk/gforge/plugins/webcalendar/www/view_v.php
   trunk/gforge/plugins/webcalendar/www/view_w.php
   trunk/gforge/plugins/webcalendar/www/views.php
   trunk/gforge/plugins/webcalendar/www/views_edit.php
   trunk/gforge/plugins/webcalendar/www/views_edit_handler.php
   trunk/gforge/plugins/webcalendar/www/week.php
   trunk/gforge/plugins/webcalendar/www/week_details.php
   trunk/gforge/plugins/webcalendar/www/week_ssi.php
   trunk/gforge/plugins/webcalendar/www/ws/
   trunk/gforge/plugins/webcalendar/www/ws/get_events.php
   trunk/gforge/plugins/webcalendar/www/ws/get_reminders.php
   trunk/gforge/plugins/webcalendar/www/ws/login.php
   trunk/gforge/plugins/webcalendar/www/year.php
   trunk/gforge/www/themes/gforge/
   trunk/gforge/www/themes/gforge/COPYING
   trunk/gforge/www/themes/gforge/README.txt
   trunk/gforge/www/themes/gforge/Theme.class
   trunk/gforge/www/themes/gforge/css/
   trunk/gforge/www/themes/gforge/css/theme.css
   trunk/gforge/www/themes/gforge/images/
   trunk/gforge/www/themes/gforge/images/bottomtab-new/
   trunk/gforge/www/themes/gforge/images/bottomtab-new/middle.gif
   trunk/gforge/www/themes/gforge/images/bottomtab-new/selected-middle.gif
   trunk/gforge/www/themes/gforge/images/bottomtab-new/selected-separator.gif
   trunk/gforge/www/themes/gforge/images/bottomtab-new/separator.gif
   trunk/gforge/www/themes/gforge/images/box-grad.png
   trunk/gforge/www/themes/gforge/images/box-topleft.png
   trunk/gforge/www/themes/gforge/images/box-topright.png
   trunk/gforge/www/themes/gforge/images/clear.png
   trunk/gforge/www/themes/gforge/images/header/
   trunk/gforge/www/themes/gforge/images/header/top-logo.blank.gif
   trunk/gforge/www/themes/gforge/images/header/top-logo.gif
   trunk/gforge/www/themes/gforge/images/header/top-middle.gif
   trunk/gforge/www/themes/gforge/images/header/top-right.gif
   trunk/gforge/www/themes/gforge/images/ic/
   trunk/gforge/www/themes/gforge/images/ic/adddoc12.png
   trunk/gforge/www/themes/gforge/images/ic/caret.png
   trunk/gforge/www/themes/gforge/images/ic/cfolder15.png
   trunk/gforge/www/themes/gforge/images/ic/check.png
   trunk/gforge/www/themes/gforge/images/ic/cvs16b.png
   trunk/gforge/www/themes/gforge/images/ic/docman16b.png
   trunk/gforge/www/themes/gforge/images/ic/forum20g.png
   trunk/gforge/www/themes/gforge/images/ic/forum20w.png
   trunk/gforge/www/themes/gforge/images/ic/ftp16b.png
   trunk/gforge/www/themes/gforge/images/ic/halfcheck.png
   trunk/gforge/www/themes/gforge/images/ic/home16b.png
   trunk/gforge/www/themes/gforge/images/ic/index.png
   trunk/gforge/www/themes/gforge/images/ic/mail16b.png
   trunk/gforge/www/themes/gforge/images/ic/mail16d.png
   trunk/gforge/www/themes/gforge/images/ic/mail16w.png
   trunk/gforge/www/themes/gforge/images/ic/manual16c.png
   trunk/gforge/www/themes/gforge/images/ic/msg.png
   trunk/gforge/www/themes/gforge/images/ic/ofolder15.png
   trunk/gforge/www/themes/gforge/images/ic/pencil.png
   trunk/gforge/www/themes/gforge/images/ic/rss.png
   trunk/gforge/www/themes/gforge/images/ic/save.png
   trunk/gforge/www/themes/gforge/images/ic/survey16b.png
   trunk/gforge/www/themes/gforge/images/ic/taskman20g.png
   trunk/gforge/www/themes/gforge/images/ic/taskman20w.png
   trunk/gforge/www/themes/gforge/images/ic/tracker20g.png
   trunk/gforge/www/themes/gforge/images/ic/tracker20w.png
   trunk/gforge/www/themes/gforge/images/ic/trash-x.png
   trunk/gforge/www/themes/gforge/images/ic/trash.png
   trunk/gforge/www/themes/gforge/images/ic/write16w.png
   trunk/gforge/www/themes/gforge/images/ic/xmail16w.png
   trunk/gforge/www/themes/gforge/images/t.png
   trunk/gforge/www/themes/gforge/images/t2.png
   trunk/gforge/www/themes/gforge/images/toptab-new/
   trunk/gforge/www/themes/gforge/images/toptab-new/left.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/middle.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/right.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/selected-left.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/selected-middle.gif
   trunk/gforge/www/themes/gforge/images/toptab-new/selected-right.gif
   trunk/gforge/www/themes/gforge/images/vert-grad.png
   trunk/gforge/www/themes/gforge/viewvc/
   trunk/gforge/www/themes/gforge/viewvc/help.css
   trunk/gforge/www/themes/gforge/viewvc/help_dirview.html
   trunk/gforge/www/themes/gforge/viewvc/help_log.html
   trunk/gforge/www/themes/gforge/viewvc/help_query.html
   trunk/gforge/www/themes/gforge/viewvc/help_rootview.html
   trunk/gforge/www/themes/gforge/viewvc/images/
   trunk/gforge/www/themes/gforge/viewvc/images/annotate.png
   trunk/gforge/www/themes/gforge/viewvc/images/back.png
   trunk/gforge/www/themes/gforge/viewvc/images/back_small.png
   trunk/gforge/www/themes/gforge/viewvc/images/broken.png
   trunk/gforge/www/themes/gforge/viewvc/images/chalk.jpg
   trunk/gforge/www/themes/gforge/viewvc/images/cvsgraph_16x16.png
   trunk/gforge/www/themes/gforge/viewvc/images/cvsgraph_32x32.png
   trunk/gforge/www/themes/gforge/viewvc/images/diff.png
   trunk/gforge/www/themes/gforge/viewvc/images/dir.png
   trunk/gforge/www/themes/gforge/viewvc/images/down.png
   trunk/gforge/www/themes/gforge/viewvc/images/download.png
   trunk/gforge/www/themes/gforge/viewvc/images/feed-icon-16x16.jpg
   trunk/gforge/www/themes/gforge/viewvc/images/forward.png
   trunk/gforge/www/themes/gforge/viewvc/images/list.png
   trunk/gforge/www/themes/gforge/viewvc/images/log.png
   trunk/gforge/www/themes/gforge/viewvc/images/logo.png
   trunk/gforge/www/themes/gforge/viewvc/images/text.png
   trunk/gforge/www/themes/gforge/viewvc/images/up.png
   trunk/gforge/www/themes/gforge/viewvc/images/view.png
   trunk/gforge/www/themes/gforge/viewvc/styles.css
Modified:
   trunk/gforge/ChangeLog
   trunk/gforge/common/docman/Document.class
   trunk/gforge/common/forum/Forum.class
   trunk/gforge/common/include/GForge.class
   trunk/gforge/common/include/Group.class
   trunk/gforge/common/include/Role.class
   trunk/gforge/common/include/User.class
   trunk/gforge/common/reporting/ReportSetup.class
   trunk/gforge/deb-specific/db-upgrade.pl
   trunk/gforge/debian/changelog
   trunk/gforge/debian/control
   trunk/gforge/debian/gforge-db-postgresql.cron.d
   trunk/gforge/debian/gforge-ftp-proftpd.cron.d
   trunk/gforge/debian/gforge-plugins.dirs
   trunk/gforge/debian/rules
   trunk/gforge/etc/local.d/30homegroupother
   trunk/gforge/plugins/fckeditor/common/fckeditorPlugin.class
   trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GFUser.class.php
   trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GForgePre.php
   trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/skins/GForge.php
   trunk/gforge/plugins/scmccase/common/CCasePlugin.class
   trunk/gforge/www/404.php
   trunk/gforge/www/account/change_email-complete.php
   trunk/gforge/www/account/change_email.php
   trunk/gforge/www/account/change_pw.php
   trunk/gforge/www/account/editsshkeys.php
   trunk/gforge/www/account/first.php
   trunk/gforge/www/account/index.php
   trunk/gforge/www/account/login.php
   trunk/gforge/www/account/logout.php
   trunk/gforge/www/account/lostlogin.php
   trunk/gforge/www/account/lostpw.php
   trunk/gforge/www/account/pending-resend.php
   trunk/gforge/www/account/register.php
   trunk/gforge/www/account/setlang.php
   trunk/gforge/www/account/unsubscribe.php
   trunk/gforge/www/account/verify.php
   trunk/gforge/www/activity/index.php
   trunk/gforge/www/admin/admin_table.php
   trunk/gforge/www/admin/approve-pending.php
   trunk/gforge/www/admin/configman.php
   trunk/gforge/www/admin/cronman.php
   trunk/gforge/www/admin/database.php
   trunk/gforge/www/admin/groupdelete.php
   trunk/gforge/www/admin/groupedit.php
   trunk/gforge/www/admin/grouplist.php
   trunk/gforge/www/admin/index.php
   trunk/gforge/www/admin/languages/admintabfiles.php
   trunk/gforge/www/admin/languages/gettabfiles.php
   trunk/gforge/www/admin/languages/loadtabfiles.php
   trunk/gforge/www/admin/massmail.php
   trunk/gforge/www/admin/pluginman.php
   trunk/gforge/www/admin/responses_admin.php
   trunk/gforge/www/admin/search.php
   trunk/gforge/www/admin/trove/trove_cat_add.php
   trunk/gforge/www/admin/trove/trove_cat_edit.php
   trunk/gforge/www/admin/trove/trove_cat_list.php
   trunk/gforge/www/admin/unsubscribe.php
   trunk/gforge/www/admin/useredit.php
   trunk/gforge/www/admin/userlist.php
   trunk/gforge/www/admin/vhost.php
   trunk/gforge/www/dbimage.php
   trunk/gforge/www/developer/diary.php
   trunk/gforge/www/developer/index.php
   trunk/gforge/www/developer/monitor.php
   trunk/gforge/www/developer/rate.php
   trunk/gforge/www/docman/admin/index.php
   trunk/gforge/www/docman/display_doc.php
   trunk/gforge/www/docman/doceditor.php
   trunk/gforge/www/docman/include/DocumentGroupHTML.class
   trunk/gforge/www/docman/include/doc_utils.php
   trunk/gforge/www/docman/index.php
   trunk/gforge/www/docman/new.php
   trunk/gforge/www/docman/view.php
   trunk/gforge/www/download.php
   trunk/gforge/www/export/forum.php
   trunk/gforge/www/export/index.php
   trunk/gforge/www/export/projhtml.php
   trunk/gforge/www/export/projnews.php
   trunk/gforge/www/export/projtitl.php
   trunk/gforge/www/export/rss20_activity.php
   trunk/gforge/www/export/rss20_newreleases.php
   trunk/gforge/www/export/rss20_news.php
   trunk/gforge/www/export/rss20_projects.php
   trunk/gforge/www/export/rss_project.php
   trunk/gforge/www/export/rss_sfnewreleases.php
   trunk/gforge/www/export/rss_sfnews.php
   trunk/gforge/www/export/rss_sfprojects.php
   trunk/gforge/www/export/tracker.php
   trunk/gforge/www/export/trove_tree.php
   trunk/gforge/www/forum/admin/attachments.php
   trunk/gforge/www/forum/admin/index.php
   trunk/gforge/www/forum/admin/monitor.php
   trunk/gforge/www/forum/admin/pending.php
   trunk/gforge/www/forum/admin/pendingmsgdetail.php
   trunk/gforge/www/forum/attachment.php
   trunk/gforge/www/forum/forum.php
   trunk/gforge/www/forum/include/AttachManager.class
   trunk/gforge/www/forum/include/ForumHTML.class
   trunk/gforge/www/forum/index.php
   trunk/gforge/www/forum/message.php
   trunk/gforge/www/forum/monitor.php
   trunk/gforge/www/forum/myforums.php
   trunk/gforge/www/forum/new.php
   trunk/gforge/www/forum/save.php
   trunk/gforge/www/frs/admin/deletepackage.php
   trunk/gforge/www/frs/admin/deleterelease.php
   trunk/gforge/www/frs/admin/editrelease.php
   trunk/gforge/www/frs/admin/index.php
   trunk/gforge/www/frs/admin/qrs.php
   trunk/gforge/www/frs/admin/showreleases.php
   trunk/gforge/www/frs/download.php
   trunk/gforge/www/frs/index.php
   trunk/gforge/www/frs/monitor.php
   trunk/gforge/www/frs/shownotes.php
   trunk/gforge/www/help/index.php
   trunk/gforge/www/help/tracker.php
   trunk/gforge/www/help/trove_cat.php
   trunk/gforge/www/include/Layout.class
   trunk/gforge/www/include/LayoutSF.class
   trunk/gforge/www/include/exit.php
   trunk/gforge/www/include/features_boxes.php
   trunk/gforge/www/include/html.php
   trunk/gforge/www/include/languages/Base.tab
   trunk/gforge/www/include/languages/French.tab
   trunk/gforge/www/include/logger.php
   trunk/gforge/www/include/pre.php
   trunk/gforge/www/include/project_home.php
   trunk/gforge/www/include/project_summary.php
   trunk/gforge/www/include/trove.php
   trunk/gforge/www/include/user_home.php
   trunk/gforge/www/include/vote_function.php
   trunk/gforge/www/index.php
   trunk/gforge/www/index_std.php
   trunk/gforge/www/mail/admin/deletelist.php
   trunk/gforge/www/mail/admin/index.php
   trunk/gforge/www/mail/index.php
   trunk/gforge/www/my/bookmark_add.php
   trunk/gforge/www/my/bookmark_delete.php
   trunk/gforge/www/my/bookmark_edit.php
   trunk/gforge/www/my/diary.php
   trunk/gforge/www/my/index.php
   trunk/gforge/www/my/rmproject.php
   trunk/gforge/www/new/index.php
   trunk/gforge/www/news/admin/index.php
   trunk/gforge/www/news/admin/news_admin_utils.php
   trunk/gforge/www/news/index.php
   trunk/gforge/www/news/news_utils.php
   trunk/gforge/www/news/submit.php
   trunk/gforge/www/notepad.php
   trunk/gforge/www/people/admin/index.php
   trunk/gforge/www/people/createjob.php
   trunk/gforge/www/people/editjob.php
   trunk/gforge/www/people/editprofile.php
   trunk/gforge/www/people/helpwanted-latest.php
   trunk/gforge/www/people/index.php
   trunk/gforge/www/people/people_utils.php
   trunk/gforge/www/people/viewjob.php
   trunk/gforge/www/people/viewprofile.php
   trunk/gforge/www/pm/add_task.php
   trunk/gforge/www/pm/admin/index.php
   trunk/gforge/www/pm/browse_task.php
   trunk/gforge/www/pm/calendar.php
   trunk/gforge/www/pm/gantt.php
   trunk/gforge/www/pm/ganttofuser.php
   trunk/gforge/www/pm/include/ProjectTaskHTML.class
   trunk/gforge/www/pm/index.php
   trunk/gforge/www/pm/mod_task.php
   trunk/gforge/www/pm/reporting/index.php
   trunk/gforge/www/pm/task.php
   trunk/gforge/www/project/admin/database.php
   trunk/gforge/www/project/admin/editgroupinfo.php
   trunk/gforge/www/project/admin/editimages.php
   trunk/gforge/www/project/admin/group_trove.php
   trunk/gforge/www/project/admin/history.php
   trunk/gforge/www/project/admin/index.php
   trunk/gforge/www/project/admin/massadd.php
   trunk/gforge/www/project/admin/massfinish.php
   trunk/gforge/www/project/admin/project_admin_utils.php
   trunk/gforge/www/project/admin/roleedit.php
   trunk/gforge/www/project/admin/vhost.php
   trunk/gforge/www/project/index.php
   trunk/gforge/www/project/memberlist.php
   trunk/gforge/www/project/report/index.php
   trunk/gforge/www/project/request.php
   trunk/gforge/www/project/stats/index.php
   trunk/gforge/www/projects
   trunk/gforge/www/register/projectinfo.php
   trunk/gforge/www/reporting/groupadded.php
   trunk/gforge/www/reporting/groupadded_graph.php
   trunk/gforge/www/reporting/groupcum.php
   trunk/gforge/www/reporting/groupcum_graph.php
   trunk/gforge/www/reporting/index.php
   trunk/gforge/www/reporting/projectact.php
   trunk/gforge/www/reporting/projectact_graph.php
   trunk/gforge/www/reporting/projecttime.php
   trunk/gforge/www/reporting/projecttime_graph.php
   trunk/gforge/www/reporting/rebuild.php
   trunk/gforge/www/reporting/siteact.php
   trunk/gforge/www/reporting/siteact_graph.php
   trunk/gforge/www/reporting/sitetime.php
   trunk/gforge/www/reporting/sitetime_graph.php
   trunk/gforge/www/reporting/sitetimebar.php
   trunk/gforge/www/reporting/sitetimebar_graph.php
   trunk/gforge/www/reporting/timeadd.php
   trunk/gforge/www/reporting/timecategory.php
   trunk/gforge/www/reporting/toolspie.php
   trunk/gforge/www/reporting/toolspie_graph.php
   trunk/gforge/www/reporting/trackerpie_graph.php
   trunk/gforge/www/reporting/useract.php
   trunk/gforge/www/reporting/useract_graph.php
   trunk/gforge/www/reporting/useradded.php
   trunk/gforge/www/reporting/useradded_graph.php
   trunk/gforge/www/reporting/usercum.php
   trunk/gforge/www/reporting/usercum_graph.php
   trunk/gforge/www/reporting/usersummary.php
   trunk/gforge/www/reporting/usertime.php
   trunk/gforge/www/reporting/usertime_graph.php
   trunk/gforge/www/scm/admin/index.php
   trunk/gforge/www/scm/index.php
   trunk/gforge/www/scm/reporting/commits_graph.php
   trunk/gforge/www/scm/reporting/commitstime_graph.php
   trunk/gforge/www/scm/reporting/index.php
   trunk/gforge/www/scm/viewvc.php
   trunk/gforge/www/search/advanced_search.php
   trunk/gforge/www/search/include/renderers/ArtifactHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/DocsHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/ForumHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/ForumsHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/FrsHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/NewsHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/PeopleHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/ProjectHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/SkillHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/TasksHtmlSearchRenderer.class
   trunk/gforge/www/search/include/renderers/TrackersHtmlSearchRenderer.class
   trunk/gforge/www/search/index.php
   trunk/gforge/www/sendmessage.php
   trunk/gforge/www/snapshots.php
   trunk/gforge/www/snippet/add_snippet_to_package.php
   trunk/gforge/www/snippet/addversion.php
   trunk/gforge/www/snippet/browse.php
   trunk/gforge/www/snippet/delete.php
   trunk/gforge/www/snippet/detail.php
   trunk/gforge/www/snippet/download.php
   trunk/gforge/www/snippet/index.php
   trunk/gforge/www/snippet/package.php
   trunk/gforge/www/snippet/snippet_utils.php
   trunk/gforge/www/snippet/submit.php
   trunk/gforge/www/softwaremap/trove_list.php
   trunk/gforge/www/source.php
   trunk/gforge/www/stats/graphs.php
   trunk/gforge/www/stats/i18n.php
   trunk/gforge/www/stats/index.php
   trunk/gforge/www/stats/lastlogins.php
   trunk/gforge/www/stats/projects.php
   trunk/gforge/www/stats/site_stats_utils.php
   trunk/gforge/www/stats/users_graph.php
   trunk/gforge/www/stats/views_graph.php
   trunk/gforge/www/survey/admin/add_question.php
   trunk/gforge/www/survey/admin/add_survey.php
   trunk/gforge/www/survey/admin/edit_question.php
   trunk/gforge/www/survey/admin/edit_survey.php
   trunk/gforge/www/survey/admin/graphs.php
   trunk/gforge/www/survey/admin/index.php
   trunk/gforge/www/survey/admin/question.php
   trunk/gforge/www/survey/admin/show_questions.php
   trunk/gforge/www/survey/admin/show_results.php
   trunk/gforge/www/survey/admin/show_results_aggregate.php
   trunk/gforge/www/survey/admin/show_results_comments.php
   trunk/gforge/www/survey/admin/show_results_csv.php
   trunk/gforge/www/survey/admin/show_results_individual.php
   trunk/gforge/www/survey/admin/survey.php
   trunk/gforge/www/survey/include/SurveyHTML.class
   trunk/gforge/www/survey/index.php
   trunk/gforge/www/survey/privacy.php
   trunk/gforge/www/survey/rating_resp.php
   trunk/gforge/www/survey/survey.php
   trunk/gforge/www/survey/survey_resp.php
   trunk/gforge/www/tarballs.php
   trunk/gforge/www/themes/gforge-classic/css/theme.css
   trunk/gforge/www/themes/gforge-simple-theme/Theme.class
   trunk/gforge/www/themes/lite/Theme.class
   trunk/gforge/www/themes/osx/Theme.class
   trunk/gforge/www/themes/ultralite/Theme.class
   trunk/gforge/www/top/index.php
   trunk/gforge/www/top/mostactive.php
   trunk/gforge/www/top/toplist.php
   trunk/gforge/www/top/topusers.php
   trunk/gforge/www/tracker/add.php
   trunk/gforge/www/tracker/admin/ind.php
   trunk/gforge/www/tracker/admin/index.php
   trunk/gforge/www/tracker/browse.php
   trunk/gforge/www/tracker/detail.php
   trunk/gforge/www/tracker/download.php
   trunk/gforge/www/tracker/include/ArtifactHtml.class
   trunk/gforge/www/tracker/ind.php
   trunk/gforge/www/tracker/index.php
   trunk/gforge/www/tracker/mod-limited.php
   trunk/gforge/www/tracker/mod.php
   trunk/gforge/www/tracker/query.php
   trunk/gforge/www/tracker/reporting/index.php
   trunk/gforge/www/tracker/reporting/trackeract_graph.php
   trunk/gforge/www/tracker/reporting/trackerpie_graph.php
   trunk/gforge/www/tracker/taskmgr.php
   trunk/gforge/www/tracker/tracker.php
   trunk/gforge/www/users
Log:
Merge from 4.6dev Branch


Modified: trunk/gforge/ChangeLog
===================================================================
--- trunk/gforge/ChangeLog	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/ChangeLog	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,4 +1,3 @@
-
 2006-10-04 Christian Bayle <bayle at debian.org>
  	* remove use of deprecated user_ismember function in layout.class
 	* Allow opening of /etc/gforge/local.inc readonly in configman.php,

Modified: trunk/gforge/common/docman/Document.class
===================================================================
--- trunk/gforge/common/docman/Document.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/docman/Document.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -34,6 +34,7 @@
 */
 
 require_once('common/include/Error.class');
+require_once('common/docman/Parsedata.class');
 
 class Document extends Error {
 
@@ -49,7 +50,12 @@
 	 *
 	 * @var	 object  $Group.
 	 */
-	var $Group; //group object
+	  /**
+       * The Search engine path.
+       *
+       * @var  string $engine_path
+       */
+       var $engine_path;
 
 	/**
 	 *  Constructor.
@@ -59,7 +65,7 @@
 	 *  @param  array	The associative array of data.
 	 *	@return	boolean	success.
 	 */
-	function Document(&$Group, $docid=false, $arr=false) {
+	function Document(&$Group, $docid=false, $arr=false, $engine = "") {
 		$this->Error();
 		if (!$Group || !is_object($Group)) {
 			$this->setNotValidGroupObjectError();
@@ -94,6 +100,7 @@
 				}
 			}
 		}
+		$this->engine_path = $engine;
 		return true;
 	}
 
@@ -145,11 +152,17 @@
 			function_exists('mb_detect_encoding')) {
 			$data = mb_convert_encoding($data,'UTF-8',mb_detect_encoding($data));
 		}
-		
+		$data1 = $data;
+
+         // key words for in-document search
+         $kw = new Parsedata ($this->engine_path);
+         $kwords = $kw->get_parse_data (stripslashes($data1), htmlspecialchars($title1), htmlspecialchars($description), $filetype);
+         // $kwords = "";
+
 		$filesize = strlen($data);
 
 		$sql="INSERT INTO doc_data (group_id,title,description,createdate,doc_group,
-			stateid,language_id,filename,filetype,filesize,data,created_by)
+			stateid,language_id,filename,filetype,filesize,data,data_words,created_by)
 			VALUES ('".$this->Group->getId()."',
 			'". htmlspecialchars($title) ."',
 			'". htmlspecialchars($description) ."',
@@ -161,6 +174,7 @@
 			'$filetype',
 			'$filesize',
 			'". base64_encode(stripslashes($data)) ."',
+			'$kwords',
 			'$user_id')";
 
 		db_begin();

Copied: trunk/gforge/common/docman/Parsedata.class (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/Parsedata.class)

Copied: trunk/gforge/common/docman/engine (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine)

Deleted: trunk/gforge/common/docman/engine/majwords.php
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/majwords.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/majwords.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,66 +0,0 @@
-#! /usr/bin/php4 -f
-<?php
-/**
- * GForge Doc Search engine
- *
- * 
- * Fabio Bertagnin November 2005
- *
- * @version   $Id: 04_IMPROVDOC_75_document_specific_search_engine.dpatch,v 1.1 2006/01/11 17:02:45 fabio Exp $
- */
-
-require_once('pre.php');
-require_once('www/docman/include/doc_utils.php');
-require_once('common/docman/Parsedata.class');
-require_once('common/docman/Document.class');
-require_once('common/docman/DocumentFactory.class');
-require_once('common/docman/DocumentGroupFactory.class');
-
-$p = new Parsedata ("$sys_engine_path");
-// print_debug(print_r($p->get_parser_list (),true));
-
-$timestarttrait = microtime_float();
-// documents list
-$sql = "SELECT docid, group_id, filename, title, createdate, filename, description, filetype, data FROM doc_data \n";
-$resarr = array();
-$result=db_query($sql);
-if ($result)
-{
-	while ($arr = db_fetch_array($result))
-	{
-		$resarr[] = $arr;
-	}
-}
-
-$compt = 0;
-$rapp = "";
-foreach ($resarr as $item)
-{
-	$compt++;
-	$timestart = microtime_float();
-	$data1 = base64_decode($item["data"]);
-	$lenin = strlen($data1);
-	$res = $p->get_parse_data ($data1, $item["title"], $item["description"], $item["filetype"]);
-	$len = strlen($res);
-	$sql = "UPDATE doc_data SET data_words = '$res' WHERE docid = $item[docid] ";
-	db_query($sql);
-	$timeend = microtime_float();
-	$timetrait = $timeend - $timestart;
-	print_debug ("analyze $item[filename]  type=$item[filetype]  octets in=$lenin  octets out=$len   time=$timetrait sec");
-}
-$timeendtrait = microtime_float();
-$timetot = $timeendtrait - $timestarttrait;
-print_debug ("End analyze : $compt files, $timetot secs.");
-
-
-function print_debug ($text)
-{
-	echo "$text\n";
-}
-
-function microtime_float()
-{
-  list($usec, $sec) = explode(" ", microtime());
-  return ((float)$usec + (float)$sec);
-}
-?>

Copied: trunk/gforge/common/docman/engine/majwords.php (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/majwords.php)

Deleted: trunk/gforge/common/docman/engine/majwords.sh
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/majwords.sh	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/majwords.sh	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,2 +0,0 @@
-#!/bin/sh
-./majwords.php -d include_path=/etc/gforge:/usr/share/gforge:/usr/share/gforge/www/include

Copied: trunk/gforge/common/docman/engine/majwords.sh (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/majwords.sh)

Deleted: trunk/gforge/common/docman/engine/parser_list.txt
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/parser_list.txt	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/parser_list.txt	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,8 +0,0 @@
-# parser_list.txt
-# Liste des documents connus avec le parseur associé
-# Cette liste est utilisée pour fabriquer les mots clé pour la recherche dans le contenu des documents
-# Le format texte est traité directement par un parseur approprié (engine/parser_text.py).
-# Les autres formats doivent être convertis au format texte avant d'être envoyées au parseur de base.
-text/plain	parser_text.php
-application/pdf	parser_pdf.php
-application/vnd.sun.xml.writer	parser_oo.php

Copied: trunk/gforge/common/docman/engine/parser_list.txt (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/parser_list.txt)

Deleted: trunk/gforge/common/docman/engine/parser_oo.php
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/parser_oo.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/parser_oo.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,33 +0,0 @@
-#! /usr/bin/php4 -f
-<?php
-/**
- * GForge Doc Search Utilities
- *
- * 
- * Fabio Bertagnin November 2005
- *
- */
- 
-require_once("parser_text.inc.php");
-
-
-if ($argc != 2)
-{
-	echo "Usage : parser_oo.php <filename>\n";
-	exit (1);
-}
-
-$fichin = $argv[1];
-if (!is_file($fichin)) exit (1);
-$fichout = "/tmp/gfo".rand(10000, 99999).".tmp";
-$cmd = "/usr/bin/perl /usr/bin/ooo2txt.pl $fichin > $fichout";
-$res = shell_exec($cmd);
-
-
-$rep = parser_text($fichout);
-// envoi du résultat sur stdout
-echo "$rep";
-// efface les fichiers témporaires
-unlink ($fichout);
-
-?>
\ No newline at end of file

Copied: trunk/gforge/common/docman/engine/parser_oo.php (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/parser_oo.php)

Deleted: trunk/gforge/common/docman/engine/parser_pdf.php.php
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/parser_pdf.php.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/parser_pdf.php.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,33 +0,0 @@
-#! /usr/bin/php4 -f
-<?php
-/**
- * GForge Doc Search Utilities
- *
- * 
- * Fabio Bertagnin November 2005
- *
- */
- 
-require_once("parser_text.inc.php");
-
-
-if ($argc != 2)
-{
-	echo "Usage : parser_pdf.php <filename>\n";
-	exit (1);
-}
-
-$fichin = $argv[1];
-if (!is_file($fichin)) exit (1);
-$fichout = "/tmp/gfo".rand(10000, 99999).".tmp";
-$cmd = "/usr/bin/pdftotext $fichin - > $fichout";
-$res = shell_exec($cmd);
-
-
-$rep = parser_text($fichout);
-// envoi du résultat sur stdout
-echo "$rep";
-// efface les fichiers témporaires
-unlink ($fichout);
-
-?>
\ No newline at end of file

Copied: trunk/gforge/common/docman/engine/parser_pdf.php.php (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/parser_pdf.php.php)

Deleted: trunk/gforge/common/docman/engine/parser_text.inc.php
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/parser_text.inc.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/parser_text.inc.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,64 +0,0 @@
-<?php
-/**
- * GForge Doc Search Utilities
- *
- * 
- * Fabio Bertagnin November 2005
- *
- */
-
-function parser_text($fichin)
-{
-	$tstart = microtime_float();
-	if (!is_file($fichin)) return "";
-	$fp = fopen ($fichin, "r");
-	$buff = fread ($fp, filesize($fichin));
-	// tout en minuscules
-	$buff = mb_strtolower($buff);
-	// élimination d'éventuels caractères unicode encore présents
-	$buff = mb_convert_encoding ($buff, "ascii");
-	// élimination caractères avec accents 
-	// et caractères spéciaux
-	$buff = suppression_diacritics($buff);
-	// tous les mots dans un tableau
-	$a = explode(" ", $buff);
-	//sort($a);
-	// élimination des doublons
-	$a = array_unique($a);
-	// envoi du résultat sur stdout
-	$rep = print_list($a);
-	return $rep;
-}
-
-function print_list ($list)
-{
-	$rep = "";
-	foreach ($list as $el)
-	{
-		if (strlen($el) > 1) $rep .= "$el ";
-	}
-	return $rep;
-}
-
-function suppression_diacritics($text)
-{
-	$b = $text;
-	$b = strtr($b, "éêèëàâäîïùûüôöç", "eeeeaaaiiuuuooc");
-	$b = strtr($b, "\t\r\n?.*'\":;,#![]()", "                 ");
-	return $b;
-}
-
-function microtime_float()
-{
-  list($usec, $sec) = explode(" ", microtime());
-  return ((float)$usec + (float)$sec);
-}
-
-
-function print_debug ($text)
-{
-	echo "$text <br />\n";
-	ob_flush();
-}
-
-?>
\ No newline at end of file

Copied: trunk/gforge/common/docman/engine/parser_text.inc.php (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/parser_text.inc.php)

Deleted: trunk/gforge/common/docman/engine/parser_text.php
===================================================================
--- branches/Branch_4_6dev/gforge/common/docman/engine/parser_text.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/common/docman/engine/parser_text.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,27 +0,0 @@
-#! /usr/bin/php4 -f
-<?php
-/**
- * GForge Doc Search Utilities
- *
- * 
- * Fabio Bertagnin November 2005
- *
- */
- 
-require_once("parser_text.inc.php");
-
-if ($argc != 2)
-{
-	echo "Usage : parser_oo.php <filename>\n";
-	exit (1);
-}
-$fichin = $argv[1];
-if (!is_file($fichin)) exit (1);
-
-$rep = parser_text($fichin);
-// envoi du résultat sur stdout
-echo "$rep";
-// efface le fichier source
-unlink ($fichin);
-
-?>
\ No newline at end of file

Copied: trunk/gforge/common/docman/engine/parser_text.php (from rev 5913, branches/Branch_4_6dev/gforge/common/docman/engine/parser_text.php)

Modified: trunk/gforge/common/forum/Forum.class
===================================================================
--- trunk/gforge/common/forum/Forum.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/forum/Forum.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -268,7 +268,7 @@
 	 *	@return	int	The unix time.
 	 */
 	function getSavedDate() {
-		if ($this->save_date) {
+		if (@$this->save_date) {
 			return $this->save_date;
 		} else {
 			if (session_loggedin()) {

Modified: trunk/gforge/common/include/GForge.class
===================================================================
--- trunk/gforge/common/include/GForge.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/include/GForge.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -21,6 +21,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+require_once('common/include/Error.class');
 class GForge extends Error {
 
 	/**

Modified: trunk/gforge/common/include/Group.class
===================================================================
--- trunk/gforge/common/include/Group.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/include/Group.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -2082,6 +2082,13 @@
 
 		$this->sendApprovalEmail();
 		$this->addHistory('approved', 'x');
+		
+		//plugin webcal
+			//change assistant for webcal
+			
+			$params[0] = $idadmin_group ;
+			$params[1] = $this->getID();
+			plugin_hook('change_cal_permission_default',$params);	
 
 		return true;
 	}

Modified: trunk/gforge/common/include/Role.class
===================================================================
--- trunk/gforge/common/include/Role.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/include/Role.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -42,14 +42,15 @@
 	'trackeradmin'=>array('0','2'),
 	'tracker'=>array('-1','0','1','2','3'),
 	'pmadmin'=>array('0','2'),
-	'pm'=>array('-1','0','1','2','3'));
+	'pm'=>array('-1','0','1','2','3'),
+	'webcal'=>array('0','1','2'));
 
 	var $defaults=array(
-		'Admin'=>array( 'projectadmin'=>'A', 'frs'=>'1', 'scm'=>'1', 'docman'=>'1', 'forumadmin'=>'2', 'forum'=>'2', 'trackeradmin'=>'2', 'tracker'=>'2', 'pmadmin'=>'2', 'pm'=>'2' ),
-		'Senior Developer'=>array( 'projectadmin'=>'0', 'frs'=>'1', 'scm'=>'1', 'docman'=>'1', 'forumadmin'=>'2', 'forum'=>'2', 'trackeradmin'=>'2', 'tracker'=>'2', 'pmadmin'=>'2', 'pm'=>'2' ),
-		'Junior Developer'=>array( 'projectadmin'=>'0', 'frs'=>'0', 'scm'=>'1', 'docman'=>'0', 'forumadmin'=>'0', 'forum'=>'1', 'trackeradmin'=>'0', 'tracker'=>'1', 'pmadmin'=>'0', 'pm'=>'1' ),
-		'Doc Writer'=>array( 'projectadmin'=>'0', 'frs'=>'0', 'scm'=>'0', 'docman'=>'1', 'forumadmin'=>'0', 'forum'=>'1', 'trackeradmin'=>'0', 'tracker'=>'0', 'pmadmin'=>'0', 'pm'=>'0' ),
-		'Support Tech'=>array( 'projectadmin'=>'0', 'frs'=>'0', 'scm'=>'0', 'docman'=>'1', 'forumadmin'=>'0', 'forum'=>'1', 'trackeradmin'=>'0', 'tracker'=>'2', 'pmadmin'=>'0', 'pm'=>'0' )
+		'Admin'=>array( 'projectadmin'=>'A', 'frs'=>'1', 'scm'=>'1', 'docman'=>'1', 'forumadmin'=>'2', 'forum'=>'2', 'trackeradmin'=>'2', 'tracker'=>'2', 'pmadmin'=>'2', 'pm'=>'2', 'webcal'=>'1' ),
+		'Senior Developer'=>array( 'projectadmin'=>'0', 'frs'=>'1', 'scm'=>'1', 'docman'=>'1', 'forumadmin'=>'2', 'forum'=>'2', 'trackeradmin'=>'2', 'tracker'=>'2', 'pmadmin'=>'2', 'pm'=>'2', 'webcal'=>'2' ),
+		'Junior Developer'=>array( 'projectadmin'=>'0', 'frs'=>'0', 'scm'=>'1', 'docman'=>'0', 'forumadmin'=>'0', 'forum'=>'1', 'trackeradmin'=>'0', 'tracker'=>'1', 'pmadmin'=>'0', 'pm'=>'1', 'webcal'=>'2' ),
+		'Doc Writer'=>array( 'projectadmin'=>'0', 'frs'=>'0', 'scm'=>'0', 'docman'=>'1', 'forumadmin'=>'0', 'forum'=>'1', 'trackeradmin'=>'0', 'tracker'=>'0', 'pmadmin'=>'0', 'pm'=>'0' , 'webcal'=>'2'),
+		'Support Tech'=>array( 'projectadmin'=>'0', 'frs'=>'0', 'scm'=>'0', 'docman'=>'1', 'forumadmin'=>'0', 'forum'=>'1', 'trackeradmin'=>'0', 'tracker'=>'2', 'pmadmin'=>'0', 'pm'=>'0' , 'webcal'=>'2')
 	);
 	
 	/**

Modified: trunk/gforge/common/include/User.class
===================================================================
--- trunk/gforge/common/include/User.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/include/User.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -586,6 +586,10 @@
 				}
 			}
 			db_commit();
+			
+			//plugin webcalendar, create cal_user
+			plugin_hook('add_cal_user',$this->getID());
+			
 			return true;
 		}
 	}

Modified: trunk/gforge/common/reporting/ReportSetup.class
===================================================================
--- trunk/gforge/common/reporting/ReportSetup.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/common/reporting/ReportSetup.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -440,6 +440,7 @@
 		$this->setError('backfill_users_added_daily:: Could Not Get Start Date');
 		return false;
 	}
+	$i = 0;
 	while (true) {
 		$day=($today-($i*REPORT_DAY_SPAN));
 		if (!$this->users_added_daily($day)) {
@@ -483,6 +484,7 @@
 		$this->setError('backfill_groups_added_daily:: Could Not Get Start Date');
 		return false;
 	}
+	$i = 0;
 	while (true) {
 		$day=($today-($i*REPORT_DAY_SPAN));
 		if (!$this->groups_added_daily($day)) {
@@ -678,6 +680,7 @@
 		$this->setError('backfill_users_cum_daily:: Could Not Get Start Date');
 		return false;
 	}
+	$i = 0;
 	while (true) {
 		$day=$today-($i*REPORT_DAY_SPAN);
 		if (!$this->users_cum_daily($day)) {
@@ -721,6 +724,7 @@
 		$this->setError('backfill_groups_cum_daily:: Could Not Get Start Date');
 		return false;
 	}
+	$i = 0;
 	while (true) {
 		$day=$today-($i*REPORT_DAY_SPAN);
 		if (!$this->groups_cum_daily($day)) {
@@ -972,6 +976,7 @@
 		$this->setError('backfill_user_act_daily:: Could Not Get Start Date');
 		return false;
 	}
+	$i = 0;
 	while (true) {
 		$day=$today-($i*REPORT_DAY_SPAN);
 		if (!$this->user_act_daily($day)) {
@@ -1185,6 +1190,7 @@
 		$this->setError('backfill_group_act_daily:: Could Not Get Start Date');
 		return false;
 	}
+	$i = 0;
 	while (true) {
 		$day=$today-($i*REPORT_DAY_SPAN);
 		if (!$this->group_act_daily($day)) {

Copied: trunk/gforge/cronjobs/ftp_create_group_access.php (from rev 5913, branches/Branch_4_6dev/gforge/cronjobs/ftp_create_group_access.php)

Copied: trunk/gforge/cronjobs/gforge-db-backup.sh (from rev 5913, branches/Branch_4_6dev/gforge/cronjobs/gforge-db-backup.sh)

Copied: trunk/gforge/db/20051103_transiciel_motscle_document.sql (from rev 5913, branches/Branch_4_6dev/gforge/db/20051103_transiciel_motscle_document.sql)

Modified: trunk/gforge/deb-specific/db-upgrade.pl
===================================================================
--- trunk/gforge/deb-specific/db-upgrade.pl	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/deb-specific/db-upgrade.pl	2007-03-06 01:03:16 UTC (rev 5918)
@@ -2829,7 +2829,10 @@
         $dbh->commit () ;
     }
 
-
+	
+	&update_with_sql("20051103_transiciel_motscle_document","4.6-1");
+	
+	
     ########################### INSERT HERE #################################
 
     &debug ("It seems your database $action went well and smoothly. That's cool.") ;

Modified: trunk/gforge/debian/changelog
===================================================================
--- trunk/gforge/debian/changelog	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/debian/changelog	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,4 +1,4 @@
-gforge (4.5.14-25+955) unstable; urgency=low
+gforge (4.5.14-25+963) unstable; urgency=low
 
   * Merged Branch_4_5 into trunk after svn conversion
   essentially debian and deb-specific dir, setup and install-apache.sh too

Modified: trunk/gforge/debian/control
===================================================================
--- trunk/gforge/debian/control	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/debian/control	2007-03-06 01:03:16 UTC (rev 5918)
@@ -187,7 +187,7 @@
 
 Package: gforge-ftp-proftpd
 Architecture: all
-Depends: gforge-common, gforge-shell, proftpd, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0
+Depends: gforge-common, gforge-shell, proftpd, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, php4-cli
 Provides: gforge-ftp
 Conflicts: gforge-ftp
 Description: collaborative development tool - FTP management (using ProFTPd)

Modified: trunk/gforge/debian/gforge-db-postgresql.cron.d
===================================================================
--- trunk/gforge/debian/gforge-db-postgresql.cron.d	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/debian/gforge-db-postgresql.cron.d	2007-03-06 01:03:16 UTC (rev 5918)
@@ -2,6 +2,9 @@
 # Regular cron jobs for the gforge-db-postgresql package
 #
 
+# Daily reporting process
+25 7 * * * gforge [ -x /usr/lib/gforge/bin/reporting_cron.php ] && /usr/lib/gforge/bin/reporting_cron.php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
+
 # Recalculate user popularity metric
 25 1 * * * gforge [ -x /usr/lib/gforge/bin/calculate_user_metric.php ] && /usr/lib/gforge/bin/calculate_user_metric.php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
 
@@ -33,7 +36,7 @@
 45 0 * * * gforge [ -x /usr/lib/gforge/bin/db_stats_agg.php ] && /usr/lib/gforge/bin/db_stats_agg.php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
 
 # Hourly sending of mass e-mailings
-48 * * * * gforge [ -x /usr/lib/gforge/bin/massmail.php ] && /usr/lib/gforge/bin/massmail.php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
+48 * * * * root [ -x /usr/lib/gforge/bin/massmail.php ] && /usr/lib/gforge/bin/massmail.php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
 
 # Weekly db vacuum
 50 2 * * Mon gforge [ -x /usr/lib/gforge/bin/vacuum.php ] && /usr/lib/gforge/bin/vacuum.php -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
@@ -43,3 +46,7 @@
 
 # Daily mail for not approved news
 30 17 * * * root [ -x /usr/lib/gforge/bin/get_news_notapproved.pl ] && /usr/lib/gforge/bin/get_news_notapproved.pl -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include > /dev/null 2>&1
+
+# Daily incremental backup to /backup
+# we have to discuss this 
+#15 23 * * * root [ -x /usr/lib/gforge/bin/gforge-db-backup.sh ] && /usr/lib/gforge/bin/gforge-db-backup.sh > /dev/null 2>&1

Modified: trunk/gforge/debian/gforge-ftp-proftpd.cron.d
===================================================================
--- trunk/gforge/debian/gforge-ftp-proftpd.cron.d	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/debian/gforge-ftp-proftpd.cron.d	2007-03-06 01:03:16 UTC (rev 5918)
@@ -4,3 +4,7 @@
 
 # FTP update
 0 * * * * root [ -x /usr/lib/gforge/bin/install-ftp.sh ] && /usr/lib/gforge/bin/install-ftp.sh update > /dev/null 2>&1
+
+# create and mount project directory in user's home directory
+# added by fabio bertagnin nov 2005
+0 * * * * root [ -x /usr/lib/gforge/bin/ftp_create_group_access.php ] && /usr/bin/php4 -d include_path=/etc/gforge:/usr/share/gforge/:/usr/share/gforge/www/include /usr/lib/gforge/bin/ftp_create_group_access.php > /dev/null 2>&1
\ No newline at end of file

Modified: trunk/gforge/debian/gforge-plugins.dirs
===================================================================
--- trunk/gforge/debian/gforge-plugins.dirs	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/debian/gforge-plugins.dirs	2007-03-06 01:03:16 UTC (rev 5918)
@@ -8,6 +8,7 @@
 usr/share/gforge/www/include
 usr/sbin
 var/lib/gforge/www/plugins
+var/lib/gforge/www/plugins/webcalendar/www/includes
 var/lib/gforge/etc
 var/lib/gforge/etc/templates
 bin

Modified: trunk/gforge/debian/rules
===================================================================
--- trunk/gforge/debian/rules	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/debian/rules	2007-03-06 01:03:16 UTC (rev 5918)
@@ -72,6 +72,7 @@
 	chown www-data:www-data $(CURDIR)/debian/gforge-plugins/var/lib/gforge/www/plugins
 	chmod 755 $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/*/sbin/*
 	chmod 755 $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/*/bin/*
+	rm -f $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/*/COPYING
 	# mediawiki plugin
 	cp -r $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/mediawiki/usr $(CURDIR)/debian/gforge-plugins/
 	rm -rf $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/mediawiki/usr
@@ -86,6 +87,19 @@
 	# scmsvn plugin
 	install -m 755 deb-specific/install-svn.sh     $(CURDIR)/debian/gforge-plugins/usr/lib/gforge/bin/
 	cp -r deb-specific/scmsvn/cronjobs/* $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/scmsvn/cronjobs
+	# cvstracker plugin
+	chmod +x $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/svntracker/postcommit.example
+	# fckeditor plugin
+	chmod +x $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/fckeditor/www/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
+	chmod +x $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/fckeditor/www/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/*.cgi
+	# webcalendar plugin
+	mv $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/webcalendar/www/includes/settings.php \
+		$(CURDIR)/debian/gforge-plugins/var/lib/gforge/www/plugins/webcalendar/www/includes
+	chown www-data $(CURDIR)/debian/gforge-plugins/var/lib/gforge/www/plugins/webcalendar/www/includes/settings.php
+	chmod 600 $(CURDIR)/debian/gforge-plugins/var/lib/gforge/www/plugins/webcalendar/www/includes/settings.php
+	ln -s /var/lib/gforge/www/plugins/webcalendar/www/includes/settings.php \
+		$(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/webcalendar/www/includes/settings.php
+	chmod +x $(CURDIR)/debian/gforge-plugins/usr/share/gforge/plugins/webcalendar/www/tools/*.pl
 
 	# gforge-common
 	install -m 644 etc/httpd.d/[0-9][0-9]*            $(CURDIR)/debian/gforge-common/usr/share/gforge/etc/httpd.d/
@@ -122,6 +136,7 @@
 	find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/ -name CVS -type d | xargs rm -rf
 	find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/ -name .cvsignore | xargs rm -f
 	find $(CURDIR)/debian/gforge-web-apache -name \*.uu -type f | xargs rm -f
+	rm -f $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www/themes/gforge/COPYING
 	find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www -type d -exec chmod 0755 {} \;
 	find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www -type f -exec chmod 0644 {} \;
 	find $(CURDIR)/debian/gforge-web-apache/usr/share/gforge/www -name '*.py' -exec chmod 0755 {} \;
@@ -180,9 +195,15 @@
 	install -m 644 cronjobs/stats_site.inc        $(CURDIR)/debian/gforge-db-postgresql/usr/share/gforge/cronjobs/
 	install -m 644 cronjobs/stats_projects.inc    $(CURDIR)/debian/gforge-db-postgresql/usr/share/gforge/cronjobs/
 	#
+	install -m 755 cronjobs/reporting_cron.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
+	# 
 	install -m 755 cronjobs/db_stats_agg.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
 	install -m 755 cronjobs/massmail.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
 	install -m 755 cronjobs/vacuum.php $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
+	install -m 755 cronjobs/gforge-db-backup.sh $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
+	#
+	install -m 755 cronjobs/ftp_create_group_access.php $(CURDIR)/debian/gforge-ftp-proftpd/usr/lib/gforge/bin/
+	#
 	install -m 755 deb-specific/stats_projects_logparse.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
 	install -m 755 deb-specific/get_news_notapproved.pl $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/
 	install -m 755 deb-specific/install-db.sh $(CURDIR)/debian/gforge-db-postgresql/usr/lib/gforge/bin/

Modified: trunk/gforge/etc/local.d/30homegroupother
===================================================================
--- trunk/gforge/etc/local.d/30homegroupother	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/etc/local.d/30homegroupother	2007-03-06 01:03:16 UTC (rev 5918)
@@ -29,6 +29,7 @@
 //             you will break the html_image function in include/html.php
 //
 $sys_urlroot='{sys_urlroot}';
+$sys_urlprefix='';
 
 // Name of the system as a whole (needed by various utils and titles)
 $sys_name='{system_name}';

Modified: trunk/gforge/plugins/fckeditor/common/fckeditorPlugin.class
===================================================================
(Binary files differ)

Modified: trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GFUser.class.php
===================================================================
--- trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GFUser.class.php	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GFUser.class.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -356,6 +356,24 @@
 	function isLoggedIn() {
 		return $this->is_logged_in;
 	}
+
+	function setUpTheme() {
+//
+//	An optimization in session_getdata lets us pre-fetch this in most cases.....
+//
+		if (!$this->data_array['dirname']) {
+			$res=db_query("SELECT dirname FROM themes WHERE theme_id='".$this->getThemeID()."'");
+			$this->theme=db_result($res,0,'dirname');
+		} else {
+			$this->theme=$this->data_array['dirname'];
+		}
+		if (is_file($GLOBALS['sys_themeroot'].$this->theme.'/Theme.class')) {
+			$GLOBALS['sys_theme']=$this->theme;
+		} else {
+			$this->theme=$GLOBALS['sys_theme'];
+		}
+		return $this->theme;
+	}
 }
 
 // Local Variables:

Modified: trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GForgePre.php
===================================================================
--- trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GForgePre.php	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/includes/GForgePre.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -41,7 +41,7 @@
 */
 
 //library to determine browser settings
-//require_once('www/include/browser.php');
+require_once('www/include/browser.php');
 
 //base error library for new objects
 require_once('common/include/Error.class');
@@ -151,7 +151,7 @@
 if (session_loggedin()) {
 	//set up the user's timezone if they are logged in
 	$LUSER =& session_get_user();
-	//$LUSER->setUpTheme();
+	$LUSER->setUpTheme();
 	//header('Cache-Control: private');
 	$GLOBALS['G_USERNAME']=$GLOBALS['G_SESSION']->getUnixName();
 }

Modified: trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/skins/GForge.php
===================================================================
--- trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/skins/GForge.php	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/plugins/mediawiki/usr/share/mediawiki1.7/skins/GForge.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -90,33 +90,7 @@
 		<?php $this->html('headscripts') ?>
 
 	<!-- GFORGE Stylesheet BEGIN -->
-	<?php
-		/* check if a personalized css stylesheet exist, if yes include only
-   		this stylesheet
-   		new stylesheets should use the <themename>.css file
-		*/
-		$theme_cssfile=$GLOBALS['sys_themeroot'].$GLOBALS['sys_theme'].'/css/'.$GLOBALS['sys_theme'].'.css';
-		if (file_exists($theme_cssfile)){
-			echo '
-	<link rel="stylesheet" type="text/css" href="/themes/'.$GLOBALS['sys_theme'].'/css/'.$GLOBALS['sys_theme'].'.css"/>
-			';
-		} else {
-		/* if this is not our case, then include the compatibility stylesheet
-   		that contains all removed styles from the code and check if a
-   		custom stylesheet exists. 
-   		Used for compatibility with existing stylesheets
-		*/
-		?>
-	<link rel="stylesheet" type="text/css" href="/themes/css/gforge-compat.css" />
-		<?php
-		$theme_cssfile=$GLOBALS['sys_themeroot'].$GLOBALS['sys_theme'].'/css/theme.css';
-		if (file_exists($theme_cssfile)){
-			echo '
-	<link rel="stylesheet" type="text/css" href="/themes/'.$GLOBALS['sys_theme'].'/css/theme.css" />
-			';
-		}
-	}
-?>
+	<?php $GLOBALS['HTML']->headerCSS(); ?>
 	<!-- GFORGE Stylesheet END -->
 </head>
 
@@ -125,69 +99,7 @@
  class="<?php $this->text('nsclass') ?> <?php $this->text('dir') ?>">
 
 	<!-- GFORGE BodyHeader BEGIN -->
-<table border="0" width="100%" cellspacing="0" cellpadding="0" id="headertable" >
-	<tr>
-		<td><a href="/"><?php echo html_image('logo.png',198,52,array('border'=>'0')); ?></a></td>
-		<td><?php echo $GLOBALS['HTML']->searchBox(); ?></td>
-		<td align="right"><?php
-			global $Language;
-			if (session_loggedin()) {
-				?>
-				<a class="lnkutility" href="/account/logout.php?return_to=<?php echo $_SERVER['REQUEST_URI']; ?>"><?php echo $Language->getText('common','logout'); ?></a><br />
-				<a class="lnkutility" href="/account/"><?php echo $Language->getText('common','myaccount'); ?></a>
-				<?php
-			} else {
-				?>
-				<b><a class="lnkutility" href="/account/login.php?return_to=<?php echo $_SERVER['REQUEST_URI']; ?>"><?php echo $Language->getText('common','login'); ?></a></b><br />
-				<b><a class="lnkutility" href="/account/register.php"><?php echo $Language->getText('common','newaccount'); ?></a></b>
-				<?php
-			}
-			echo $GLOBALS['HTML']->quickNav();
-
-		?></td>
-		<td>&nbsp;&nbsp;</td>
-	</tr>
-
-</table>
-<table border="0" width="100%" cellspacing="0" cellpadding="0" >
-	<tr>
-		<td>&nbsp;</td>
-		<td colspan="3">
-		<?php echo $GLOBALS['HTML']->outerTabs($params); ?>
-		</td>
-		<td>&nbsp;</td>
-	</tr>
-	<tr>
-		<td align="left" class="toptab" width="9"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>tabs/topleft.png" height="9" width="9" alt="" /></td>
-		<td class="toptab" width="30"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>clear.png" width="30" height="1" alt="" /></td>
-		<td class="toptab"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>clear.png" width="1" height="1" alt="" /></td>
-		<td class="toptab" width="30"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>clear.png" width="30" height="1" alt="" /></td>
-		<td align="right" class="toptab" width="9"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>tabs/topright.png" height="9" width="9" alt="" /></td>
-	</tr>
-	<tr>
-		<!-- Outer body row -->
-		<td class="toptab"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>clear.png" width="10" height="1" alt="" /></td>
-		<td valign="top" width="99%" class="toptab" colspan="3">
-			<!-- Inner Tabs / Shell -->
-			<table border="0" width="100%" cellspacing="0" cellpadding="0">
-			<?php if (isset($params['group']) && $params['group']) { ?>
-			<tr>
-				<td>&nbsp;</td>
-				<td>
-				<?php echo $GLOBALS['HTML']->projectTabs($params['toptab'],$params['group']); ?>
-				</td>
-				<td>&nbsp;</td>
-			</tr>
-			<?php } ?>
-			<tr>
-				<td align="left" class="projecttab" width="9"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>tabs/topleft-inner.png" height="9" width="9" alt="" /></td>
-				<td class="projecttab" ><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>clear.png" width="1" height="1" alt="" /></td>
-				<td align="right" class="projecttab"  width="9"><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>tabs/topright-inner.png" height="9" width="9" alt="" /></td>
-			</tr>
-
-			<tr>
-				<td class="projecttab" ><img src="<?php echo $GLOBALS['HTML']->imgroot; ?>clear.png" width="10" height="1" alt="" /></td>
-				<td valign="top" width="99%" class="projecttab" >
+	<?php $GLOBALS['HTML']->bodyHeader($params); ?>
 	<!-- GFORGE BodyHeader END -->
 
 	<div id="globalWrapper">

Copied: trunk/gforge/plugins/projects_hierarchy (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy)

Deleted: trunk/gforge/plugins/projects_hierarchy/AUTHORS
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/AUTHORS	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/AUTHORS	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,2 +0,0 @@
-Fabien Regnier <fabien.regnier at sogeti.com>
-Julien Jeany <julien.jeany at sogeti.com>

Copied: trunk/gforge/plugins/projects_hierarchy/AUTHORS (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/AUTHORS)

Deleted: trunk/gforge/plugins/projects_hierarchy/COPYING
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/COPYING	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/COPYING	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,341 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program 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.
-
-    This program 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 this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-

Copied: trunk/gforge/plugins/projects_hierarchy/COPYING (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/COPYING)

Deleted: trunk/gforge/plugins/projects_hierarchy/ChangeLog
===================================================================

Copied: trunk/gforge/plugins/projects_hierarchy/ChangeLog (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/ChangeLog)

Copied: trunk/gforge/plugins/projects_hierarchy/bin (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/bin)

Copied: trunk/gforge/plugins/projects_hierarchy/common (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common)

Copied: trunk/gforge/plugins/projects_hierarchy/common/languages (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/languages)

Deleted: trunk/gforge/plugins/projects_hierarchy/common/languages/Base.tab
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/languages/Base.tab	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/common/languages/Base.tab	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,41 +0,0 @@
-#/**
-#  *
-#  * projects_hierarchy message catalog (English)
-#  *
-#  * GForge: Breaking Down the Barriers to Open Source Development
-#  * Copyright 1999-2001 (c) VA Linux Systems
-#  *                2005 (c) Daniel Pérez <danielperez.arg at gmail.com>
-#  * http://sourceforge.net
-#  * Here you can add your own language customizations
-#  *
-#  *
-#  */
-user_home	view_projects_hierarchy	View Personal projects_hierarchy
-project_admin	projects_hierarchy	View the projects_hierarchy Administration
-project_admin	link	Link Type
-project_admin	del	Delete
-project_admin	allow	Authorize
-project_admin	wait	Waiting
-project_admin	share	Share
-project_admin	navi	Navigation
-project_admin	add_link	Add a link
-project_admin	validation_wait	Father waiting for validation
-project_admin	hierarchy	Modify the hierarchy
-project_admin	save_son	Add son project
-project_admin	alert_del	Do you really want to delete this link ?
-project_admin	father	Project's parent
-project_admin	alert_allow	Do you really want to authorize this project ?
-project_admin	display_link	Link list
-project_admin	share_link	Share link
-project_admin	navi_link	Navigation link
-project_admin	com_father	Commentary of father :
-project_admin	com	Commentary :
-project_admin	choice_project	Select a project : 
-project_tree	cat	By Category
-project_tree	tree	By hierarchy
-project_tree	tree_project	Project Tree
-project_home	project_father	Parent project
-project_home	project_son	Child project
-project_home	hierarchy_title	Linked projects
-project_home	hierarchy_no	No linked project avalaible
-project_home	link	Links

Copied: trunk/gforge/plugins/projects_hierarchy/common/languages/Base.tab (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/languages/Base.tab)

Deleted: trunk/gforge/plugins/projects_hierarchy/common/languages/French.tab
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/languages/French.tab	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/common/languages/French.tab	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,41 +0,0 @@
-#/**
-#  *
-#  * projects_hierarchy message catalog (English)
-#  *
-#  * GForge: Breaking Down the Barriers to Open Source Development
-#  * Copyright 1999-2001 (c) VA Linux Systems
-#  *                2005 (c) Daniel Pérez <danielperez.arg at gmail.com>
-#  * http://sourceforge.net
-#  * Here you can add your own language customizations
-#  *
-#  *
-#  */
-user_home	view_projects_hierarchy	View Personal projects_hierarchy
-project_admin	projects_hierarchy	View the projects_hierarchy Administration
-project_admin	link	Type de lien
-project_admin	del	Supprimer
-project_admin	allow	Autoriser
-project_admin	wait	En attente
-project_admin	share	Partagé
-project_admin	navi	Navigation
-project_admin	add_link	Ajouter un lien
-project_admin	validation_wait	Père en attente de validation
-project_admin	hierarchy	Modifier la Hiérarchie
-project_admin	save_son	Ajouter un fils
-project_admin	alert_del	Etes vous sûr de vouloir supprimer le lien?
-project_admin	father	Parent du projet
-project_admin	alert_allow	Etes vous sûr de vouloir autoriser ce projet?
-project_admin	display_link	Liste des liens
-project_admin	share_link	Partage de ressources
-project_admin	navi_link	Lien de navigation
-project_admin	com_father	Commentaire du père :
-project_admin	com	Commentaire :
-project_admin	choice_project	Choix du projet :
-project_tree	cat	Par catégorie
-project_tree	tree	Par hiérarchie
-project_tree	tree_project	Arbre des projets
-project_home	project_father	Projet père
-project_home	project_son	Projet fils
-project_home	hierarchy_title	Les projets liés
-project_home	hierarchy_no	Pas de projets liés
-project_home	link	Liens

Copied: trunk/gforge/plugins/projects_hierarchy/common/languages/French.tab (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/languages/French.tab)

Deleted: trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,33 +0,0 @@
-<?php
-
-/**
- *
- * 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 USA
- */
-
-require_once ('projects_hierarchyPlugin.class') ;
-
-$projects_hierarchyPluginObject = new projects_hierarchyPlugin ;
-
-register_plugin ($projects_hierarchyPluginObject) ;
-
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
-?>

Copied: trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/projects_hierarchy-init.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,391 +0,0 @@
-<?php
-
-/**
- * projects_hierarchyPlugin Class
- *
- *
- * 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 USA
- */
-
-class projects_hierarchyPlugin extends Plugin {
-	function projects_hierarchyPlugin () {
-		$this->Plugin() ;
-		$this->name = "projects_hierarchy" ;
-		$this->text = "projects_hierarchy!" ; // To show in the tabs, use...
-		$this->hooks[] = "user_personal_links";//to make a link to the user´s personal part of the plugin
-		$this->hooks[] = "usermenu" ;
-		$this->hooks[] = "groupmenu" ;	// To put into the project tabs
-		$this->hooks[] = "groupisactivecheckbox" ; // The "use ..." checkbox in editgroupinfo
-		$this->hooks[] = "groupisactivecheckboxpost" ; //
-		$this->hooks[] = "userisactivecheckbox" ; // The "use ..." checkbox in user account
-		$this->hooks[] = "userisactivecheckboxpost" ; //
-		$this->hooks[] = "project_admin_plugins"; // to show up in the admin page fro group
-		$this->hooks[] = "admin_project_link"; // to add son to a project
-		$this->hooks[] = "project_home_link"; // to see father and sons in project home
-		$this->hooks[] = "tree"; // to see the tree of projects
-		$this->hooks[] = "delete_link"; // to delete link
-	}
-
-	function CallHook ($hookname, $params) {
-		global $use_projects_hierarchyplugin,$G_SESSION,$HTML,$Language;
-		$group_id=$params['group'];
-		if ($hookname == "usermenu") {
-			$text = $this->text; // this is what shows in the tab
-			if ($G_SESSION->usesPlugin("projects_hierarchy")) {
-				$param = '?type=user&id=' . $G_SESSION->getId() . "&pluginname=" . $this->name; // we indicate the part we´re calling is the user one
-				echo ' | ' . $HTML->PrintSubMenu (array ($text),
-						  array ('/plugins/projects_hierarchy/index.php' . $param ));				
-			}
-		} elseif ($hookname == "groupmenu") {
-			$project = &group_get_object($group_id);
-			if (!$project || !is_object($project)) {
-				return;
-			}
-			if ($project->isError()) {
-				return;
-			}
-			if (!$project->isProject()) {
-				return;
-			}
-			if ( $project->usesPlugin ( $this->name ) ) {
-				$params['TITLES'][]=$this->text;
-				$params['DIRS'][]='/plugins/projects_hierarchy/index.php?type=group&id=' . $group_id . "&pluginname=" . $this->name; // we indicate the part we´re calling is the project one
-			} else {
-				//$params['TITLES'][]=$this->text." is [Off]";
-			}	
-			(($params['toptab'] == $this->name) ? $params['selected']=(count($params['TITLES'])-1) : '' );
-		} elseif ($hookname == "groupisactivecheckbox") {
-			//Check if the group is active
-		} elseif ($hookname == "groupisactivecheckboxpost") {
-			// this code actually activates/deactivates the plugin after the form was submitted in the project edit public info page
-			$group = &group_get_object($group_id);
-			$use_projects_hierarchyplugin = getStringFromRequest('use_projects_hierarchyplugin');
-			if ( $use_projects_hierarchyplugin == 1 ) {
-				$group->setPluginUse ( $this->name );
-			} else {
-				$group->setPluginUse ( $this->name, false );
-			}
-		} elseif ($hookname == "userisactivecheckbox") {
-			//check if user is active
-			// this code creates the checkbox in the user account manteinance page to activate/deactivate the plugin
-		} elseif ($hookname == "userisactivecheckboxpost") {
-			// this code actually activates/deactivates the plugin after the form was submitted in the user account manteinance page
-			$user = $params['user'];
-			$use_projects_hierarchyplugin = getStringFromRequest('use_projects_hierarchyplugin');
-			if ( $use_projects_hierarchyplugin == 1 ) {
-				$user->setPluginUse ( $this->name );
-			} else {
-				$user->setPluginUse ( $this->name, false );
-			}
-			echo "<tr>";
-			echo "<td>";
-			echo ' <input type="CHECKBOX" name="use_projects_hierarchyplugin" value="1" ';
-			// CHECKED OR UNCHECKED?
-			if ( $user->usesPlugin ( $this->name ) ) {
-				echo "CHECKED";
-			}
-			echo ">    Use ".$this->text." Plugin";
-			echo "</td>";
-			echo "</tr>";
-		} elseif ($hookname == "user_personal_links") {
-			global $Language;
-			// this displays the link in the user´s profile page to it´s personal projects_hierarchy (if you want other sto access it, youll have to change the permissions in the index.php
-			$userid = $params['user_id'];
-			$user = user_get_object($userid);
-			$text = $params['text'];
-			//check if the user has the plugin activated
-			if ($user->usesPlugin($this->name)) {
-				echo '	<p>
-					<a href="/plugins/projects_hierarchy/index.php?id=' . $userid . '&type=user&pluginname=' . $this->name . '">' . $Language->getText('user_home','view_projects_hierarchy') .'</a></p>';
-			}
-		} elseif ($hookname == "project_admin_plugins") {
-			global $Language;
-			// this displays the link in the project admin options page to it´s  projects_hierarchy administration
-			$group_id = $params['group_id'];
-			$group = &group_get_object($group_id);
-			if ( $group->usesPlugin ( $this->name ) ) {
-				echo '<a href="/plugins/projects_hierarchy/index.php?id=' . $group->getID() . '&type=admin&pluginname=' . $this->name . '">' . $Language->getText('project_admin','projects_hierarchy') . '</a><br />';
-			}
-		}												    
-		elseif ($hookname == "tree") {
-			
-			header('Location: ../plugins/projects_hierarchy/softwaremap.php');
-			
-		} 
-		elseif ($hookname == "project_home_link") {
-			// ############################## Display link
-			$group_id = $params;
-			echo $HTML->boxTop($Language->getText('project_home','hierarchy_title'));
-			$cpt_project = 0 ;
-			// father request
-			$query = "SELECT DISTINCT group_id,unix_group_name,group_name FROM groups,plugin_projects_hierarchy WHERE plugin_projects_hierarchy.link_type ='shar' AND plugin_projects_hierarchy.activated='t' AND groups.group_id=plugin_projects_hierarchy.project_id AND plugin_projects_hierarchy.sub_project_id=".$group_id;
-			$res = db_query($query);
-			echo db_error();
-			while ($row = db_fetch_array($res)) {
-				echo "<img src=\"themes/gforge/images/ic/forum20g.png\" border=\"0\">&nbsp;".$Language->getText('project_home','project_father').": <a href=\"/projects/".$row['unix_group_name']."\">" . $row['group_name'] . "</a><br/>";
-				$cpt_project ++;
-			}
-			
-			if($cpt_project != 0){
-			print '<hr size="1" />';
-			}
-			$cpt_temp = $cpt_project ;
-			// sons request
-			$query = "SELECT DISTINCT group_id,unix_group_name,group_name,com FROM groups,plugin_projects_hierarchy WHERE plugin_projects_hierarchy.link_type ='shar' AND plugin_projects_hierarchy.activated='t' AND groups.group_id=plugin_projects_hierarchy.sub_project_id AND plugin_projects_hierarchy.project_id=".$group_id;
-			$res = db_query($query);
-			echo db_error();
-			while ($row = db_fetch_array($res)) {
-				echo "<img src=\"themes/gforge/images/ic/forum20g.png\" border=\"0\">&nbsp;".$Language->getText('project_home','project_son')." : <a href=\"/projects/".$row['unix_group_name']."\">" . $row['group_name'] . "</a> : ".$row['com']."<br/>";
-				$cpt_project ++;
-			}
-			
-			
-			if($cpt_project != $cpt_temp){
-			print '<hr size="1" />';
-			}
-			$cpt_temp = $cpt_project ;
-			
-			// links if project is father
-			$query = "SELECT DISTINCT group_id,unix_group_name,group_name,com FROM groups,plugin_projects_hierarchy WHERE plugin_projects_hierarchy.link_type ='navi' AND plugin_projects_hierarchy.activated='t' AND groups.group_id=plugin_projects_hierarchy.sub_project_id AND plugin_projects_hierarchy.project_id=".$group_id;
-			$res = db_query($query);
-			echo db_error();
-			while ($row = db_fetch_array($res)) {
-				echo "<img src=\"themes/gforge/images/ic/forum20g.png\" border=\"0\">&nbsp;".$Language->getText('project_home','link')." : <a href=\"/projects/".$row['unix_group_name']."\">" . $row['group_name'] . "</a> :  ".$row['com']."<br/>";
-				$cpt_project ++;
-			}
-			// links if project is son
-			$query = "SELECT DISTINCT group_id,unix_group_name,group_name,com FROM groups,plugin_projects_hierarchy WHERE plugin_projects_hierarchy.link_type ='navi' AND plugin_projects_hierarchy.activated='t' AND groups.group_id=plugin_projects_hierarchy.project_id AND plugin_projects_hierarchy.sub_project_id=".$group_id;
-			$res = db_query($query);
-			echo db_error();
-			while ($row = db_fetch_array($res)) {
-				echo "<img src=\"themes/gforge/images/ic/forum20g.png\" border=\"0\">&nbsp;".$Language->getText('project_home','link')." : <a href=\"/projects/".$row['unix_group_name']."\">" . $row['group_name'] . "</a><br/>";
-				$cpt_project ++;
-			}
-			
-			
-			
-			if($cpt_project != $cpt_temp){
-			print '<hr size="1" />';
-			}
-			
-			if($cpt_project == 0){
-			echo $Language->getText('project_home','hierarchy_no');	
-			print '<hr size="1" />';
-			}
-			
-			echo $HTML->boxBottom();
-			
-		}
-		elseif ($hookname == "admin_project_link") {
-			//modif pour hierarchie par Fabien le 10/10/06
-			//add files add_son.php, del_father.php,del_son.php,wait_son.php and hierarchy_utils.php
-			
-			include('../../plugins/projects_hierarchy/hierarchy_utils.php');
-			$group_id = $params ;
-			echo $HTML->boxMiddle($Language->getText('project_admin','hierarchy'));
-			echo '<form action="../../plugins/projects_hierarchy/add_son.php?group_id='.$group_id.'" method="POST" name="formson">';
-			//include('hierarchy_utils.php');
-			//select box of sons
-			echo '<table><tr>';
-			echo '<td>'.$Language->getText('project_admin','choice_project').'</td><td>'.son_box($group_id,'sub_project_id','0').'</td><td>&nbsp;</td>' ;
-			echo '</tr><tr>' ;
-			echo '<td>'.$Language->getText('project_admin','com').'</td><td> <input type="text" size="50" value="" name="com"></td>' ;
-			//echo type_son_box();
-			echo '<td><input type="submit"  name="son" value="'.$Language->getText('project_admin','save_son').'"></td></tr></table></form>';
-			echo '<br/>';
-			echo '<form action="../../plugins/projects_hierarchy/add_link.php?group_id='.$group_id.'" method="POST" name="formlink">';
-			//include('hierarchy_utils.php');
-			//select box of sons
-			echo '<table><tr>';
-			echo '<td>'.$Language->getText('project_admin','choice_project').'</td><td>'.link_box($group_id,'sub_project_id','0').'</td><td>&nbsp;</td>';
-			echo '</tr><tr>' ;
-			echo '<td>'.$Language->getText('project_admin','com').'</td><td><input type="text" size="50" value="" name="com"></td>' ;
-			echo '<td><input type="submit"  name="son" value="'.$Language->getText('project_admin','add_link').'"></td></tr></table></form>';
-			echo '<br/>';
-			//select all the sons of the current project
-			$sql_son = "SELECT group_id,group_name,unix_group_name,sub_project_id, activated,link_type,com FROM groups,plugin_projects_hierarchy WHERE " .
-					"	(	groups.group_id = plugin_projects_hierarchy.sub_project_id " .
-					"AND plugin_projects_hierarchy.project_id = ".$group_id.")" ;
-							
-			
-			$res_son=db_query($sql_son)or die(db_error());
-			if (!$res_son || db_numrows($res_son) < 1) {
-				
-			}
-			else {
-				//display of sons
-				$cpt_son = 1 ;
-				echo $Language->getText('project_admin','display_link');
-				echo '<table>';
-				$i = 0;
-				while($row_son = db_fetch_array($res_son)){
-						$i++;
-						echo '<tr>';
-						echo '<td>';
-						//link to the project
-						echo "<a href=\"../../projects/".$row_son['unix_group_name']."\">".$row_son['group_name']."</a>";
-						echo '</td>'; 
-						
-						echo '<td>';
-						if($row_son[link_type] == 'navi'){
-						echo $Language->getText('project_admin','navi_link');	
-						}
-						else {
-						echo $Language->getText('project_admin','share_link');
-						}
-						echo '</td>';
-						
-						echo '<td>';
-						if($row_son[activated] == 'f'){
-							echo $Language->getText('project_admin','wait');
-						}
-						else {
-							print "<b>".$Language->getText('project_admin','allow')."</b>";
-						}
-						echo '</td>';
-						echo "<td><a href='#' onclick='if(confirm(\"".$Language->getText('project_admin','alert_del')."\")){window.location.href=\"../../plugins/projects_hierarchy/del_son.php?group_id=".$group_id."&sub_group_id=".$row_son['sub_project_id']."\"}'}>".$Language->getText('project_admin','del')."</a></td>";
-						echo "<tr><td colspan='4'>".$Language->getText('project_admin','com')." <i>".$row_son[com]."</i>";
-						echo '</td></tr>';
-					}
-				
-			}
-			//select  navigation link by father
-			$sql_son = "SELECT group_id,group_name,unix_group_name,project_id, activated,link_type,com FROM groups,plugin_projects_hierarchy WHERE " .
-							" (	groups.group_id = plugin_projects_hierarchy.project_id " .
-					"AND plugin_projects_hierarchy.sub_project_id = ".$group_id." AND plugin_projects_hierarchy.link_type = 'navi') ";
-			
-			$res_son=db_query($sql_son)or die(db_error());
-			if (!$res_son || db_numrows($res_son) < 1) {
-				if($cpt_son == 1 ){
-				echo '</table>';
-				}
-			}
-			else {
-				//display of sons 
-				if($cpt_son != 1 ){
-				echo $Language->getText('project_admin','display_link');
-				echo '<table>';
-				}
-				
-				$i = 0;
-				while($row_son = db_fetch_array($res_son)){
-						$i++;
-						echo '<tr>';
-						echo '<td>';
-						//link to the project
-						echo "<a href=\"../../projects/".$row_son['unix_group_name']."\">".$row_son['group_name']."</a>";
-						echo '</td>'; 
-						
-						echo '<td>';
-						if($row_son[link_type] == 'navi'){
-						echo $Language->getText('project_admin','navi_link');
-						}
-						else {
-						echo $Language->getText('project_admin','share_link');	
-						}
-						echo '</td>';
-						
-						echo '<td>';
-						if($row_son[activated] == 'f'){
-						//echo $Language->getText('project_admin','wait');
-						echo "<td><a href='#' onclick='if(confirm(\"".$Language->getText('project_admin','alert_allow')."\")){window.location.href=\"../../plugins/projects_hierarchy/wait_son.php?sub_group_id=".$group_id."&group_id=".$row_son['project_id']."\"}'}>".$Language->getText('project_admin','allow')."</a></td>";
-						}
-						else {
-							print "<b>".$Language->getText('project_admin','allow')."</b>";
-						}
-						echo '</td>';
-						echo "<td><a href='#' onclick='if(confirm(\"".$Language->getText('project_admin','alert_del')."\")){window.location.href=\"../../plugins/projects_hierarchy/del_father.php?group_id=".$row_son['project_id']."&sub_group_id=".$group_id."\"}'}>".$Language->getText('project_admin','del')."</a></td>";
-						echo "<tr><td colspan='4'>".$Language->getText('project_admin','com_father')." <i>".$row_son['com']."</i></td>";
-						echo '</tr>';
-					}
-				echo '</table>';
-			}
-			
-			//research allowing father
-			$sql_father = "SELECT group_id,group_name,unix_group_name,project_id,com FROM groups,plugin_projects_hierarchy WHERE " .
-					"		groups.group_id = plugin_projects_hierarchy.project_id " .
-					"AND plugin_projects_hierarchy.sub_project_id = ".$group_id."".
-					"		AND plugin_projects_hierarchy.activated = true AND plugin_projects_hierarchy.link_type = 'shar'";
-					//print $sql_wait;
-			$res_father=db_query($sql_father)or die(db_error());
-			if (!$res_father || db_numrows($res_father) < 1) {
-				
-				}
-				else {
-					//display of the father of the current project
-					echo '<table><tr><td colspan=\"2\">';	
-					echo $Language->getText('project_admin','father');
-					echo '</td></tr>';	
-					while ($row_father = db_fetch_array($res_father)) {
-					echo '<tr>';
-					echo '<td>';
-					echo "<a href=\"../../projects/".$row_father['unix_group_name']."\">".$row_father['group_name']."</a>";
-					echo '</td><td>';
-					echo "<td><a href='#' onclick='if(confirm(\"".$Language->getText('project_admin','alert_del')."\")){window.location.href=\"../../plugins/projects_hierarchy/del_father.php?sub_group_id=".$group_id."&group_id=".$row_father['group_id']."\"}'}>".$Language->getText('project_admin','del')."</a></td>";
-					echo '</td></tr>';
-					}
-					echo '</table>';
-				}
-			
-			  
-			//research waiting fathers
-			$sql_wait = "SELECT group_id,group_name,unix_group_name,project_id,link_type,com FROM groups,plugin_projects_hierarchy WHERE " .
-					"		groups.group_id = plugin_projects_hierarchy.project_id " .
-					"AND plugin_projects_hierarchy.sub_project_id = ".$group_id."".
-					"		AND plugin_projects_hierarchy.activated = false AND plugin_projects_hierarchy.link_type = 'shar'";
-					//print $sql_wait;
-			$res_wait=db_query($sql_wait)or die(db_error());
-			if (!$res_wait || db_numrows($res_wait) < 1) {
-				
-				}
-				else { 
-					//display of waiting fathers
-					echo '<table><tr><td colspan=\"2\">';	
-					echo $Language->getText('project_admin','validation_wait');
-					echo '</td></tr>';	
-					while ($row_wait = db_fetch_array($res_wait)) {
-					echo '<tr>';
-					echo '<td>';
-					echo "<a href=\"../../projects/".$row_wait[unix_group_name]."\">".$row_wait[group_name]."</a>";
-					echo '</td>';
-					echo'<td>';
-					echo "<td><a href='#' onclick='if(confirm(\"".$Language->getText('project_admin','alert_allow')."\")){window.location.href=\"../../plugins/projects_hierarchy/wait_son.php?sub_group_id=".$group_id."&group_id=".$row_wait[group_id]."\"}'}>".$Language->getText('project_admin','allow')."</a></td>";
-					echo '</td><td>';
-					echo "<td><a href='#' onclick='if(confirm(\"".$Language->getText('project_admin','alert_del')."\")){window.location.href=\"../../plugins/projects_hierarchy/del_father.php?sub_group_id=".$group_id."&group_id=".$row_wait[group_id]."\"}'}>".$Language->getText('project_admin','del')."</a></td>";
-					echo "</td><tr><td colspan='3'>".$Language->getText('project_admin','com_father')." <i>".$row_wait[com]."</i>";
-					echo '</td></tr>';
-					}
-					echo '</table>';
-				}				
-				
-			
-		} 
-		elseif ($hookname == "delete_link") {
-			
-			$sql = "DELETE FROM plugin_projects_hierarchy WHERE project_id = ".$params." OR sub_project_id = ".$params." ";
-			$res_son=db_query($sql);
-		} 
-		
-	}
-}
-
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
-?>

Copied: trunk/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/common/projects_hierarchyPlugin.class)

Copied: trunk/gforge/plugins/projects_hierarchy/db (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/db)

Deleted: trunk/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,9 +0,0 @@
-CREATE TABLE plugin_projects_hierarchy (
-	project_id integer DEFAULT 0 NOT NULL,
-	sub_project_id integer DEFAULT 0 NOT NULL,
-	link_type char(4) DEFAULT 'navi' NOT NULL,
-	activated boolean DEFAULT false NOT NULL,
-	com char(255) NOT NULL
-	);
-
-INSERT INTO plugins (plugin_name,plugin_desc) VALUES ('hierarchy','Hierarchy GForge Plugin');
\ No newline at end of file

Copied: trunk/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/db/projects_hierarchy-init.sql)

Copied: trunk/gforge/plugins/projects_hierarchy/etc (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/etc)

Copied: trunk/gforge/plugins/projects_hierarchy/etc/plugins (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/etc/plugins)

Copied: trunk/gforge/plugins/projects_hierarchy/etc/plugins/projects_hierarchy (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/etc/plugins/projects_hierarchy)

Copied: trunk/gforge/plugins/projects_hierarchy/www (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/add_link.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/add_link.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/add_link.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,42 +0,0 @@
-<?php
-/**
- * Role Editing Page
- *
- * Copyright 2004 (c) GForge LLC
- *
- * @version   $Id: add_son.php,v 1.0 2006/10/10 15:00:00 fregnier Exp $
- * @author Fabien Regnier fabien.regnier at sogeti.com
- * @date 2006-10-10
- *
- * 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  USA
- */
-
-require_once('pre.php');
-session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-//add link between two projects
-$sql = "INSERT INTO plugin_projects_hierarchy (project_id ,sub_project_id,link_type,com) VALUES ('".$_GET['group_id']."' , '".$_POST['sub_project_id']."', 'navi','".$_POST['com']."')";
-//print "<br>".$sql;
-db_begin();
-$test = db_query($sql) or die(db_error());
-db_commit();
-
-
-?>
-<script>
-//back to the administration 
-window.location.href = "/project/admin/index.php?group_id=<?php print $_GET['group_id'] ?>";
-</script>

Copied: trunk/gforge/plugins/projects_hierarchy/www/add_link.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/add_link.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/add_son.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/add_son.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/add_son.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,42 +0,0 @@
-<?php
-/**
- * Role Editing Page
- *
- * Copyright 2004 (c) GForge LLC
- *
- * @version   $Id: add_son.php,v 1.0 2006/10/10 15:00:00 fregnier Exp $
- * @author Fabien Regnier fabien.regnier at sogeti.com
- * @date 2006-10-10
- *
- * 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  USA
- */
-
-require_once('pre.php');
-session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-//add link between two projects
-$sql = "INSERT INTO plugin_projects_hierarchy (project_id ,sub_project_id,link_type,com) VALUES ('".$_GET['group_id']."' , '".$_POST['sub_project_id']."', 'shar','".$_POST['com']."')";
-//print "<br>".$sql;
-db_begin();
-$test = db_query($sql) or die(db_error());
-db_commit();
-
-
-?>
-<script>
-//back to the administration 
-window.location.href = "/project/admin/index.php?group_id=<?php print $_GET['group_id'] ?>";
-</script>

Copied: trunk/gforge/plugins/projects_hierarchy/www/add_son.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/add_son.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/del_father.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/del_father.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/del_father.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,45 +0,0 @@
-<?php
-/**
- * Role Editing Page
- *
- * Copyright 2004 (c) GForge LLC
- *
- * @version   $Id: del_father.php,v 1.0 2006/10/10 15:00:00 fregnier Exp $
- * @author Fabien Regnier fabien.regnier at sogeti.com
- * @date 2006-10-10
- *
- * 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  USA
- */
-
-require_once('pre.php');
-session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-//plugin webcal
-$params[0] =  $_GET['sub_group_id'] ;
-$params[1] =  $_GET['group_id'] ;
-plugin_hook('del_cal_link_father',$params);
-//del link between two projects
-$sql = "DELETE FROM plugin_projects_hierarchy WHERE project_id  = '".$_GET['group_id']."' AND sub_project_id = '".$_GET['sub_group_id']."'";
-//print "<br>".$sql;
-db_begin();
-$test = db_query($sql) or die(db_error());
-db_commit();
-
-?>
-<script>
-//back to the admin's page (son)
-window.location.href = "/project/admin/index.php?group_id=<?php print $_GET['sub_group_id'] ?>";
-</script>

Copied: trunk/gforge/plugins/projects_hierarchy/www/del_father.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/del_father.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/del_son.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/del_son.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/del_son.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,45 +0,0 @@
-<?php
-/**
- * Role Editing Page
- *
- * Copyright 2004 (c) GForge LLC
- *
- * @version   $Id: del_son.php,v 1.0 2006/10/10 15:00:00 fregnier Exp $
- * @author Fabien Regnier fabien.regnier at sogeti.com
- * @date 2006-10-10
- *
- * 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  USA
- */
-
-require_once('pre.php');
-session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-//plugin webcal
-$params[0] =  $_GET['sub_group_id'] ;
-$params[1] =  $_GET['group_id'] ;
-plugin_hook('del_cal_link_father',$params);
-//del link between two projects
-$sql = "DELETE FROM plugin_projects_hierarchy WHERE project_id  = '".$_GET['group_id']."' AND sub_project_id = '".$_GET['sub_group_id']."'";
-//print "<br>".$sql;
-db_begin();
-$test = db_query($sql) or die(db_error());
-db_commit();
-
-?>
-<script>
-//back to the administration (father)
-window.location.href = "/project/admin/index.php?group_id=<?php print $_GET['group_id'] ?>";
-</script>

Copied: trunk/gforge/plugins/projects_hierarchy/www/del_son.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/del_son.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/dtree.css
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/dtree.css	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/dtree.css	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,34 +0,0 @@
-/*--------------------------------------------------|
-| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
-|---------------------------------------------------|
-| Copyright (c) 2002-2003 Geir Landrö               |
-|--------------------------------------------------*/
-
-.dtree {
-	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
-	font-size: 11px;
-	color: #666;
-	white-space: nowrap;
-}
-.dtree img {
-	border: 0px;
-	vertical-align: middle;
-}
-.dtree a {
-	color: #333;
-	text-decoration: none;
-}
-.dtree a.node, .dtree a.nodeSel {
-	white-space: nowrap;
-	padding: 1px 2px 1px 2px;
-}
-.dtree a.node:hover, .dtree a.nodeSel:hover {
-	color: #333;
-	text-decoration: underline;
-}
-.dtree a.nodeSel {
-	background-color: #c0d2ec;
-}
-.dtree .clip {
-	overflow: hidden;
-}
\ No newline at end of file

Copied: trunk/gforge/plugins/projects_hierarchy/www/dtree.css (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/dtree.css)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/dtree.js
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/dtree.js	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/dtree.js	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,693 +0,0 @@
-/*--------------------------------------------------|
-
-| dTree 2.05 | www.destroydrop.com/javascript/tree/ |
-
-|---------------------------------------------------|
-
-| Copyright (c) 2002-2003 Geir Landrö               |
-
-|                                                   |
-
-| This script can be used freely as long as all     |
-
-| copyright messages are intact.                    |
-
-|                                                   |
-
-| Updated: 17.04.2003                               |
-
-|--------------------------------------------------*/
-
-
-
-// Node object
-
-function Node(id, pid, name, url, title, target, icon, iconOpen, open) {
-
-	this.id = id;
-
-	this.pid = pid;
-
-	this.name = name;
-
-	this.url = url;
-
-	this.title = title;
-
-	this.target = target;
-
-	this.icon = icon;
-
-	this.iconOpen = iconOpen;
-
-	this._io = open || false;
-
-	this._is = false;
-
-	this._ls = false;
-
-	this._hc = false;
-
-	this._ai = 0;
-
-	this._p;
-
-};
-
-
-
-// Tree object
-
-function dTree(objName) {
-
-	this.config = {
-
-		target					: null,
-
-		folderLinks			: true,
-
-		useSelection		: true,
-
-		useCookies			: true,
-
-		useLines				: true,
-
-		useIcons				: true,
-
-		useStatusText		: false,
-
-		closeSameLevel	: false,
-
-		inOrder					: false
-
-	}
-
-	this.icon = {
-
-		root				: 'img/base.gif',
-
-		folder			: 'img/folder.gif',
-
-		folderOpen	: 'img/folderopen.gif',
-
-		node				: 'img/page.gif',
-
-		empty				: 'img/empty.gif',
-
-		line				: 'img/line.gif',
-
-		join				: 'img/join.gif',
-
-		joinBottom	: 'img/joinbottom.gif',
-
-		plus				: 'img/plus.gif',
-
-		plusBottom	: 'img/plusbottom.gif',
-
-		minus				: 'img/minus.gif',
-
-		minusBottom	: 'img/minusbottom.gif',
-
-		nlPlus			: 'img/nolines_plus.gif',
-
-		nlMinus			: 'img/nolines_minus.gif'
-
-	};
-
-	this.obj = objName;
-
-	this.aNodes = [];
-
-	this.aIndent = [];
-
-	this.root = new Node(-1);
-
-	this.selectedNode = null;
-
-	this.selectedFound = false;
-
-	this.completed = false;
-
-};
-
-
-
-// Adds a new node to the node array
-
-dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) {
-
-	this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open);
-
-};
-
-
-
-// Open/close all nodes
-
-dTree.prototype.openAll = function() {
-
-	this.oAll(true);
-
-};
-
-dTree.prototype.closeAll = function() {
-
-	this.oAll(false);
-
-};
-
-
-
-// Outputs the tree to the page
-
-dTree.prototype.toString = function() {
-
-	var str = '<div class="dtree">\n';
-
-	if (document.getElementById) {
-
-		if (this.config.useCookies) this.selectedNode = this.getSelected();
-
-		str += this.addNode(this.root);
-
-	} else str += 'Browser not supported.';
-
-	str += '</div>';
-
-	if (!this.selectedFound) this.selectedNode = null;
-
-	this.completed = true;
-
-	return str;
-
-};
-
-
-
-// Creates the tree structure
-
-dTree.prototype.addNode = function(pNode) {
-
-	var str = '';
-
-	var n=0;
-
-	if (this.config.inOrder) n = pNode._ai;
-
-	for (n; n<this.aNodes.length; n++) {
-
-		if (this.aNodes[n].pid == pNode.id) {
-
-			var cn = this.aNodes[n];
-
-			cn._p = pNode;
-
-			cn._ai = n;
-
-			this.setCS(cn);
-
-			if (!cn.target && this.config.target) cn.target = this.config.target;
-
-			if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id);
-
-			if (!this.config.folderLinks && cn._hc) cn.url = null;
-
-			if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) {
-
-					cn._is = true;
-
-					this.selectedNode = n;
-
-					this.selectedFound = true;
-
-			}
-
-			str += this.node(cn, n);
-
-			if (cn._ls) break;
-
-		}
-
-	}
-
-	return str;
-
-};
-
-
-
-// Creates the node icon, url and text
-
-dTree.prototype.node = function(node, nodeId) {
-
-	var str = '<div class="dTreeNode">' + this.indent(node, nodeId);
-
-	if (this.config.useIcons) {
-
-		if (!node.icon) node.icon = (this.root.id == node.pid) ? this.icon.root : ((node._hc) ? this.icon.folder : this.icon.node);
-
-		if (!node.iconOpen) node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node;
-
-		if (this.root.id == node.pid) {
-
-			node.icon = this.icon.root;
-
-			node.iconOpen = this.icon.root;
-
-		}
-
-		str += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />';
-
-	}
-
-	if (node.url) {
-
-		str += '<a id="s' + this.obj + nodeId + '" class="' + ((this.config.useSelection) ? ((node._is ? 'nodeSel' : 'node')) : 'node') + '" href="' + node.url + '"';
-
-		if (node.title) str += ' title="' + node.title + '"';
-
-		if (node.target) str += ' target="' + node.target + '"';
-
-		if (this.config.useStatusText) str += ' onmouseover="window.status=\'' + node.name + '\';return true;" onmouseout="window.status=\'\';return true;" ';
-
-		if (this.config.useSelection && ((node._hc && this.config.folderLinks) || !node._hc))
-
-			str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"';
-
-		str += '>';
-
-	}
-
-	else if ((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id)
-
-		str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">';
-
-	str += node.name;
-
-	if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>';
-
-	str += '</div>';
-
-	if (node._hc) {
-
-		str += '<div id="d' + this.obj + nodeId + '" class="clip" style="display:' + ((this.root.id == node.pid || node._io) ? 'block' : 'none') + ';">';
-
-		str += this.addNode(node);
-
-		str += '</div>';
-
-	}
-
-	this.aIndent.pop();
-
-	return str;
-
-};
-
-
-
-// Adds the empty and line icons
-
-dTree.prototype.indent = function(node, nodeId) {
-
-	var str = '';
-
-	if (this.root.id != node.pid) {
-
-		for (var n=0; n<this.aIndent.length; n++)
-
-			str += '<img src="' + ( (this.aIndent[n] == 1 && this.config.useLines) ? this.icon.line : this.icon.empty ) + '" alt="" />';
-
-		(node._ls) ? this.aIndent.push(0) : this.aIndent.push(1);
-
-		if (node._hc) {
-
-			str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');"><img id="j' + this.obj + nodeId + '" src="';
-
-			if (!this.config.useLines) str += (node._io) ? this.icon.nlMinus : this.icon.nlPlus;
-
-			else str += ( (node._io) ? ((node._ls && this.config.useLines) ? this.icon.minusBottom : this.icon.minus) : ((node._ls && this.config.useLines) ? this.icon.plusBottom : this.icon.plus ) );
-
-			str += '" alt="" /></a>';
-
-		} else str += '<img src="' + ( (this.config.useLines) ? ((node._ls) ? this.icon.joinBottom : this.icon.join ) : this.icon.empty) + '" alt="" />';
-
-	}
-
-	return str;
-
-};
-
-
-
-// Checks if a node has any children and if it is the last sibling
-
-dTree.prototype.setCS = function(node) {
-
-	var lastId;
-
-	for (var n=0; n<this.aNodes.length; n++) {
-
-		if (this.aNodes[n].pid == node.id) node._hc = true;
-
-		if (this.aNodes[n].pid == node.pid) lastId = this.aNodes[n].id;
-
-	}
-
-	if (lastId==node.id) node._ls = true;
-
-};
-
-
-
-// Returns the selected node
-
-dTree.prototype.getSelected = function() {
-
-	var sn = this.getCookie('cs' + this.obj);
-
-	return (sn) ? sn : null;
-
-};
-
-
-
-// Highlights the selected node
-
-dTree.prototype.s = function(id) {
-
-	if (!this.config.useSelection) return;
-
-	var cn = this.aNodes[id];
-
-	if (cn._hc && !this.config.folderLinks) return;
-
-	if (this.selectedNode != id) {
-
-		if (this.selectedNode || this.selectedNode==0) {
-
-			eOld = document.getElementById("s" + this.obj + this.selectedNode);
-
-			eOld.className = "node";
-
-		}
-
-		eNew = document.getElementById("s" + this.obj + id);
-
-		eNew.className = "nodeSel";
-
-		this.selectedNode = id;
-
-		if (this.config.useCookies) this.setCookie('cs' + this.obj, cn.id);
-
-	}
-
-};
-
-
-
-// Toggle Open or close
-
-dTree.prototype.o = function(id) {
-
-	var cn = this.aNodes[id];
-
-	this.nodeStatus(!cn._io, id, cn._ls);
-
-	cn._io = !cn._io;
-
-	if (this.config.closeSameLevel) this.closeLevel(cn);
-
-	if (this.config.useCookies) this.updateCookie();
-
-};
-
-
-
-// Open or close all nodes
-
-dTree.prototype.oAll = function(status) {
-
-	for (var n=0; n<this.aNodes.length; n++) {
-
-		if (this.aNodes[n]._hc && this.aNodes[n].pid != this.root.id) {
-
-			this.nodeStatus(status, n, this.aNodes[n]._ls)
-
-			this.aNodes[n]._io = status;
-
-		}
-
-	}
-
-	if (this.config.useCookies) this.updateCookie();
-
-};
-
-
-
-// Opens the tree to a specific node
-
-dTree.prototype.openTo = function(nId, bSelect, bFirst) {
-
-	if (!bFirst) {
-
-		for (var n=0; n<this.aNodes.length; n++) {
-
-			if (this.aNodes[n].id == nId) {
-
-				nId=n;
-
-				break;
-
-			}
-
-		}
-
-	}
-
-	var cn=this.aNodes[nId];
-
-	if (cn.pid==this.root.id || !cn._p) return;
-
-	cn._io = true;
-
-	cn._is = bSelect;
-
-	if (this.completed && cn._hc) this.nodeStatus(true, cn._ai, cn._ls);
-
-	if (this.completed && bSelect) this.s(cn._ai);
-
-	else if (bSelect) this._sn=cn._ai;
-
-	this.openTo(cn._p._ai, false, true);
-
-};
-
-
-
-// Closes all nodes on the same level as certain node
-
-dTree.prototype.closeLevel = function(node) {
-
-	for (var n=0; n<this.aNodes.length; n++) {
-
-		if (this.aNodes[n].pid == node.pid && this.aNodes[n].id != node.id && this.aNodes[n]._hc) {
-
-			this.nodeStatus(false, n, this.aNodes[n]._ls);
-
-			this.aNodes[n]._io = false;
-
-			this.closeAllChildren(this.aNodes[n]);
-
-		}
-
-	}
-
-}
-
-
-
-// Closes all children of a node
-
-dTree.prototype.closeAllChildren = function(node) {
-
-	for (var n=0; n<this.aNodes.length; n++) {
-
-		if (this.aNodes[n].pid == node.id && this.aNodes[n]._hc) {
-
-			if (this.aNodes[n]._io) this.nodeStatus(false, n, this.aNodes[n]._ls);
-
-			this.aNodes[n]._io = false;
-
-			this.closeAllChildren(this.aNodes[n]);		
-
-		}
-
-	}
-
-}
-
-
-
-// Change the status of a node(open or closed)
-
-dTree.prototype.nodeStatus = function(status, id, bottom) {
-
-	eDiv	= document.getElementById('d' + this.obj + id);
-
-	eJoin	= document.getElementById('j' + this.obj + id);
-
-	if (this.config.useIcons) {
-
-		eIcon	= document.getElementById('i' + this.obj + id);
-
-		eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon;
-
-	}
-
-	eJoin.src = (this.config.useLines)?
-
-	((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):
-
-	((status)?this.icon.nlMinus:this.icon.nlPlus);
-
-	eDiv.style.display = (status) ? 'block': 'none';
-
-};
-
-
-
-
-
-// [Cookie] Clears a cookie
-
-dTree.prototype.clearCookie = function() {
-
-	var now = new Date();
-
-	var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);
-
-	this.setCookie('co'+this.obj, 'cookieValue', yesterday);
-
-	this.setCookie('cs'+this.obj, 'cookieValue', yesterday);
-
-};
-
-
-
-// [Cookie] Sets value in a cookie
-
-dTree.prototype.setCookie = function(cookieName, cookieValue, expires, path, domain, secure) {
-
-	document.cookie =
-
-		escape(cookieName) + '=' + escape(cookieValue)
-
-		+ (expires ? '; expires=' + expires.toGMTString() : '')
-
-		+ (path ? '; path=' + path : '')
-
-		+ (domain ? '; domain=' + domain : '')
-
-		+ (secure ? '; secure' : '');
-
-};
-
-
-
-// [Cookie] Gets a value from a cookie
-
-dTree.prototype.getCookie = function(cookieName) {
-
-	var cookieValue = '';
-
-	var posName = document.cookie.indexOf(escape(cookieName) + '=');
-
-	if (posName != -1) {
-
-		var posValue = posName + (escape(cookieName) + '=').length;
-
-		var endPos = document.cookie.indexOf(';', posValue);
-
-		if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));
-
-		else cookieValue = unescape(document.cookie.substring(posValue));
-
-	}
-
-	return (cookieValue);
-
-};
-
-
-
-// [Cookie] Returns ids of open nodes as a string
-
-dTree.prototype.updateCookie = function() {
-
-	var str = '';
-
-	for (var n=0; n<this.aNodes.length; n++) {
-
-		if (this.aNodes[n]._io && this.aNodes[n].pid != this.root.id) {
-
-			if (str) str += '.';
-
-			str += this.aNodes[n].id;
-
-		}
-
-	}
-
-	this.setCookie('co' + this.obj, str);
-
-};
-
-
-
-// [Cookie] Checks if a node id is in a cookie
-
-dTree.prototype.isOpen = function(id) {
-
-	var aOpen = this.getCookie('co' + this.obj).split('.');
-
-	for (var n=0; n<aOpen.length; n++)
-
-		if (aOpen[n] == id) return true;
-
-	return false;
-
-};
-
-
-
-// If Push and pop is not implemented by the browser
-
-if (!Array.prototype.push) {
-
-	Array.prototype.push = function array_push() {
-
-		for(var i=0;i<arguments.length;i++)
-
-			this[this.length]=arguments[i];
-
-		return this.length;
-
-	}
-
-};
-
-if (!Array.prototype.pop) {
-
-	Array.prototype.pop = function array_pop() {
-
-		lastElement = this[this.length-1];
-
-		this.length = Math.max(this.length-1,0);
-
-		return lastElement;
-
-	}
-
-};
\ No newline at end of file

Copied: trunk/gforge/plugins/projects_hierarchy/www/dtree.js (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/dtree.js)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,93 +0,0 @@
-<?php
-/*
- * Copyright 2004 GForge, LLC
- *
- * @version   $Id: hierarchy_utils.php,v 1.0 2006/10/10 15:00:00 fregnier Exp $
- * @author Fabien Regnier fabien.regnier at sogeti.com
- * @date 2006-10-10
- *
- * 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  USA
- */
- 
- function son_box ($group_id,$name,$selected='xzxzxz') {
-	global $son;
-	if (!$son) {
-		
-		$family = get_family($group_id);
-		if($family != NULL){
-		
-		reset($family);
-			while (list($key, $val) = each($family)) {		
-			$cond .= " AND group_id != ".$val." ";
-			}
-			
-		}
-		$son=db_query("SELECT group_id,group_name,register_time FROM groups " .
-		"WHERE status='A' AND type_id=1 AND group_id != ".$group_id." " .$cond.
-		"AND group_id NOT IN (SELECT sub_project_id FROM plugin_projects_hierarchy WHERE link_type = 'shar')" );
-	
-	
-	}
-	return html_build_select_box($son,$name,$selected,false);
-}
-
- function link_box ($group_id,$name,$selected='xzxzxz') {
-	global $link;
-	if (!$link) {
-		$link=db_query("SELECT group_id,group_name,register_time FROM groups " .
-		"WHERE  status='A' AND type_id=1 AND group_id != ".$group_id." " .
-		"AND  group_id NOT IN (SELECT sub_project_id FROM plugin_projects_hierarchy WHERE project_id = ".$group_id." )".
-		" AND group_id NOT IN (SELECT project_id FROM plugin_projects_hierarchy WHERE sub_project_id = ".$group_id." )");
-	
-	
-	}
-	return html_build_select_box($link,$name,$selected,false);
-}
-
-
- function type_son_box () {
- 	global $Language;
-	return "<select name='link_type' onchange=\"javascript:" .
-			"if(this.value!= 0){" .
-			"document.formson.son.disabled=false" .
-			"}" .
-			"else {" .
-			"document.formson.son.disabled=true" .
-			"}\">" .
-			"\n<option value='0' selected=\"selected\" >".$Language->getText('project_admin','link')."</option>\n" .
-			"<option value='shar'>".$Language->getText('project_admin','share')."</option>\n" .
-			"<option value='navi' >".$Language->getText('project_admin','navi')."</option>\n" .
-			"</select>";
-	}
-
-//search all the family,all ancestor 
-function get_family($group_id,$family='',$cpt=0){
-	$req = "SELECT project_id FROM plugin_projects_hierarchy WHERE sub_project_id = ".$group_id." ";
-	$res=db_query($req)or die(db_error());
-	if (!$res || db_numrows($res) < 1) {
-		//return $family;
-	}
-	else {
-		$row = db_fetch_array($res);	
-		$family[$cpt] = $row['project_id'];
-		$cpt++;
-		return get_family($row['project_id'],$family,$cpt);
-	}
-	
-	return $family;
-}
-?>

Copied: trunk/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/hierarchy_utils.php)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/base.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/base.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/base.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/cd.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/cd.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/cd.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/empty.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/empty.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/empty.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/folder.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/folder.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/folder.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/folderopen.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/folderopen.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/folderopen.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/globe.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/globe.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/globe.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/imgfolder.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/imgfolder.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/imgfolder.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/join.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/join.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/join.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/joinbottom.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/joinbottom.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/joinbottom.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/line.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/line.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/line.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/minus.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/minus.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/minus.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/minusbottom.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/minusbottom.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/minusbottom.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/musicfolder.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/musicfolder.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/musicfolder.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/nolines_minus.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/nolines_minus.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/nolines_minus.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/nolines_plus.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/nolines_plus.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/nolines_plus.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/page.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/page.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/page.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/plus.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/plus.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/plus.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/plusbottom.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/plusbottom.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/plusbottom.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/question.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/question.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/question.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/img/trash.gif
===================================================================
(Binary files differ)

Copied: trunk/gforge/plugins/projects_hierarchy/www/img/trash.gif (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/img/trash.gif)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/index.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/index.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/index.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,109 +0,0 @@
-<?php
-
-/*
- * projects_hierarchy plugin
- *
- * Daniel Perez <danielperez.arg at gmail.com>
- *
- * This is an example to watch things in action. You can obviously modify things and logic as you see fit
- */
-
-require_once('pre.php');
-require_once ('plugins/projects_hierarchy/config.php');
-
-// the header that displays for the user portion of the plugin
-function projects_hierarchy_Project_Header($params) {                                                                                                                                         
-	global $DOCUMENT_ROOT,$HTML,$id,$Language;                                                                            
-	$params['toptab']='projects_hierarchy'; 
-	$params['group']=$id;
-	
-	/*                                                                                                                                                              
-		Show horizontal links                                                                                                                                   
-	*/                                                                                                                                                              
-	site_project_header($params);														
-}
-
-// the header that displays for the project portion of the plugin
-function projects_hierarchy_User_Header($params) {
-	global $DOCUMENT_ROOT,$HTML,$user_id,$Language;                                                                            
-	$params['toptab']='projects_hierarchy'; 
-	$params['user']=$user_id;
-
-	/*                                                                                                                                                              
-	 Show horizontal links                                                                                                                                   
-	 */                                                                                                                                                              
-	site_user_header($params);    
-}
-
-
-	$user = session_get_user(); // get the session user
-
-	if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
-		exit_error("Invalid User", "Cannot Process your request for this user.");
-	}
-
-	$type = getStringFromRequest('type');
-	$id = getStringFromRequest('id');
-	$pluginname = getStringFromRequest('pluginname');
-	
-	if (!$type) {
-		exit_error("Cannot Process your request","No TYPE specified"); // you can create items in Base.tab and customize this messages
-	} elseif (!$id) { 
-		exit_error("Cannot Process your request","No ID specified");
-	} else {
-		if ($type == 'group') {
-			$group = group_get_object($id);
-			if ( !$group) {
-				exit_error("Invalid Project", "Inexistent Project");
-			}
-			if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the projects_hierarchy plugin active
-				exit_error("Error", "First activate the $pluginname plugin through the Project's Admin Interface");			
-			}
-			$userperm = $group->getPermission($user);//we´ll check if the user belongs to the group (optional)
-			if ( !$userperm->IsMember()) {
-				exit_error("Access Denied", "You are not a member of this project");
-			}
-			// other perms checks here...
-			projects_hierarchy_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));    
-			// DO THE STUFF FOR THE PROJECT PART HERE
-			echo "We are in the Project projects_hierarchy plugin <br>";
-			echo "Greetings from planet " . $world; // $world comes from the config file in /etc
-		} elseif ($type == 'user') {
-			$realuser = user_get_object($id);// 
-			if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
-				exit_error("Error", "First activate the User's $pluginname plugin through Account Manteinance Page");
-			}
-			if ( (!$user) || ($user->getID() != $id)) { // if someone else tried to access the private projects_hierarchy part of this user
-				exit_error("Access Denied", "You cannot access other user's personal $pluginname");
-			}
-			projects_hierarchy_User_Header(array('title'=>'My '.$pluginname,'pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));    
-			// DO THE STUFF FOR THE USER PART HERE
-			echo "We are in the User projects_hierarchy plugin <br>";
-			echo "Greetings from planet " . $world; // $world comes from the config file in /etc
-		} elseif ($type == 'admin') {
-			$group = group_get_object($id);
-			if ( !$group) {
-				exit_error("Invalid Project", "Inexistent Project");
-			}
-			if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the projects_hierarchy plugin active
-				exit_error("Error", "First activate the $pluginname plugin through the Project's Admin Interface");			
-			}
-			$userperm = $group->getPermission($user);//we´ll check if the user belongs to the group
-			if ( !$userperm->IsMember()) {
-				exit_error("Access Denied", "You are not a member of this project");
-			}
-			//only project admin can access here
-			if ( $userperm->isAdmin() ) {
-				projects_hierarchy_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));    
-				// DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
-				echo "We are in the Project projects_hierarchy plugin <font color=\"#ff0000\">ADMINISTRATION</font> <br>";
-				echo "Greetings from planet " . $world; // $world comes from the config file in /etc
-			} else {
-				exit_error("Access Denied", "You are not a project Admin");
-			}
-		}
-	}	 
-	
-	site_project_footer(array());
-
-?>

Copied: trunk/gforge/plugins/projects_hierarchy/www/index.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/index.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/softwaremap.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/softwaremap.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/softwaremap.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,427 +0,0 @@
-<?php
-/**
-  *
-  * SourceForge Trove Software Map
-  *
-  * SourceForge: Breaking Down the Barriers to Open Source Development
-  * Copyright 1999-2001 (c) VA Linux Systems
-  * http://sourceforge.net
-  *
-  * @version   $Id: trove_list.php,v 1.2 2005/11/28 13:29:52 uid20157 Exp $
-  *
-  */
-
-session_start();
-require_once('pre.php');    
-require_once('www/include/trove.php');
-require_once('../../../www/docman/include/doc_utils.php');
-
-if (!$sys_use_trove) {
-	exit_disabled();
-}
-
-//we check if the user has already chosen the tree
-if(isset($_GET['cat'])){
-	$_SESSION['cat'] = $_GET['cat'];
-}
-
-// assign default. 18 is 'topic'
-if (!isset($form_cat) || !$form_cat) {
-	$form_cat = $default_trove_cat;
-}
-
-$form_cat = intval($form_cat);
-
-// get info about current folder
-$res_trove_cat = db_query("
-	SELECT *
-	FROM trove_cat
-	WHERE trove_cat_id='$form_cat' ORDER BY fullname");
-
-if (db_numrows($res_trove_cat) < 1) {
-	exit_error(
-		$Language->getText('trove_list','invalid_category_title'),
-		$Language->getText('trove_list','invalid_category_text').': '.db_error()
-	);
-}
-
-$HTML->header(array('title'=>$Language->getText('trove_list','title'),'pagename'=>'softwaremap'));
-
-//rajout fab a mettre dans head
-?>
-<link rel="StyleSheet" href="dtree.css" type="text/css" />
-	<script type="text/javascript" src="dtree.js"></script>
-<?php
-//fin rajout
-
-print "<b><a href=\"./softwaremap.php?cat=c\">".$Language->getText('project_tree','cat')."</a> | <a href=\"./softwaremap.php?cat=t\">".$Language->getText('project_tree','tree')."</a></b>";
-
-echo'
-	<hr />';
-
-if($_SESSION['cat'] != 't'){
-		$row_trove_cat = db_fetch_array($res_trove_cat);
-		
-		// #####################################
-		// this section limits search and requeries if there are discrim elements
-		
-		$discrim_url = '';
-		$discrim_desc = '';
-		
-		if (isset($discrim) && $discrim) {
-			unset ($discrim_queryalias);
-			unset ($discrim_queryand);
-			unset ($discrim_url_b);
-		
-			// commas are ANDs
-			$expl_discrim = explode(',',$discrim);
-		
-			// need one link for each "get out of this limit" links
-			$discrim_url = '&discrim=';
-		
-			$lims=sizeof($expl_discrim);
-			if ($lims > 6) {
-				$lims=6;
-			}
-		
-			// one per argument	
-			for ($i=0;$i<$lims;$i++) {
-				// make sure these are all ints, no url trickery
-				$expl_discrim[$i] = intval($expl_discrim[$i]);
-		
-				// need one aliased table for everything
-		//[CB]		$discrim_queryalias .= ', trove_group_link trove_group_link_'.$i.' ';
-				$discrim_queryalias .= ', trove_agg trove_agg_'.$i.' ';
-				
-				// need additional AND entries for aliased tables
-		//[CB]		$discrim_queryand .= 'AND trove_group_link_'.$i.'.trove_cat_id='
-		//[CB]			.$expl_discrim[$i].' AND trove_group_link_'.$i.'.group_id='
-		//[CB]			.'trove_group_link.group_id ';
-				$discrim_queryand .= 'AND trove_agg_'.$i.'.trove_cat_id='
-					.$expl_discrim[$i].' AND trove_agg_'.$i.'.group_id='
-					.'trove_agg.group_id ';
-		
-				// must build query string for all urls
-				if ($i==0) {
-					$discrim_url .= $expl_discrim[$i];
-				} else {
-					$discrim_url .= ','.$expl_discrim[$i];
-				}
-				// must also do this for EACH "get out of this limit" links
-				// convoluted logic to build urls for these, but works quickly
-				for ($j=0;$j<sizeof($expl_discrim);$j++) {
-					if ($i!=$j) {
-						if (!$discrim_url_b[$j]) {
-							$discrim_url_b[$j] = '&discrim='.$expl_discrim[$i];
-						} else {
-							$discrim_url_b[$j] .= ','.$expl_discrim[$i];
-						}
-					}
-				}
-		
-			}
-		
-			// build text for top of page on what viewier is seeing
-			$discrim_desc = '<span style="color:red;font-size:smaller">'.$Language->getText('trove_list','limiting_view').':
-		</span>';
-			
-			for ($i=0;$i<sizeof($expl_discrim);$i++) {
-				$discrim_desc .= '<br /> &nbsp; &nbsp; &nbsp; '
-					.trove_getfullpath($expl_discrim[$i])
-					.' <a href="softwaremap.php?form_cat='.$form_cat
-					.$discrim_url_b[$i].'">['.$Language->getText('trove_list','remove_filter').']'
-					.'</a>';
-			}
-			$discrim_desc .= "<hr />\n";
-		} 
-		
-		// #######################################
-		
-		print '<p>'. (isset($discrim_desc) ? $discrim_desc : '') . '</p>';
-		
-		// ######## two column table for key on right
-		// first print all parent cats and current cat
-		print '<table width="100%" border="0" cellspacing="0" cellpadding="0">
-		<tr valign="top"><td><span style="font-family:arial,helvetica">';
-		$folders = explode(" :: ",$row_trove_cat['fullpath']);
-		$folders_ids = explode(" :: ",$row_trove_cat['fullpath_ids']);
-		$folders_len = count($folders);
-		for ($i=0;$i<$folders_len;$i++) {
-			for ($sp=0;$sp<($i*2);$sp++) {
-				print " &nbsp; ";
-			}
-			echo html_image("ic/ofolder15.png",'15','13',array());
-			print "&nbsp; ";
-			// no anchor for current cat
-			if ($folders_ids[$i] != $form_cat) {
-				print '<a href="softwaremap.php?form_cat='
-					.$folders_ids[$i].$discrim_url.'">';
-			} else {
-				print '<strong>';
-			}
-			print $folders[$i];
-			if ($folders_ids[$i] != $form_cat) {
-				print '</a>';
-			} else {
-				print '</strong>';
-			}
-			print "<br />\n";
-		}
-		
-		// print subcategories
-		$res_sub = db_query("
-			SELECT trove_cat.trove_cat_id AS trove_cat_id,
-				trove_cat.fullname AS fullname,
-				trove_treesums.subprojects AS subprojects
-			FROM trove_cat LEFT JOIN trove_treesums USING (trove_cat_id) 
-			WHERE (
-				trove_treesums.limit_1=0 
-				OR trove_treesums.limit_1 IS NULL
-			) AND " // need no discriminators
-			."trove_cat.parent='$form_cat'
-			ORDER BY fullname
-		", -1, 0, SYS_DB_TROVE);
-		echo db_error();
-		
-		while ($row_sub = db_fetch_array($res_sub)) {
-			for ($sp=0;$sp<($folders_len*2);$sp++) {
-				print " &nbsp; ";
-			}
-			print ('<a href="softwaremap.php?form_cat='.$row_sub['trove_cat_id'].$discrim_url.'">');
-			echo html_image("ic/cfolder15.png",'15','13',array());
-			print ('&nbsp; '.$row_sub['fullname'].'</a> <em>('.
-				$Language->getText('trove_list','projects',array($row_sub['subprojects']?$row_sub['subprojects']:'0'))
-				.')</em><br />');
-				
-		}
-		// ########### right column: root level
-		print '</span></td><td><span style="font-family:arial,helvetica">';
-		// here we print list of root level categories, and use open folder for current
-		$res_rootcat = db_query("
-			SELECT trove_cat_id,fullname
-			FROM trove_cat
-			WHERE parent=0
-			AND trove_cat_id!=0
-			ORDER BY fullname");
-		echo db_error();
-		
-		print $Language->getText('trove_list','browse_by').':';
-		while ($row_rootcat = db_fetch_array($res_rootcat)) {
-			// print open folder if current, otherwise closed
-			// also make anchor if not current
-			print ('<br />');
-			if (($row_rootcat['trove_cat_id'] == $row_trove_cat['root_parent'])
-				|| ($row_rootcat['trove_cat_id'] == $row_trove_cat['trove_cat_id'])) {
-				echo html_image('ic/ofolder15.png','15','13',array());
-				print ('&nbsp; <strong>'.$row_rootcat['fullname']."</strong>\n");
-			} else {
-				print ('<a href="softwaremap.php?form_cat='
-					.$row_rootcat['trove_cat_id'].$discrim_url.'">');
-				echo html_image('ic/cfolder15.png','15','13',array());
-				print ('&nbsp; '.$row_rootcat['fullname']."\n");
-				print ('</a>');
-			}
-		}
-		print '</span></td></tr></table>';
-		?>
-		<hr />
-		<?php
-		// one listing for each project
-		
-		if(!isset($discrim_queryalias)) {
-			$discrim_queryalias = '';
-		}
-		
-		if(!isset($discrim_queryand)) {
-			$discrim_queryand = '';
-		}
-		
-		$res_grp = db_query("
-			SELECT * 
-			FROM trove_agg
-			$discrim_queryalias
-			WHERE trove_agg.trove_cat_id='$form_cat'
-			$discrim_queryand
-			ORDER BY trove_agg.trove_cat_id ASC, trove_agg.ranking ASC
-		", $TROVE_HARDQUERYLIMIT, 0, SYS_DB_TROVE);
-		echo db_error();
-		$querytotalcount = db_numrows($res_grp);
-			
-		// #################################################################
-		// limit/offset display
-		
-		// no funny stuff with get vars
-		
-		if (!isset($page) || !is_numeric($page)) {
-			$page = 1;
-		}
-		
-		// store this as a var so it can be printed later as well
-		$html_limit = '<span style="text-align:center;font-size:smaller">';
-		if ($querytotalcount == $TROVE_HARDQUERYLIMIT){
-			$html_limit .= 'More than ';
-			$html_limit .= $Language->getText('trove_list','more_than',array($querytotalcount));
-			
-			}
-		$html_limit .= $Language->getText('trove_list','number_of_projects',array($querytotalcount));
-		
-		// only display pages stuff if there is more to display
-		if ($querytotalcount > $TROVE_BROWSELIMIT) {
-			$html_limit .= ' Displaying '.$TROVE_BROWSELIMIT.' per page. Projects sorted by activity ranking.<br />';
-		
-			// display all the numbers
-			for ($i=1;$i<=ceil($querytotalcount/$TROVE_BROWSELIMIT);$i++) {
-				$html_limit .= ' ';
-				if ($page != $i) {
-					$html_limit .= '<a href="softwaremap.php?form_cat='.$form_cat;
-					$html_limit .= $discrim_url.'&page='.$i;
-					$html_limit .= '">';
-				} else $html_limit .= '<strong>';
-				$html_limit .= '&lt;'.$i.'&gt;';
-				if ($page != $i) {
-					$html_limit .= '</a>';
-				} else $html_limit .= '</strong>';
-				$html_limit .= ' ';
-			}
-		}
-		
-		$html_limit .= '</span>';
-		
-		print $html_limit."<hr />\n";
-		
-		// #################################################################
-		// print actual project listings
-		// note that the for loop starts at 1, not 0
-		for ($i_proj=1;$i_proj<=$querytotalcount;$i_proj++) { 
-			$row_grp = db_fetch_array($res_grp);
-		
-			// check to see if row is in page range
-			if (($i_proj > (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj <= ($page*$TROVE_BROWSELIMIT))) {
-				$viewthisrow = 1;
-			} else {
-				$viewthisrow = 0;
-			}	
-		
-			if ($row_grp && $viewthisrow) {
-				print '<table border="0" cellpadding="0" width="100%"><tr valign="top"><td colspan="2"><span style="font-family:arial,helvetica">';
-				print "$i_proj. <a href=\"/projects/". strtolower($row_grp['unix_group_name']) ."/\"><strong>"
-					.htmlspecialchars($row_grp['group_name'])."</strong></a> ";
-				if ($row_grp['short_description']) {
-					print "- " . htmlspecialchars($row_grp['short_description']);
-				}
-		
-				print '<br />&nbsp;';
-				// extra description
-				print '</span></td></tr><tr valign="top"><td><span style="font-family:arial,helvetica">';
-				// list all trove categories
-				print trove_getcatlisting($row_grp['group_id'],1,0);
-		
-				print '</span></td>'."\n".'<td align="right"><span style="font-family:arial,helvetica">'; // now the right side of the display
-				print 'Activity Percentile: <strong>'. number_format($row_grp['percentile'],2) .'</strong>';
-				print '<br />Activity Ranking: <strong>'. number_format($row_grp['ranking'],2) .'</strong>';
-				print '<br />Register Date: <strong>'.date($sys_datefmt,$row_grp['register_time']).'</strong>';
-				print '</span></td></tr>';
-		/*
-		                if ($row_grp['jobs_count']) {
-		                	print '<tr><td colspan="2" align="center">'
-		                              .'<a href="/people/?group_id='.$row_grp['group_id'].'">[This project needs help]</a></td></td>';
-		                }
-		*/
-		                print '</table>';
-				print '<hr />';
-			} // end if for row and range chacking
-		}
-		
-		// print bottom navigation if there are more projects to display
-		if ($querytotalcount > $TROVE_BROWSELIMIT) {
-			print $html_limit;
-		}
-		
-		
-		// print '<p><FONT size="-1">This listing was produced by the following query: '
-		//	.$query_projlist.'</FONT>';
-}
-else {
-		function build_tree() {
-			global $project_name ;
-			$query = "select p1.group_id as father_id,p1.unix_group_name as father_unix_name,p1.group_name as father_name,p2.group_id as son_id,p2.unix_group_name as son_unix_name,p2.group_name as son_name from groups as p1,groups as p2,plugin_projects_hierarchy where p1.group_id=plugin_projects_hierarchy.project_id and p2.group_id=plugin_projects_hierarchy.sub_project_id and plugin_projects_hierarchy.activated='t' AND plugin_projects_hierarchy.link_type='shar'";
-			$res = db_query($query);
-			echo db_error();
-			// construction du tableau associatif
-			// key = name of the father
-			// value = list of sons
-			while ($row = db_fetch_array($res)) {
-				//$tree[$row['father_name']][] = $row['son_name'];
-				$tree[$row['father_id']][] = $row['son_id'];
-				//get the unix name of the project 
-				$project_name[$row['father_id']][0] = $row['father_name'];
-				$project_name[$row['son_id']][0] = $row['son_name'];
-				$project_name[$row['father_id']][1] = $row['father_unix_name'];
-				$project_name[$row['son_id']][1] = $row['son_unix_name'];
-			}
-			return $tree;
-		}
-		
-		function aff_tree($tree, $lvl) {
-			global $project_name ;
-			global $Language ;
-			
-			echo "<br/>";
-			$arbre = "" ;
-			$cpt_pere = 0 ;
-			
-			while (list($key, $sons) = each($tree)) {
-				//echo $key . "<br/>";
-				//we build a array with id of father and son.
-				//If no father --> 0
-				if(!$arbre[$key] != 0){ 
-				$arbre[$key] = 0 ;
-				}
-				$cpt_pere = $key;
-				foreach ($sons as $son) {
-					//echo "&nbsp;" . $son . "<br/>";
-					$arbre[$son] = $cpt_pere; 
-				}
-				
-			}
-			
-			echo '<table ><tr><td>';
-			
-			?>
-			<script type="text/javascript">
-				<!--
-			//add files dtress.css, dtree.js et du dossier img
-				d = new dTree('d');	
-				d.add(0,-1,'<?php echo $Language->getText('project_tree','tree_project');?>');
-				<?
-				reset($arbre);
-				//construction automatique de l'arbre format : (num_fils, num_pere,nom,nom_unix)
-				while (list($key2, $sons2) = each($arbre)) {
-				print "d.add(".$key2.",".$sons2.",'".$project_name[$key2][0]."','/projects/".$project_name[$key2][1]."');\n";
-				}
-				?>
-		
-				document.write(d);
-		
-				
-			</script>
-			<?php
-			echo '</td></tr></table>';
-		}
-		
-		/*function aff_node($node, $lvl) {
-			for ($i = 0; $i < $lvl; ++$i) {
-				echo "&nbsp;";
-			}
-			echo $node . "<br/>";
-		}*/
-		
-		$tree = build_tree();
-		aff_tree($tree, 0);
-
-}
-docman_display_documents($nested_groups,$df,$is_editor);
-
-$HTML->footer(array());
-
-?>

Copied: trunk/gforge/plugins/projects_hierarchy/www/softwaremap.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/softwaremap.php)

Deleted: trunk/gforge/plugins/projects_hierarchy/www/wait_son.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/wait_son.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/projects_hierarchy/www/wait_son.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,45 +0,0 @@
-<?php
-/**
- * Role Editing Page
- *
- * Copyright 2004 (c) GForge LLC
- *
- * @version   $Id: wait_son.php,v 1.0 2006/10/10 15:00:00 fregnier Exp $
- * @author Fabien Regnier fabien.regnier at sogeti.com
- * @date 2006-10-10
- *
- * 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  USA
- */
-
-require_once('pre.php');
-session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-//update the link when the son allow the father
-$sql = "UPDATE plugin_projects_hierarchy SET activated = true WHERE project_id  = '".$_GET['group_id']."' AND sub_project_id = '".$_GET['sub_group_id']."'";
-//print "<br>".$sql;
-db_begin();
-$test = db_query($sql) or die(db_error());
-db_commit();
-//plugin webcal
-$params[0] =  $_GET['sub_group_id'] ;
-$params[1] =  $_GET['group_id'] ;
-plugin_hook('add_cal_link_father',$params);
-
-?>
-<script>
-//back to the administration (son) 
-window.location.href = "/project/admin/index.php?group_id=<?php print $_GET['sub_group_id'] ?>";
-</script>

Copied: trunk/gforge/plugins/projects_hierarchy/www/wait_son.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/projects_hierarchy/www/wait_son.php)

Copied: trunk/gforge/plugins/quota_management (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management)

Deleted: trunk/gforge/plugins/quota_management/INSTALL
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/INSTALL	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/INSTALL	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,5 +0,0 @@
-edit cron
-
-0 * * * * root [ -x /usr/share/gforge/plugins/quota_management/cronjobs/quota_update.pl ] && /usr/share/gforge/plugins/quota_management/cronjobs/quota_update.pl > /dev/null 2>&1
-
-

Copied: trunk/gforge/plugins/quota_management/INSTALL (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/INSTALL)

Copied: trunk/gforge/plugins/quota_management/bin (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/bin)

Copied: trunk/gforge/plugins/quota_management/common (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/common)

Copied: trunk/gforge/plugins/quota_management/common/languages (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/common/languages)

Deleted: trunk/gforge/plugins/quota_management/common/languages/Base.tab
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/common/languages/Base.tab	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/common/languages/Base.tab	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,65 +0,0 @@
-#/**
-#  *
-#  * quota_management message catalog (English)
-#  *
-#  * GForge: Breaking Down the Barriers to Open Source Development
-#  * Copyright 1999-2001 (c) VA Linux Systems
-#  *                2005 (c) Daniel Pérez <danielperez.arg at gmail.com>
-#  * http://sourceforge.net
-#  * Here you can add your own language customizations
-#  *
-#  *
-#  */
-user_home	view_quota_management	View Personal quota_management
-project_admin	quota_management	View the quota_management Administration
-admin_quotas	quotas_title	Ressources usage and quota
-admin_quotas	quotas_admin_title	Quota Manager Admin
-admin_quotas	projects_space_label	Projects ressources use
-admin_quotas	projects_space_modif	Projects disk quota
-admin_quotas	users_space_label	Users disk use
-admin_quotas	id	id
-admin_quotas	mbytes	Mb
-admin_quotas	name	name
-admin_quotas	database	database
-admin_quotas	disk	disk
-admin_quotas	project	project
-admin_quotas	project_expl	Ftp, Home
-admin_quotas	disk_scm	scm
-admin_quotas	disk_scm_expl	Cvs, Svn
-admin_quotas	disk_other	others
-admin_quotas	disk_other_expl	Download - without quota control
-admin_quotas	total	total
-admin_quotas	quota_hard_name	disk quota hard
-admin_quotas	quota_soft_name	disk quota soft
-admin_quotas	modify_button	Modify
-admin_quotas	quota_val_invalid	Input error : Hard quota must be greater than soft quota
-admin_quotas	quota_val_update_success	Successfully updated quota
-project_admin_utils	quotas	Quota
-project_admin_quotas	title	Project quota manager
-project_admin_quotas	documents_title	Documents
-project_admin_quotas	search_engine_title	Documents search engine
-project_admin_quotas	news_title	News
-project_admin_quotas	forums_title	Forums
-project_admin_quotas	table_head_name	quota type
-project_admin_quotas	table_head_nb	quantity
-project_admin_quotas	table_head_size	size
-project_admin_quotas	table_quota_size	quota
-project_admin_quotas	size_metric	Mb
-project_admin_quotas	total_label	Total
-project_admin_quotas	upload_title	Download project directory
-project_admin_quotas	home_title	Home project directory
-project_admin_quotas	ftp_title	Ftp project directory
-project_admin_quotas	cvs_title	CVS project directory
-project_admin_quotas	svn_title	Subversion project directory
-project_admin_quotas	database_space_label	Database
-project_admin_quotas	disk_space_label	Disk space
-project_admin_quotas	quota_space_label	Quota disk management
-project_admin_quotas	quota_settings_label	Quota settings
-project_admin_quotas	quota_soft_label	Quota soft
-project_admin_quotas	quota_hard_label	Quota hard
-project_admin_quotas	quota_group1_label	Home, Ftp
-project_admin_quotas	quota_groupscm_label	Cvs, Svn
-project_admin_quotas	quota_exceed	Quota exceeded
-project_admin_quotas	with_ftp_home	With ftp and home quota control
-project_admin_quotas	with_scm	With cvs and svn quota control
-project_admin_quotas	without	Without quota control

Copied: trunk/gforge/plugins/quota_management/common/languages/Base.tab (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/common/languages/Base.tab)

Deleted: trunk/gforge/plugins/quota_management/common/quota_management-init.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/common/quota_management-init.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/common/quota_management-init.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,33 +0,0 @@
-<?php
-
-/**
- *
- * 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 USA
- */
-
-require_once ('quota_managementPlugin.class') ;
-
-$quota_managementPluginObject = new quota_managementPlugin ;
-
-register_plugin ($quota_managementPluginObject) ;
-
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
-?>

Copied: trunk/gforge/plugins/quota_management/common/quota_management-init.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/common/quota_management-init.php)

Deleted: trunk/gforge/plugins/quota_management/common/quota_managementPlugin.class
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/common/quota_managementPlugin.class	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/common/quota_managementPlugin.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,160 +0,0 @@
-<?php
-
-/**
- * quota_managementPlugin Class
- *
- *
- * 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 USA
- */
-
-class quota_managementPlugin extends Plugin {
-	function quota_managementPlugin () {
-		$this->Plugin() ;
-		$this->name = "quota_management" ;
-		$this->text = "quota_management!" ; // To show in the tabs, use...
-		$this->hooks[] = "user_personal_links";//to make a link to the user´s personal part of the plugin
-		$this->hooks[] = "usermenu" ;
-		$this->hooks[] = "groupmenu" ;	// To put into the project tabs
-		$this->hooks[] = "groupisactivecheckbox" ; // The "use ..." checkbox in editgroupinfo
-		$this->hooks[] = "groupisactivecheckboxpost" ; //
-		$this->hooks[] = "userisactivecheckbox" ; // The "use ..." checkbox in user account
-		$this->hooks[] = "userisactivecheckboxpost" ; //
-		$this->hooks[] = "project_admin_plugins"; // to show up in the admin page fro group
-		$this->hooks[] = "quota_admin_tab"; // to show in admin
-		$this->hooks[] = "quota_label_project_admin"; // to show in admin project
-		$this->hooks[] = "quota_link_project_admin"; // to show in admin project
-	}
-
-	function CallHook ($hookname, $params) {
-		global $use_quota_managementplugin,$G_SESSION,$HTML,$Language;
-		$group_id=$params['group'];
-		if ($hookname == "usermenu") {
-			$text = $this->text; // this is what shows in the tab
-			if ($G_SESSION->usesPlugin("quota_management")) {
-				$param = '?type=user&id=' . $G_SESSION->getId() . "&pluginname=" . $this->name; // we indicate the part we´re calling is the user one
-				echo ' | ' . $HTML->PrintSubMenu (array ($text),
-						  array ('/plugins/quota_management/index.php' . $param ));				
-			}
-		} elseif ($hookname == "groupmenu") {
-			$project = &group_get_object($group_id);
-			if (!$project || !is_object($project)) {
-				return;
-			}
-			if ($project->isError()) {
-				return;
-			}
-			if (!$project->isProject()) {
-				return;
-			}
-			if ( $project->usesPlugin ( $this->name ) ) {
-				$params['TITLES'][]=$this->text;
-				$params['DIRS'][]='/plugins/quota_management/index.php?type=group&id=' . $group_id . "&pluginname=" . $this->name; // we indicate the part we´re calling is the project one
-			} else {
-			//	$params['TITLES'][]=$this->text." is [Off]";
-			}	
-			(($params['toptab'] == $this->name) ? $params['selected']=(count($params['TITLES'])-1) : '' );
-		} elseif ($hookname == "groupisactivecheckbox") {
-			//Check if the group is active
-		} elseif ($hookname == "groupisactivecheckboxpost") {
-			// this code actually activates/deactivates the plugin after the form was submitted in the project edit public info page
-			$group = &group_get_object($group_id);
-			$use_quota_managementplugin = getStringFromRequest('use_quota_managementplugin');
-			if ( $use_quota_managementplugin == 1 ) {
-				$group->setPluginUse ( $this->name );
-			} else {
-				$group->setPluginUse ( $this->name, false );
-			}
-		} elseif ($hookname == "userisactivecheckbox") {
-			//check if user is active
-			// this code creates the checkbox in the user account manteinance page to activate/deactivate the plugin
-			$user = $params['user'];
-			echo "<tr>";
-			echo "<td>";
-			echo ' <input type="CHECKBOX" name="use_quota_managementplugin" value="1" ';
-			// CHECKED OR UNCHECKED?
-			if ( $user->usesPlugin ( $this->name ) ) {
-				echo "CHECKED";
- 			}
-			echo ">    Use ".$this->text." Plugin";
-			echo "</td>";
-			echo "</tr>";
-		} elseif ($hookname == "userisactivecheckboxpost") {
-			// this code actually activates/deactivates the plugin after the form was submitted in the user account manteinance page
-			$user = $params['user'];
-			$use_quota_managementplugin = getStringFromRequest('use_quota_managementplugin');
-			if ( $use_quota_managementplugin == 1 ) {
-				$user->setPluginUse ( $this->name );
-			} else {
-				$user->setPluginUse ( $this->name, false );
-			}
-			echo "<tr>";
-			echo "<td>";
-			echo ' <input type="CHECKBOX" name="use_quota_managementplugin" value="1" ';
-			// CHECKED OR UNCHECKED?
-			if ( $user->usesPlugin ( $this->name ) ) {
-				echo "CHECKED";
-			}
-			echo ">    Use ".$this->text." Plugin";
-			echo "</td>";
-			echo "</tr>";
-		} elseif ($hookname == "user_personal_links") {
-			global $Language;
-			// this displays the link in the user´s profile page to it´s personal quota_management (if you want other sto access it, youll have to change the permissions in the index.php
-			$userid = $params['user_id'];
-			$user = user_get_object($userid);
-			$text = $params['text'];
-			//check if the user has the plugin activated
-			if ($user->usesPlugin($this->name)) {
-				echo '	<p>
-					<a href="/plugins/quota_management/index.php?id=' . $userid . '&type=user&pluginname=' . $this->name . '">' . $Language->getText('user_home','view_quota_management') .'</a></p>';
-			}
-		} elseif ($hookname == "project_admin_plugins") {
-			global $Language;
-			// this displays the link in the project admin options page to it´s  quota_management administration
-			$group_id = $params['group_id'];
-			$group = &group_get_object($group_id);
-			if ( $group->usesPlugin ( $this->name ) ) {
-				echo '<a href="/plugins/quota_management/index.php?id=' . $group->getID() . '&type=admin&pluginname=' . $this->name . '">' . $Language->getText('project_admin','quota_management') . '</a><br />';
-			}
-		}												    
-		elseif ($hookname == "blahblahblah") {
-			// ...
-		} 
-		elseif ($hookname == "quota_admin_tab") {
-			// www/admin/index.php line 167
-			// ...
-			?>
-			 <li><a href="/plugins/quota_management/quota.php"><?php echo $Language->getText('admin_quotas','quotas_title'); ?></a></li>
-			<?php
-		} 
-		elseif ($hookname == "quota_label_project_admin") {
-			// www/project/admin/project_admin_utils.php line 80
-			$labels[] = $Language->getText('project_admin_utils','quotas');
-		} 
-		elseif ($hookname == "quota_link_project_admin") {
-			// www/project/admin/project_admin_utils.php line 99
-			 $links[] = '/plugins/quota_management/quota.php?group_id='.$group_id;
-		}
-	}
-}
-
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
-?>

Copied: trunk/gforge/plugins/quota_management/common/quota_managementPlugin.class (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/common/quota_managementPlugin.class)

Copied: trunk/gforge/plugins/quota_management/cronjobs (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/cronjobs)

Deleted: trunk/gforge/plugins/quota_management/cronjobs/quota_update.pl
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/cronjobs/quota_update.pl	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/cronjobs/quota_update.pl	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,64 +0,0 @@
-#!/usr/bin/perl
-#
-# **
-# * Quota management support.
-# *
-# * Copyright 2005 (c) Sogeti-Transiciel Technologies
-# *
-# * @author Olivier Fourdan ofourdan at mail.transiciel.com
-# * @date 2005-11-21
-# *
-# * This file is released under the GNU GPL license.
-# *
-# **
-
-use DBI;
-use Quota;
-
-require("/usr/lib/gforge/lib/include.pl");
-
-my $BLOCK_SIZE=$ENV{'BLOCK_SIZE'} || 1024;
-
-sub set_quota
-{
-    my ($gid, $group_name, $quota_soft, $quota_hard) = @_;
-    my $dev = Quota::getqcarg ($grpdir_prefix);
-    my ($bc,$bs,$bh,$bt, $ic,$is,$ih,$it) = Quota::query ($dev, $gid, 1);
-
-    print  "Setting Quota for group \"$group_name\" ($gid) on device \"$dev\":\n";
-    printf "  - Current usage is %i blocks (%.2f Mb).\n", $bc, $bc / $BLOCK_SIZE;
-    print  "  - Current limits: $bs blocks soft, $bh blocks hard.\n";
-    Quota::setqlim ($dev, $gid, $quota_soft, $quota_hard, 0, 0, 0, 1);
-    Quota::sync ($dev);
-    ($bc,$bs,$bh,$bt, $ic,$is,$ih,$it) = Quota::query ($dev, $gid, 1);
-    print  "  - New limits: $bs blocks soft, $bh blocks hard.\n";
-}
-
-sub update_quota
-{
-    $sql = "SELECT unix_group_name, quota_soft, quota_hard FROM groups";
-    $res = $dbh->prepare($sql);
-    $res->execute();
-
-    while ( my ($group, $quota_soft, $quota_hard) = $res->fetchrow())
-    {
-        my $scm_group = "scm_" . $group ;
-        my $gid = getgrnam($group);
-        if ($gid)
-        {
-            &set_quota ($gid, $group, $quota_soft, $quota_hard);
-        }
-
-        # Also set limits for the scm group, as it's a different one....
-        $gid = getgrnam($scm_group);
-        if ($gid)
-        {
-            &set_quota ($gid, $scm_group, $quota_soft, $quota_hard);
-        }
-
-    }
-}
-
-### Main ###
-&db_connect;
-&update_quota;
\ No newline at end of file

Copied: trunk/gforge/plugins/quota_management/cronjobs/quota_update.pl (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/cronjobs/quota_update.pl)

Copied: trunk/gforge/plugins/quota_management/db (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/db)

Deleted: trunk/gforge/plugins/quota_management/db/quota_management-init.sql
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/db/quota_management-init.sql	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/db/quota_management-init.sql	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,17 +0,0 @@
--- **
--- * Quota management support.
--- *
--- * Copyright 2005 (c) Sogeti-Transiciel Technologies
--- *
--- * @author Olivier Fourdan ofourdan at mail.transiciel.com
--- * @date 2005-11-15
--- *
--- * This file is released under the GNU GPL license.
--- *
--- **
-ALTER TABLE groups ADD COLUMN quota_soft int;
-ALTER TABLE groups ALTER COLUMN quota_soft SET DEFAULT 0;
-ALTER TABLE groups ADD COLUMN quota_hard int;
-ALTER TABLE groups ALTER COLUMN quota_hard SET DEFAULT 0;
-UPDATE groups SET quota_soft=0;
-UPDATE groups SET quota_hard=0;
\ No newline at end of file

Copied: trunk/gforge/plugins/quota_management/db/quota_management-init.sql (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/db/quota_management-init.sql)

Copied: trunk/gforge/plugins/quota_management/etc (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/etc)

Copied: trunk/gforge/plugins/quota_management/etc/plugins (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/etc/plugins)

Copied: trunk/gforge/plugins/quota_management/etc/plugins/quota_management (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/etc/plugins/quota_management)

Copied: trunk/gforge/plugins/quota_management/www (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/www)

Deleted: trunk/gforge/plugins/quota_management/www/index.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/www/index.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/www/index.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,107 +0,0 @@
-<?php
-
-/*
- * quota_management plugin
- *
- * Daniel Perez <danielperez.arg at gmail.com>
- *
- * This is an example to watch things in action. You can obviously modify things and logic as you see fit
- */
-
-require_once('pre.php');
-require_once ('plugins/quota_management/config.php');
-
-// the header that displays for the user portion of the plugin
-function quota_management_Project_Header($params) {                                                                                                                                         
-	global $DOCUMENT_ROOT,$HTML,$id,$Language;                                                                            
-	$params['toptab']='quota_management'; 
-	$params['group']=$id;
-	/*                                                                                                                                                              
-		Show horizontal links                                                                                                                                   
-	*/                                                                                                                                                              
-	site_project_header($params);														
-}
-
-// the header that displays for the project portion of the plugin
-function quota_management_User_Header($params) {
-	global $DOCUMENT_ROOT,$HTML,$user_id,$Language;                                                                            
-	$params['toptab']='quota_management'; 
-	$params['user']=$user_id;
-	/*                                                                                                                                                              
-	 Show horizontal links                                                                                                                                   
-	 */                                                                                                                                                              
-	site_user_header($params);    
-}
-
-
-	$user = session_get_user(); // get the session user
-
-	if (!$user || !is_object($user) || $user->isError() || !$user->isActive()) {
-		exit_error("Invalid User", "Cannot Process your request for this user.");
-	}
-
-	$type = getStringFromRequest('type');
-	$id = getStringFromRequest('id');
-	$pluginname = getStringFromRequest('pluginname');
-	
-	if (!$type) {
-		exit_error("Cannot Process your request","No TYPE specified"); // you can create items in Base.tab and customize this messages
-	} elseif (!$id) {
-		exit_error("Cannot Process your request","No ID specified");
-	} else {
-		if ($type == 'group') {
-			$group = group_get_object($id);
-			if ( !$group) {
-				exit_error("Invalid Project", "Inexistent Project");
-			}
-			if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the quota_management plugin active
-				exit_error("Error", "First activate the $pluginname plugin through the Project's Admin Interface");			
-			}
-			$userperm = $group->getPermission($user);//we´ll check if the user belongs to the group (optional)
-			if ( !$userperm->IsMember()) {
-				exit_error("Access Denied", "You are not a member of this project");
-			}
-			// other perms checks here...
-			quota_management_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));    
-			// DO THE STUFF FOR THE PROJECT PART HERE
-			echo "We are in the Project quota_management plugin <br>";
-			echo "Greetings from planet " . $world; // $world comes from the config file in /etc
-		} elseif ($type == 'user') {
-			$realuser = user_get_object($id);// 
-			if (!($realuser) || !($realuser->usesPlugin($pluginname))) {
-				exit_error("Error", "First activate the User's $pluginname plugin through Account Manteinance Page");
-			}
-			if ( (!$user) || ($user->getID() != $id)) { // if someone else tried to access the private quota_management part of this user
-				exit_error("Access Denied", "You cannot access other user's personal $pluginname");
-			}
-			quota_management_User_Header(array('title'=>'My '.$pluginname,'pagename'=>"$pluginname",'sectionvals'=>array($realuser->getUnixName())));    
-			// DO THE STUFF FOR THE USER PART HERE
-			echo "We are in the User quota_management plugin <br>";
-			echo "Greetings from planet " . $world; // $world comes from the config file in /etc
-		} elseif ($type == 'admin') {
-			$group = group_get_object($id);
-			if ( !$group) {
-				exit_error("Invalid Project", "Inexistent Project");
-			}
-			if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the quota_management plugin active
-				exit_error("Error", "First activate the $pluginname plugin through the Project's Admin Interface");			
-			}
-			$userperm = $group->getPermission($user);//we´ll check if the user belongs to the group
-			if ( !$userperm->IsMember()) {
-				exit_error("Access Denied", "You are not a member of this project");
-			}
-			//only project admin can access here
-			if ( $userperm->isAdmin() ) {
-				quota_management_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));    
-				// DO THE STUFF FOR THE PROJECT ADMINISTRATION PART HERE
-				echo "We are in the Project quota_management plugin <font color=\"#ff0000\">ADMINISTRATION</font> <br>";
-				echo "Greetings from planet " . $world; // $world comes from the config file in /etc
-			} else {
-				exit_error("Access Denied", "You are not a project Admin");
-			}
-		}
-	}	 
-	
-	site_project_footer(array());
-
-?>

Copied: trunk/gforge/plugins/quota_management/www/index.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/www/index.php)

Deleted: trunk/gforge/plugins/quota_management/www/quota.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/www/quota.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/www/quota.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,448 +0,0 @@
-<?php
-/**
- * Project Admin page to manage quotas disk and database
- *
- * 
- * Fabio Bertagnin November 2005
- *
- * @version   $Id: 08_IMPROVQUOTA_90_quota_management.dpatch,v 1.1 2006/01/11 17:02:45 fabio Exp $
- *
- * 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  USA
- */
-
-
-require_once('pre.php');
-require_once('www/admin/admin_utils.php');
-
-$_quota_block_size = 1024;
-$_quota_block_size = trim(shell_exec("echo $BLOCK_SIZE")) + 0;
-if ($_quota_block_size == 0) $_quota_block_size = 1024;
-
-site_admin_header(array('title'=>$Language->getText('admin_index','title')));
-?>
-<h4>
-	<?php echo $Language->getText('admin_quotas','quotas_title'); ?>
-	&nbsp;&nbsp;&nbsp;&nbsp;
-	<a href="quota_admin.php">Admin</a>
-</h4>
-<?php
-// stock projects infos in array
-$quotas = array();
-
-// all projects list
-$SQL = "SELECT group_id, group_name, unix_group_name, quota_soft, quota_hard FROM groups ORDER BY group_id ";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	while($e = db_fetch_array($res_db))
-	{
-		$quotas["$e[group_id]"]["group_id"] = $e["group_id"];
-		$quotas["$e[group_id]"]["name"] = $e["group_name"];
-		$quotas["$e[group_id]"]["unix_name"] = $e["unix_group_name"];
-		$quotas["$e[group_id]"]["database_size"] = 0;
-		$quotas["$e[group_id]"]["disk_size_other"] = 0;
-		$quotas["$e[group_id]"]["disk_size_1"] = 0;
-		$quotas["$e[group_id]"]["disk_size_scm"] = 0;
-		$quotas["$e[group_id]"]["quota_hard"] = $e["quota_hard"] * $_quota_block_size;
-		$quotas["$e[group_id]"]["quota_soft"] = $e["quota_soft"] * $_quota_block_size;
-	}
-}
-
-// documents database size
-$SQL = "SELECT group_id, SUM(octet_length(data)) as size, SUM(octet_length(data_words)) as size1 ";
-$SQL .= "FROM doc_data ";
-$SQL .= "GROUP BY group_id ";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	while($e = db_fetch_array($res_db))
-	{
-		$q = array();
-		print_debug("doc grp=$e[group_id] size=$e[size]");
-		$quotas["$e[group_id]"]["database_size"] += $e["size"];
-		$quotas["$e[group_id]"]["database_size"] += $e["size1"];
-	}
-}
-
-// news database size
-$SQL = "SELECT group_id, SUM(octet_length(summary) + octet_length(details)) as size \n";
-$SQL .= "FROM news_bytes \n";
-$SQL .= "GROUP BY group_id \n";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	while($e = db_fetch_array($res_db))
-	{
-		print_debug("news grp=$e[group_id] size=$e[size]");
-		$quotas["$e[group_id]"]["database_size"] += $e["size"];
-	}
-}
-
-// forums database size
-$SQL = "SELECT forum_group_list.group_id as group_id, SUM(octet_length(subject)+octet_length(body)) as size \n"; 
-$SQL .= "FROM forum \n";
-$SQL .= "INNER JOIN forum_group_list \n";
-$SQL .= "ON forum.group_forum_id = forum_group_list.group_forum_id \n";
-$SQL .= "GROUP BY group_id \n";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	while($e = db_fetch_array($res_db))
-	{
-		print_debug("forum grp=$e[group_id] size=$e[size]");
-		$quotas["$e[group_id]"]["database_size"] += convert_bytes_to_mega($e["size"]);
-	}
-}
-
-// disk space size
-$chroot_dir = $sys_chroot;
-$ftp_dir = $sys_ftp_upload_dir."/pub/";
-$upload_dir = $sys_upload_dir;
-$group_dir = $chroot_dir.$groupdir_prefix."/";
-$cvs_dir = $chroot_dir.$cvsdir_prefix."/";
-$svn_dir = $chroot_dir.$svndir_prefix."/";
-
-
-foreach ($quotas as $p)
-{
-	$group_id = $p["group_id"];
-	// upload dir disk space
-	$dir = $upload_dir .  $p["unix_name"];
-	$size = get_dir_size($dir);
-	$quotas["$group_id"]["disk_size_other"] += $size;
-	print_debug("upload=$dir size=$size");
-	// ftp dir disk space
-	$dir = $ftp_dir .  $p["unix_name"];
-	$size = get_dir_size($dir);
-	$quotas["$group_id"]["disk_size_1"] += $size;
-	print_debug("ftp=$dir size=$size");
-	// home dir disk space
-	$dir = $group_dir .  $p["unix_name"];
-	$size = get_dir_size($dir);
-	$quotas["$group_id"]["disk_size_1"] += $size;
-	print_debug("home=$dir size=$size");
-	// cvs dir disk space
-	$dir = $cvs_dir .  $p["unix_name"];
-	$size = get_dir_size($dir);
-	$quotas["$group_id"]["disk_size_scm"] += $size;
-	print_debug("cvs=$dir size=$size");
-	// svn dir disk space
-	$dir = $svn_dir .  $p["unix_name"];
-	$size = get_dir_size($dir);
-	$quotas["$group_id"]["disk_size_scm"] += $size;
-	print_debug("svn=$dir size=$size");
-}
-
-// users disk space size
-$chroot_dir = $sys_chroot;
-$ftp_dir = $chroot_dir."/home/users/";
-$users = array();
-$SQL = "SELECT user_id, user_name, realname, unix_status FROM users ORDER BY user_id ";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	while($e = db_fetch_array($res_db))
-	{
-		print_debug("users name=$e[user_name] status=$e[unix_status]");
-		if ($e["unix_status"] != "N")
-		{
-			$users["$e[user_id]"]["user_id"] = $e["user_id"];
-			$users["$e[user_id]"]["user_name"] = "$e[user_name]";
-			$users["$e[user_id]"]["realname"] = "$e[realname]";
-			$users["$e[user_id]"]["unix_status"] = "$e[unix_status]";
-			$users["$e[user_id]"]["disk_size"] = 0;
-		}
-	}
-}
-foreach ($users as $u)
-{
-	print_debug("---------------------------------------");
-	$user_id = $u["user_id"];
-	$dir = $ftp_dir .  $u["user_name"];
-	$size = get_dir_size($dir);
-	$users["$user_id"]["disk_size"] += convert_bytes_to_mega($size);
-	print_debug("$user_id user=$u[user_name] dir=$dir size=$size");
-}
-
-?>
-<table width="800px" cellpadding="2" cellspacing="0" border="0">
-	<tr style="">
-		<td style="border-top:thick solid #808080;font-weight:bold" colspan="3">
-			<?php echo $Language->getText('admin_quotas','projects_space_label'); ?>
-		</td>
-		<td style="border-top:thick solid #808080" colspan="7">
-			<span style="font-size:10px">
-				(&nbsp;
-				<?php echo $Language->getText('admin_quotas','project'); ?>* : 
-				<?php echo $Language->getText('admin_quotas','project_expl'); ?>
-				&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-				<?php echo $Language->getText('admin_quotas','disk_scm'); ?>* : 
-				<?php echo $Language->getText('admin_quotas','disk_scm_expl'); ?>
-				&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-				<?php echo $Language->getText('admin_quotas','disk_other'); ?>* : 
-				<?php echo $Language->getText('admin_quotas','disk_other_expl'); ?>
-				&nbsp;)
-			</span>
-		</td>
-	</tr>
-	<tr>
-		<td style="border-top:thin solid #808080">
-			<?php echo $Language->getText('admin_quotas','id'); ?>
-		</td>
-		<td style="border-top:thin solid #808080">
-			<?php echo $Language->getText('admin_quotas','name'); ?>
-		</td>
-		<td style="border-top:thin solid #808080"><br /></td>
-		<td style="border-top:thin solid #808080;background:#e0e0e0" align="right">
-			<?php echo $Language->getText('admin_quotas','database'); ?>
-		</td>
-		<td style="border-top:thin solid #808080;background:#e0e0e0" align="right">
-			<?php echo $Language->getText('admin_quotas','project'); ?>*
-		</td>
-		<td style="border-top:thin solid #808080;background:#e0e0e0" align="right">
-			<?php echo $Language->getText('admin_quotas','disk_scm'); ?>*
-		</td>
-		<td style="border-top:thin solid #808080;background:#e0e0e0" align="right">
-			<?php echo $Language->getText('admin_quotas','disk_other'); ?>*
-		</td>
-		<td style="border-top:thin solid #808080;background:#e0e0e0" align="right">
-			<?php echo $Language->getText('admin_quotas','total'); ?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $Language->getText('admin_quotas','quota_soft_name'); ?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $Language->getText('admin_quotas','quota_hard_name'); ?>
-		</td>
-	</tr>
-	<?php
-	$total_database = 0;
-	$total_disk = 0;
-	foreach ($quotas as $q)
-	{
-		$total_database += $q["database_size"];
-		$total_disk_1 += $q["disk_size_1"];
-		$total_disk_other += $q["disk_size_other"];
-		$total_disk_scm += $q["disk_size_scm"];
-		$total_disk += $q["disk_size_1"]+$q["disk_size_scm"]+$q["disk_size_other"];
-		$local_disk_size = $q["database_size"]+$q["disk_size_1"]+$q["disk_size_scm"]+$q["disk_size_other"];
-		$color1 = "#e0e0e0";
-		$color2 = "#ffffff";
-		$color0 = $color1;
-		$colorq = $color2;
-		if ($q["quota_soft"] > 0) 
-		{
-			$color0 = "#E5ECB1";
-			$colorq = $color0;
-		}
-		// echo "size $q[disk_size] quota $q[quota_soft] <br />";
-		if (($q["disk_size_1"] > $q["quota_soft"] || $q["disk_size_scm"] > $q["quota_soft"]) && $q["quota_soft"] > 0)
-		{
-			$color1 = "#FF9898";
-			$color2 = "#FFDCDC";
-			$color0 = $color1;
-			$colorq = $color2;
-		}
-		?>
-		<tr>
-			<td style="border-top:thin solid #808080;background:<?php echo $color2; ?>"><?php echo $q["group_id"]; ?></td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color2; ?>">
-				<a href="quota_project.php?group_id=<?php echo $q["group_id"]; ?>">
-					<?php echo $q["unix_name"]; ?>
-				</a>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color2; ?>">
-				<?php echo $q["name"]; ?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color1; ?>" align="right">
-				<?php echo add_numbers_separator(convert_bytes_to_mega($q["database_size"])); ?>
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color0; ?>" align="right">
-				<?php echo add_numbers_separator(convert_bytes_to_mega($q["disk_size_1"])); ?>
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color0; ?>" align="right">
-				<?php echo add_numbers_separator(convert_bytes_to_mega($q["disk_size_scm"])); ?>
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color1; ?>" align="right">
-				<?php echo add_numbers_separator(convert_bytes_to_mega($q["disk_size_other"])); ?>
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $color1; ?>;font-weight:bold" align="right">
-				<?php echo add_numbers_separator(convert_bytes_to_mega($local_disk_size)); ?> 
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $colorq; ?>" align="right">
-				<?php 
-					if ($q["quota_soft"] > 0)
-					{
-						echo add_numbers_separator(convert_bytes_to_mega($q["quota_soft"])); 
-						echo " ";
-						echo $Language->getText('admin_quotas','mbytes'); 
-					}
-					else
-					{
-						echo "---";
-					}
-				?>
-			</td>
-			<td style="border-top:thin solid #808080;background:<?php echo $colorq; ?>" align="right">
-				<?php 
-					if ($q["quota_hard"] > 0)
-					{
-						echo add_numbers_separator(convert_bytes_to_mega($q["quota_hard"])); 
-						echo " ";
-						echo $Language->getText('admin_quotas','mbytes'); 
-					}
-					else
-					{
-						echo "---";
-					}
-				?>
-			</td>
-		</tr>
-		<?php
-	}
-?>
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080">
-			<?php echo $Language->getText('admin_quotas','total'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($total_database)); ?>
-			<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($total_disk_1)); ?>
-			<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($total_disk_scm)); ?>
-			<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($total_disk_other)); ?>
-			<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($total_database+$total_disk_1+$total_disk_scm+$total_disk_other)); ?>
-			<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-	</tr>
-</table>
-<br />
-<br />
-<table width="700px" cellpadding="2" cellspacing="0" border="0">
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080" colspan="6">
-			<?php echo $Language->getText('admin_quotas','users_space_label'); ?>
-		</td>
-	</tr>
-	<tr>
-		<td style="border-top:thin solid #808080"><?php echo $Language->getText('admin_quotas','id'); ?></td>
-		<td style="border-top:thin solid #808080"><?php echo $Language->getText('admin_quotas','name'); ?></td>
-		<td style="border-top:thin solid #808080"><br /></td>
-		<td style="border-top:thin solid #808080"><br /></td>
-		<td style="border-top:thin solid #808080"><br /></td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $Language->getText('admin_quotas','disk'); ?>
-		</td>
-	</tr>
-	<?php
-	$total = 0;
-	foreach ($users as $u)
-	{
-		$total += $u["disk_size"];
-		?>
-		<tr>
-			<td style="border-top:thin solid #808080"><?php echo $u["user_id"]; ?></td>
-			<td style="border-top:thin solid #808080"><?php echo $u["user_name"]; ?></td>
-			<td style="border-top:thin solid #808080"><?php echo $u["realname"]; ?></td>
-			<td style="border-top:thin solid #808080"><br /></td>
-			<td style="border-top:thin solid #808080"><br /></td>
-			<td style="border-top:thin solid #808080" align="right">
-				<?php echo add_numbers_separator($u["disk_size"]); ?>
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-		</tr>
-		<?php
-	}
-?>
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080">
-			<?php echo $Language->getText('admin_quotas','total'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080" align="right">
-			<?php echo add_numbers_separator($total); ?>
-			<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-		</td>
-	</tr>
-</table>
-<?php
-
-
-print_debug(print_r($quotas, true));
-print_debug(print_r($users, true));
-
-site_admin_footer(array());
-?>
-
-<?php
-
-function convert_bytes_to_mega ($mega)
-{
-	$b = round($mega / (1024*1024), 0);
-	return $b;
-}
-
-function print_debug ($text)
-{
-//	echo "<pre>$text</pre>";
-}
-function add_numbers_separator ($val, $sep=' ')
-{
-	$size = "$val";
-	$size = strrev($size);
-	$size = wordwrap($size, 3, $sep, 1);
-	$size = strrev($size);
-	return $size;
-}
-function get_dir_size ($dir)
-{
-	$size = "";
-	$cmd = "/usr/bin/du -bs $dir";
-	$res = shell_exec ($cmd);
-	$a = explode("\t", $res);
-	if (isset($a[1])) $size = $a[0];
-	return "$size";
-}
-
-?>
-
-
-
-

Copied: trunk/gforge/plugins/quota_management/www/quota.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/www/quota.php)

Deleted: trunk/gforge/plugins/quota_management/www/quota_admin.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/www/quota_admin.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/www/quota_admin.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,194 +0,0 @@
-<?php
-/**
- * Project Admin page to manage quotas disk and database
- *
- * 
- * Fabio Bertagnin November 2005
- *
- * @version   $Id: 08_IMPROVQUOTA_90_quota_management.dpatch,v 1.1 2006/01/11 17:02:45 fabio Exp $
- *
- * 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  USA
- */
-
-
-require_once('pre.php');
-require_once('www/admin/admin_utils.php');
-
-
-$_quota_block_size = 1024;
-$_quota_block_size = trim(shell_exec("echo $BLOCK_SIZE")) + 0;
-if ($_quota_block_size == 0) $_quota_block_size = 1024;
-
-// session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-
-site_admin_header(array('title'=>$Language->getText('admin_index','title')));
-
-
-?>
-<h4>
-	<a href="quota.php"><?php echo $Language->getText('admin_quotas','quotas_title'); ?></a>
-	&nbsp;&nbsp;
-	<?php echo $Language->getText('admin_quotas','quotas_admin_title'); ?>
-</h4>
-<?php
-
-// echo "<pre>".print_r($_POST, true)."</pre>";
-
-// quota update 
-if ($_POST["cmd"] == "maj")
-{
-	$qs = $_POST["qs"] * $_quota_block_size;
-	$qh = $_POST["qh"] * $_quota_block_size;
-	if ($qs > $qh)
-	{
-		$message = utf8_encode($Language->getText('admin_quotas','quota_val_invalid'));
-		echo "<h3 style=\"color:red\">$message</h3>";
-	}
-	else
-	{
-		$SQL = "UPDATE groups SET quota_soft = $qs, quota_hard = $qh WHERE group_id = $_POST[group_id] ";
-		db_query($SQL);
-		$message = utf8_encode($Language->getText('admin_quotas','quota_val_update_success'));
-		echo "<h3 style=\"color:red\">$message</h3>";
-	}
-}
-
-
-// stock projects infos in array
-$quotas = array();
-
-// all projects list
-$SQL = "SELECT group_id, group_name, unix_group_name, quota_soft, quota_hard FROM groups ORDER BY group_id ";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	while($e = db_fetch_array($res_db))
-	{
-		$qh = $e["quota_hard"] / $_quota_block_size;
-		$qs = $e["quota_soft"] / $_quota_block_size;
-		$quotas["$e[group_id]"]["group_id"] = $e["group_id"];
-		$quotas["$e[group_id]"]["name"] = $e["group_name"];
-		$quotas["$e[group_id]"]["unix_name"] = $e["unix_group_name"];
-		$quotas["$e[group_id]"]["database_size"] = 0;
-		$quotas["$e[group_id]"]["disk_size"] = 0;
-		$quotas["$e[group_id]"]["quota_hard"] = $qh;
-		$quotas["$e[group_id]"]["quota_soft"] = $qs;
-	}
-}
-
-
-
-?>
-<table width="700px" cellpadding="2" cellspacing="0" border="0">
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080" colspan="6"><?php echo $Language->getText('admin_quotas','projects_space_modif'); ?></td>
-	</tr>
-	<tr>
-		<td style="border-top:thin solid #808080"><?php echo $Language->getText('admin_quotas','id'); ?></td>
-		<td style="border-top:thin solid #808080"><?php echo $Language->getText('admin_quotas','name'); ?></td>
-		<td style="border-top:thin solid #808080"><br /></td>
-		<td style="border-top:thin solid #808080" align="right"><?php echo $Language->getText('admin_quotas','quota_soft_name'); ?></td>
-		<td style="border-top:thin solid #808080" align="right"><?php echo $Language->getText('admin_quotas','quota_hard_name'); ?></td>
-		<td style="border-top:thin solid #808080"><br /></td>
-	</tr>
-	<?php
-	$total_database = 0;
-	$total_disk = 0;
-	foreach ($quotas as $q)
-	{
-		$total_database += $q["database_size"];
-		$total_disk += $q["disk_size"];
-		?>
-		<form action="quota_admin.php" method="POST">
-		<input type="hidden" name="cmd" value="maj" />
-		<input type="hidden" name="group_id" value="<?php echo $q["group_id"]; ?>" />
-		<tr>
-			<td style="border-top:thin solid #808080"><?php echo $q["group_id"]; ?></td>
-			<td style="border-top:thin solid #808080"><a href="/project/admin/quota.php?group_id=<?php echo $q["group_id"]; ?>">
-				<?php echo $q["unix_name"]; ?>
-			</a></td>
-			<td style="border-top:thin solid #808080"><?php echo $q["name"]; ?></td>
-			<td style="border-top:thin solid #808080" align="right">
-				<input type="text" name="qs" 
-					size="12" 
-					value="<?php echo $q["quota_soft"]; ?>" 
-					style="background:#ffffd0;text-align:right" /> 
-					<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080" align="right">
-				<input type="text" name="qh" 
-					size="12" 
-					value="<?php echo $q["quota_hard"]; ?>" 
-					style="background:#ffffd0;text-align:right" /> 
-				<?php echo $Language->getText('admin_quotas','mbytes'); ?>
-			</td>
-			<td style="border-top:thin solid #808080" align="right">
-				<input type="submit" value="<?php echo $Language->getText('admin_quotas','modify_button'); ?>" />
-			</td>
-		</tr>
-		</form>
-		<?php
-	}
-?>
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
-	</tr>
-</table>
-<br />
-<br />
-<?php
-
-
-print_debug(print_r($quotas, true));
-print_debug(print_r($users, true));
-
-site_admin_footer(array());
-?>
-
-<?php
-function print_debug ($text)
-{
-//	echo "<pre>$text</pre>";
-}
-function add_numbers_separator ($val, $sep=' ')
-{
-	$size = "$val";
-	$size = strrev($size);
-	$size = wordwrap($size, 3, $sep, 1);
-	$size = strrev($size);
-	return $size;
-}
-function get_dir_size ($dir)
-{
-	$size = "";
-	$cmd = "/usr/bin/du -bs $dir";
-	$res = shell_exec ($cmd);
-	$a = explode("\t", $res);
-	if (isset($a[1])) $size = $a[0];
-	return "$size";
-}
-
-?>
-
-
-
-

Copied: trunk/gforge/plugins/quota_management/www/quota_admin.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/www/quota_admin.php)

Deleted: trunk/gforge/plugins/quota_management/www/quota_project.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/quota_management/www/quota_project.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/quota_management/www/quota_project.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,407 +0,0 @@
-<?php
-/**
- * Project Admin page to manage quotas project
- *
- * Portions Copyright 1999-2001 (c) VA Linux Systems
- * The rest Copyright 2002-2004 (c) GForge Team
- * http://gforge.org/
- *
- * @version   $Id: 08_IMPROVQUOTA_90_quota_management.dpatch,v 1.1 2006/01/11 17:02:45 fabio Exp $
- *
- * 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  USA
- */
-
-
-require_once('pre.php');
-require_once('www/project/admin/project_admin_utils.php');
-
-if (!$sys_use_project_vhost) {
-	exit_disabled();
-}
-
-session_require(array('group'=>$group_id,'admin_flags'=>'A'));
-
-$group = &group_get_object($group_id);
-
-if (!$group || !is_object($group)) {
-        exit_error('Error','Error creating group object');
-} else if ($group->isError()) {
-        exit_error('ERROR',$group->getErrorMessage());
-}
-
-
-project_admin_header(array('title'=>$Language->getText('project_admin_quotas','title'),'group'=>$group->getID(),'pagename'=>'project_admin_quotas','sectionvals'=>array(group_getname($group_id))));
-?>
-
-<h4><?php echo $Language->getText('project_admin_quotas','title'); ?></h4>
-
-<?php
-$quotas = array();
-$SQL = "SELECT SUM(octet_length(data)) as size, SUM(octet_length(data_words)) as size1, count(*) as nb ";
-$SQL .= "FROM doc_data ";
-$SQL .= "WHERE group_id = '$group_id' ";
-$res_db = db_query($SQL);
-$q = array();
-$q["name"] = $Language->getText('project_admin_quotas','documents_title');
-$q["nb"] = 0; $q["size"] = 0;
-$q1 = array();
-$q1["name"] = $Language->getText('project_admin_quotas','search_engine_title');
-$q["size"] = 0;
-if (db_numrows($res_db) > 0) 
-{
-	$e = db_fetch_array($res_db);
-	$q["nb"] = $e["nb"];
-	$q["size"] = $e["size"];
-	// $q1["nb"] = $e["nb"];
-	$q1["size"] = $e["size1"];
-}
-$quotas[0] = $q;
-$quotas[1] = $q1;
-
-$SQL = "SELECT SUM(octet_length(summary) + octet_length(details)) as size, count(*) as nb FROM news_bytes WHERE group_id = '$group_id' ";
-$res_db = db_query($SQL);
-$q = array();
-$q["name"] = $Language->getText('project_admin_quotas','news_title');
-$q["nb"] = 0; $q["size"] = 0;
-if (db_numrows($res_db) > 0) 
-{
-	$e = db_fetch_array($res_db);
-	$q["nb"] = $e["nb"];
-	$q["size"] = $e["size"];
-}
-$quotas[2] = $q;
-
-
-$SQL = "SELECT SUM(octet_length(subject)+octet_length(body)) as size, count(*) as nb FROM forum INNER JOIN forum_group_list ";
-$SQL .= "ON forum.group_forum_id = forum_group_list.group_forum_id WHERE group_id = '$group_id' ";
-$res_db = db_query($SQL);
-$q = array();
-$q["name"] = $Language->getText('project_admin_quotas','forums_title');
-$q["nb"] = 0; $q["size"] = 0;
-if (db_numrows($res_db) > 0) 
-{
-	$e = db_fetch_array($res_db);
-	$q["nb"] = $e["nb"];
-	$q["size"] = $e["size"];
-}
-$quotas[3] = $q;
-
-$quotas_disk = array();
-
-// espace disque
-// disk_total_space
-$_quota_block_size = 1024;
-$_quota_block_size = trim(shell_exec("echo $BLOCK_SIZE")) + 0;
-if ($_quota_block_size == 0) $_quota_block_size = 1024;
-$quota_soft = "";
-$quota_hard = "";
-$SQL = "SELECT quota_soft, quota_hard FROM groups WHERE group_id = $group_id";
-$res_db = db_query($SQL);
-if (db_numrows($res_db) > 0) 
-{
-	$e = db_fetch_array($res_db);
-	$quota_hard = $e["quota_hard"];
-	$quota_soft = $e["quota_soft"];
-	$quota_hard = round(($_quota_block_size * $quota_hard) / (1024*1024), 0);
-	$quota_soft = round(($_quota_block_size * $quota_soft) / (1024*1024), 0);
-}
-
-$quota_tot_other = 0;
-$quota_tot_1 = 0;
-$quota_tot_scm = 0;
-
-$upload_dir = $sys_upload_dir .  $group->getUnixName();
-$chroot_dir = $sys_chroot;
-$ftp_dir = $sys_ftp_upload_dir."/pub/".$group->getUnixName();
-$group_dir = $chroot_dir.$groupdir_prefix . "/" . $group->getUnixName();
-$cvs_dir = $chroot_dir.$cvsdir_prefix . "/" . $group->getUnixName();
-$svn_dir = $chroot_dir.$svndir_prefix . "/" . $group->getUnixName();
-
-$q["name"] = $Language->getText('project_admin_quotas','upload_title');
-$q["path"] = "$upload_dir";
-$q["quota_label"] = $Language->getText('project_admin_quotas','without');
-$q["size"] = get_dir_size ("$upload_dir");
-$quota_tot_other += $q["size"];
-$quotas_disk[] = $q;
-
-$q["name"] = $Language->getText('project_admin_quotas','home_title');
-$q["path"] = "$group_dir"; $q["size"] = get_dir_size ("$group_dir");
-$q["quota_label"] = $Language->getText('project_admin_quotas','with_ftp_home');
-$quota_tot_1 += $q["size"];
-$quotas_disk[] = $q;
-
-$q["name"] = $Language->getText('project_admin_quotas','ftp_title');
-$q["path"] = "$ftp_dir"; $q["size"] = get_dir_size ("$ftp_dir");
-$q["quota_label"] = $Language->getText('project_admin_quotas','with_ftp_home');
-$quota_tot_1 += $q["size"];
-$quotas_disk[] = $q;
-
-$q["name"] = $Language->getText('project_admin_quotas','cvs_title');
-$q["path"] = "$cvs_dir"; $q["size"] = get_dir_size ("$cvs_dir");
-$q["quota_label"] = $Language->getText('project_admin_quotas','with_scm');
-$quota_tot_scm += $q["size"];
-$quotas_disk[] = $q;
-
-$q["name"] = $Language->getText('project_admin_quotas','svn_title');
-$q["path"] = "$svn_dir"; $q["size"] = get_dir_size ("$svn_dir");
-$q["quota_label"] = $Language->getText('project_admin_quotas','with_scm');
-$quota_tot_scm += $q["size"];
-$quotas_disk[] = $q;
-
-//echo "chroot = $chroot_dir <br />";
-//echo "ftp = $ftp_dir <br />";
-// echo "group = $group_dir <br />";
-// echo "svn = $svn_dir <br />";
-// echo "cvs = $cvs_dir <br />";
-
-
-
-
-
-// print_debug(print_r($quotas, true));
-?>
-
-<table width="500px" cellpadding="2" cellspacing="0" border="0">
-	<tr style="font-weight:bold">
-		<td colspan="3" style="border-top:thick solid #808080" align="center"><?php echo $Language->getText('project_admin_quotas','database_space_label'); ?></td>
-	</tr>
-	<tr style="font-weight:bold">
-		<td style="border-top:thin solid #808080"><?php echo $Language->getText('project_admin_quotas','table_head_name'); ?></td>
-		<td style="border-top:thin solid #808080" align="right"><?php echo $Language->getText('project_admin_quotas','table_head_nb'); ?></td>
-		<td style="border-top:thin solid #808080" align="right"><?php echo $Language->getText('project_admin_quotas','table_head_size'); ?></td>
-	</tr>
-<?php 
-	$sizetot = 0;
-foreach ($quotas as $q) 
-{ 
-	if ($q["size"] != "")
-	{
-		$sizetot += $q["size"];
-		?>
-			<tr>
-				<td style="border-top:thin solid #808080"><?php echo $q["name"]; ?></td>
-				<td style="border-top:thin solid #808080" align="right"><?php echo $q["nb"]; ?></td>
-				<td style="border-top:thin solid #808080" align="right"><?php echo add_numbers_separator(convert_bytes_to_mega($q["size"]))." ".$Language->getText('project_admin_quotas','size_metric'); ?></td>
-			</tr>
-<?php 
-	} 
-}
-?>
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080">
-			<?php echo $Language->getText('project_admin_quotas','total_label'); ?>
-		</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080">&nbsp;</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($sizetot))." ".$Language->getText('project_admin_quotas','size_metric'); ?>
-		</td>
-	</tr>
-</table>
-<br />
-<br />
-<table width="500px" cellpadding="2" cellspacing="0" border="0">
-	<tr style="font-weight:bold">
-		<td colspan="3" style="border-top:thick solid #808080" align="center">
-			<?php echo $Language->getText('project_admin_quotas','disk_space_label'); ?>
-		</td>
-	</tr>
-	<tr style="font-weight:bold">
-		<td style="border-top:thin solid #808080">
-			<?php echo $Language->getText('project_admin_quotas','table_head_name'); ?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">&nbsp;</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $Language->getText('project_admin_quotas','table_head_size'); ?>
-		</td>
-	</tr>
-<?php 
-	$sizetot = 0;
-foreach ($quotas_disk as $q) 
-{ 
-	if ($q["size"] != "")
-	{
-		$sizetot += $q["size"];
-?>
-	<tr>
-		<td style="border-top:thin solid #808080"><?php echo $q["name"]; ?></td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $q["quota_label"]; ?>&nbsp;
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($q["size"]))." ".$Language->getText('project_admin_quotas','size_metric'); ?>
-		</td>
-	</tr>
-<?php 
-	} 
-}
-?>
-	<tr style="font-weight:bold">
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><?php echo $Language->getText('project_admin_quotas','total_label'); ?></td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080">&nbsp;</td>
-		<td style="border-top:thick solid #808080;border-bottom:thick solid #808080" align="right">
-			<?php echo add_numbers_separator(convert_bytes_to_mega($sizetot))." ".$Language->getText('project_admin_quotas','size_metric'); ?>
-		</td>
-	</tr>
-</table>
-<br />
-<br />
-
-
-<?php
-	
-	$color1 = "#ffffff";
-	$color2 = "#ffffff";
-	$msg1 = "&nbsp;";
-	$msg2 = "&nbsp;";
-	$qs = $quota_soft * 1024 * 1024;
-	if (($quota_tot_1+0) > ($qs+0) && ($qs+0) > 0)
-	{
-		$color1 = "#FFDCDC";
-		$msg1 = $Language->getText('project_admin_quotas','quota_exceed');
-	}
-	if (($quota_tot_scm+0) > ($qs+0) && ($qs+0) > 0)
-	{
-		$color2 = "#FFDCDC";
-		$msg2 = $Language->getText('project_admin_quotas','quota_exceed');
-	}
-?>
-
-<table width="500px" cellpadding="2" cellspacing="0" border="0">
-	<tr style="font-weight:bold">
-		<td colspan="4" style="border-top:thick solid #808080" align="center"><?php echo $Language->getText('project_admin_quotas','quota_space_label'); ?></td>
-	</tr>
-	<tr style="font-weight:bold">
-		<td style="border-top:thin solid #808080">
-			<?php echo $Language->getText('project_admin_quotas','quota_settings_label'); ?>
-		</td>
-		<td style="border-top:thin solid #808080;font-weight:bold" align="right">
-			&nbsp;
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $Language->getText('project_admin_quotas','quota_soft_label'); ?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php echo $Language->getText('project_admin_quotas','quota_hard_label'); ?>
-		</td>
-	</tr>
-	<tr style="background:<?php echo $color1; ?>">
-		<td style="border-top:thin solid #808080">
-			<?php echo $Language->getText('project_admin_quotas','quota_group1_label'); ?>
-		</td>
-		<td style="border-top:thin solid #808080;font-weight:bold;color:red" align="right">
-			<?php echo $msg1; ?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php 
-				if ($quota_soft == 0)
-				{
-					echo "---";
-				}
-				else
-				{
-					echo "$quota_soft";  
-					echo $Language->getText('admin_quotas','mbytes'); 
-				}
-			?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php 
-				if ($quota_hard == 0)
-				{
-					echo "---";
-				}
-				else
-				{
-					echo "$quota_hard";  
-					echo $Language->getText('admin_quotas','mbytes'); 
-				}
-			?>
-		</td>
-	</tr>
-	<tr style="background:<?php echo $color2; ?>">
-		<td style="border-top:thin solid #808080">
-			<?php echo $Language->getText('project_admin_quotas','quota_groupscm_label'); ?>
-		</td>
-		<td style="border-top:thin solid #808080;font-weight:bold;color:red" align="right">
-			<?php echo $msg2; ?>
-		</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php 
-				if ($quota_soft == 0)
-				{
-					echo "---";
-				}
-				else
-				{
-					echo "$quota_soft";  
-					echo $Language->getText('admin_quotas','mbytes'); 
-				}
-			?>
-			</td>
-		<td style="border-top:thin solid #808080" align="right">
-			<?php 
-				if ($quota_hard == 0)
-				{
-					echo "---";
-				}
-				else
-				{
-					echo "$quota_hard";  
-					echo $Language->getText('admin_quotas','mbytes'); 
-				}
-			?>
-		</td>
-	</tr>
-	<tr style="font-weight:bold">
-		<td colspan="4" style="border-top:thick solid #808080" align="center">&nbsp;</td>
-	</tr>
-</table>
-
-
-<?php project_admin_footer(array()); ?>
-
-<?php
-function print_debug ($text)
-{
-	echo "<pre>$text</pre>";
-}
-
-function convert_bytes_to_mega ($mega)
-{
-	$b = round($mega / (1024*1024), 0);
-	return $b;
-}
-
-function add_numbers_separator ($val, $sep=' ')
-{
-	$size = "$val";
-	$size = strrev($size);
-	$size = wordwrap($size, 3, $sep, 1);
-	$size = strrev($size);
-	return $size;
-}
-
-function get_dir_size ($dir)
-{
-	$size = "";
-	$cmd = "/usr/bin/du -bs $dir";
-	$res = shell_exec ($cmd);
-	$a = explode("\t", $res);
-	if (isset($a[1])) $size = $a[0];
-	return "$size";
-}
-?>
\ No newline at end of file

Copied: trunk/gforge/plugins/quota_management/www/quota_project.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/quota_management/www/quota_project.php)

Modified: trunk/gforge/plugins/scmccase/common/CCasePlugin.class
===================================================================
--- trunk/gforge/plugins/scmccase/common/CCasePlugin.class	2007-02-21 20:25:32 UTC (rev 5917)
+++ trunk/gforge/plugins/scmccase/common/CCasePlugin.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -35,7 +35,7 @@
 		$this->hooks[] = "group_approved";
 		$this->hooks[] = "scm_plugin";
 
-                require_once('/etc/gforge/plugins/scmccase/config.php') ;
+                require_once('plugins/scmccase/config.php') ;
 		
 		$this->default_ccase_server = $default_ccase_server ;
 		$this->this_server = $this_server ;

Copied: trunk/gforge/plugins/webcalendar (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar)

Deleted: trunk/gforge/plugins/webcalendar/AUTHORS
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/AUTHORS	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/AUTHORS	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,2 +0,0 @@
-Fabien Regnier <fabien.regnier at sogeti.com>
-Julien Jeany <julien.jeany at sogeti.com>

Copied: trunk/gforge/plugins/webcalendar/AUTHORS (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/AUTHORS)

Deleted: trunk/gforge/plugins/webcalendar/COPYING
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/COPYING	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/COPYING	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,341 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program 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.
-
-    This program 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 this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-

Copied: trunk/gforge/plugins/webcalendar/COPYING (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/COPYING)

Deleted: trunk/gforge/plugins/webcalendar/ChangeLog
===================================================================

Copied: trunk/gforge/plugins/webcalendar/ChangeLog (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/ChangeLog)

Deleted: trunk/gforge/plugins/webcalendar/README
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/README	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/README	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,4 +0,0 @@
-Change owner of www/includes/settings.php
-The owner must be apache
-
-chown www-data www/includes/settings.php

Copied: trunk/gforge/plugins/webcalendar/README (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/README)

Copied: trunk/gforge/plugins/webcalendar/bin (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/bin)

Copied: trunk/gforge/plugins/webcalendar/common (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/common)

Copied: trunk/gforge/plugins/webcalendar/common/languages (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/common/languages)

Deleted: trunk/gforge/plugins/webcalendar/common/languages/Base.tab
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/common/languages/Base.tab	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/common/languages/Base.tab	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,16 +0,0 @@
-#/**
-#  *
-#  * webcalendar message catalog (English)
-#  *
-#  * GForge: Breaking Down the Barriers to Open Source Development
-#  * Copyright 1999-2001 (c) VA Linux Systems
-#  *                2005 (c) Daniel Pérez <danielperez.arg at gmail.com>
-#  * http://sourceforge.net
-#  * Here you can add your own language customizations
-#  *
-#  *
-#  */
-user_home	view_webcalendar	View Personal webcalendar
-project_admin	webcalendar	View the webcalendar Administration
-webcalendar_user	allow	You are not allowed to see this calendar.
-webcalendar_user	nocalendar	No calendar for this group.

Copied: trunk/gforge/plugins/webcalendar/common/languages/Base.tab (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/common/languages/Base.tab)

Deleted: trunk/gforge/plugins/webcalendar/common/languages/French.tab
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/common/languages/French.tab	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/common/languages/French.tab	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,16 +0,0 @@
-#/**
-#  *
-#  * webcalendar message catalog (English)
-#  *
-#  * GForge: Breaking Down the Barriers to Open Source Development
-#  * Copyright 1999-2001 (c) VA Linux Systems
-#  *                2005 (c) Daniel Pérez <danielperez.arg at gmail.com>
-#  * http://sourceforge.net
-#  * Here you can add your own language customizations
-#  *
-#  *
-#  */
-user_home	view_webcalendar	Voir le calendrier personnel
-project_admin	webcalendar	Voir l'administration WebCalendar
-webcalendar_user	allow	Vous n'êtes pas autorisé à voir ce calendrier!!!
-webcalendar_user	nocalendar	Pas de calendrier pour ce Groupe!!

Copied: trunk/gforge/plugins/webcalendar/common/languages/French.tab (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/common/languages/French.tab)

Deleted: trunk/gforge/plugins/webcalendar/common/webcalendar-init.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/common/webcalendar-init.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/common/webcalendar-init.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,33 +0,0 @@
-<?php
-
-/**
- *
- * 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 USA
- */
-
-require_once ('webcalendarPlugin.class') ;
-
-$webcalendarPluginObject = new webcalendarPlugin ;
-
-register_plugin ($webcalendarPluginObject) ;
-
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
-?>

Copied: trunk/gforge/plugins/webcalendar/common/webcalendar-init.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/common/webcalendar-init.php)

Deleted: trunk/gforge/plugins/webcalendar/common/webcalendarPlugin.class
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/common/webcalendarPlugin.class	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/common/webcalendarPlugin.class	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,533 +0,0 @@
-<?php
-
-/**
- * webcalendarPlugin Class
- *
- *
- * 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 USA
- */
-
-class webcalendarPlugin extends Plugin {
-	function webcalendarPlugin () {
-		$this->Plugin() ;
-		$this->name = "webcalendar" ;
-		$this->text = "Webcalendar" ; // To show in the tabs, use...
-		$this->hooks[] = "user_personal_links";//to make a link to the user´s personal part of the plugin
-		$this->hooks[] = "usermenu" ;
-		$this->hooks[] = "groupmenu" ;	// To put into the project tabs
-		$this->hooks[] = "groupisactivecheckbox" ; // The "use ..." checkbox in editgroupinfo
-		$this->hooks[] = "groupisactivecheckboxpost" ; //
-		$this->hooks[] = "userisactivecheckbox" ; // The "use ..." checkbox in user account
-		$this->hooks[] = "userisactivecheckboxpost" ; //
-		$this->hooks[] = "project_admin_plugins"; // to show up in the admin page fro group
-		$this->hooks[] = "call_user_cal"; // to show the calendar of the user (file my/index.php line 434)
-		$this->hooks[] = "call_user_js"; // call a function when you click on webcal (file my/index.php line 434)
-		$this->hooks[] = "call_group_cal"; // to show the calendar of the group (file layout.class ligne 627)
-		//$this->hooks[] = "iframe_group_calendar"; // to show the calendar of the group (file  ligne 627)
-		$this->hooks[] = "add_cal_user"; //add a gforge user in calendar base 
-		$this->hooks[] = "del_cal_user"; //dell a gforge user in calendar base
-		$this->hooks[] = "add_cal_group"; //add a group user in calendar base
-		$this->hooks[] = "del_cal_group"; //del a gforge user in calendar base
-		$this->hooks[] = "change_cal_permission"; //change permission pour webcal user (admin or not)
-		$this->hooks[] = "change_cal_permission_default"; //change permission pour webcal user (admin or not)
-		$this->hooks[] = "change_cal_permission_auto"; //change permission pour webcal user when you modify role
-		$this->hooks[] = "add_cal_link_father"; // add a link between son and father
-		$this->hooks[] = "del_cal_link_father"; // del a link between son and father
-		$this->hooks[] = "add_cal_link_father_event"; // add a link between son and father
-		$this->hooks[] = "change_cal_password"; //change the password a webcal user
-		$this->hooks[] = "change_cal_mail"; //change the mail a webcal user
-	        $this->hooks[] = "cal_link_group"; //a link to group calendar
-	}
-
-	function CallHook ($hookname, $params) {
-		global $use_webcalendarplugin,$G_SESSION,$HTML,$Language;
-		$group_id=$params['group'];
-		if ($hookname == "usermenu") {
-			$text = $this->text; // this is what shows in the tab
-			if ($G_SESSION->usesPlugin("webcalendar")) {
-				$param = '?type=user&id=' . $G_SESSION->getId() . "&pluginname=" . $this->name; // we indicate the part we´re calling is the user one
-				echo ' | ' . $HTML->PrintSubMenu (array ($text),
-						  array ('/plugins/webcalendar/index.php' . $param ));				
-			}
-		} elseif ($hookname == "groupmenu") {
-			$project = &group_get_object($group_id);
-			if (!$project || !is_object($project)) {
-				return;
-			}
-			if ($project->isError()) {
-				return;
-			}
-			if (!$project->isProject()) {
-				return;
-			}
-			if ( !$project->usesPlugin ( $this->name ) ) {
-				$params['TITLES'][]=$this->text;
-				$params['DIRS'][]='/plugins/webcalendar/index2.php?type=group&group_id='.$group_id;
-				} else {
-				$params['TITLES'][]=$this->text." is [Off]";
-			}	
-			(($params['toptab'] == $this->name) ? $params['selected']=(count($params['TITLES'])-1) : '' );
-		} elseif ($hookname == "groupisactivecheckbox") {
-			///Check if the group is active
-		} elseif ($hookname == "groupisactivecheckboxpost") {
-			// this code actually activates/deactivates the plugin after the form was submitted in the project edit public info page
-			$group = &group_get_object($group_id);
-			$use_webcalendarplugin = getStringFromRequest('use_webcalendarplugin');
-			if ( $use_webcalendarplugin == 1 ) {
-				$group->setPluginUse ( $this->name );
-			} else {
-				$group->setPluginUse ( $this->name, false );
-			}
-		} elseif ($hookname == "userisactivecheckbox") {
-			//check if user is active
-			// this code creates the checkbox in the user account manteinance page to activate/deactivate the plugin
-		} elseif ($hookname == "userisactivecheckboxpost") {
-			// this code actually activates/deactivates the plugin after the form was submitted in the user account manteinance page
-			$user = $params['user'];
-			$use_webcalendarplugin = getStringFromRequest('use_webcalendarplugin');
-			if ( $use_webcalendarplugin == 1 ) {
-				$user->setPluginUse ( $this->name );
-			} else {
-				$user->setPluginUse ( $this->name, false );
-			}
-			echo "<tr>";
-			echo "<td>";
-			echo ' <input type="CHECKBOX" name="use_webcalendarplugin" value="1" ';
-			// CHECKED OR UNCHECKED?
-			if ( $user->usesPlugin ( $this->name ) ) {
-				echo "CHECKED";
-			}
-			echo ">    Use ".$this->text." Plugin";
-			echo "</td>";
-			echo "</tr>";
-		} elseif ($hookname == "user_personal_links") {
-			global $Language;
-			// this displays the link in the user´s profile page to it´s personal webcalendar (if you want other sto access it, youll have to change the permissions in the index.php
-			$userid = $params['user_id'];
-			$user = user_get_object($userid);
-			$text = $params['text'];
-			//check if the user has the plugin activated
-			if ($user->usesPlugin($this->name)) {
-				echo '	<p>
-					<a href="/plugins/webcalendar/index.php?id=' . $userid . '&type=user&pluginname=' . $this->name . '">' . $Language->getText('user_home','view_webcalendar') .'</a></p>';
-			}
-		} elseif ($hookname == "project_admin_plugins") {
-			global $Language;
-			// this displays the link in the project admin options page to it´s  webcalendar administration
-			$group_id = $params['group_id'];
-			$group = &group_get_object($group_id);
-			
-			if ( $group->usesPlugin ( $this->name ) ) {
-				echo '<a href="/plugins/webcalendar/index.php?id=' . $group->getID() . '&type=admin&pluginname=' . $this->name . '">' . $Language->getText('project_admin','webcalendar') . '</a><br />';
-			}
-			
-		}												    
-		elseif ($hookname == "call_user_cal") {
-			//my/index.php line 365
-			?>
-			
-			<div id="cal" class="tabbertab" title="WebCalendar"  >
-			<table width="100%" cellspacing="0" cellpadding="0" border="0" ><tr align="center" ><td >
-			<iframe name="webcal" src="/plugins/webcalendar/login.php?type=user" border=no scrolling="yes" width="100%" height="700"></iframe>
-			</td></tr></table>
-			</div>
-			<script>
-			function reload_webcal() {
-			frames['webcal'].location.replace('/plugins/webcalendar/login.php?type=user');
-			
-			}
-			</script>
-			<?php		
-		}
-		elseif ($hookname == "call_user_js") {
-			// my/index.php line 67
-			
-			?>
-			onclick="reload_webcal()"
-			<?php		
-		}
-		elseif ($hookname == "add_cal_user") { 
-				//argument user_id
-				//user.class line 590
-				//admin/userlist.php line 129
-				$query = "SELECT user_name,user_pw,email FROM users WHERE user_id = '".$params."'";
-				$res = db_query($query);
-				$row = db_fetch_array($res);
-				$cal_query = "INSERT INTO webcal_user (cal_login, cal_passwd, cal_email,cal_firstname, cal_is_admin) VALUES ('" . $row['user_name'] . "','" . $row['user_pw'] . "','" . $row['email'] . "','" . $row['user_name'] . "','N')";
-				$res_cal = db_query($cal_query);	
-		}
-		elseif ($hookname == "del_cal_user") { 
-				//argument user_id
-				//admin/userlist.php line 122
-				$query = "SELECT user_name,user_pw,email FROM users WHERE user_id = '".$params."'";
-				$res = db_query($query);
-				$row = db_fetch_array($res);
-				$cal_query = "DELETE FROM webcal_user WHERE cal_login = '" . $row['user_name'] . "'";
-				$res_cal = db_query($cal_query);	
-				db_query("DELETE FROM webcal_asst WHERE cal_boss = '" . $row['user_name'] . "' OR cal_assistant = '" . $row['user_name'] . "'");
-				db_query("DELETE FROM webcal_entry_user WHERE cal_login = '" . $row['user_name'] . "' ");
-		}
-		elseif ($hookname == "add_cal_group") {
-				//argument group_id
-				//approve_pending.php line 69,80 
-				$query = "SELECT  unix_group_name,groups.group_id,group_name,email FROM groups,users,user_group WHERE groups.group_id = '".$params."' AND groups.group_id = user_group.group_id AND user_group.user_id = users.user_id AND user_group.admin_flags = 'A' ";
-				$res = db_query($query);
-				$row = db_fetch_array($res);
-				$cal_query = "INSERT INTO webcal_user (cal_login, cal_passwd, cal_firstname,cal_email) VALUES ('" . $row['unix_group_name'] . "','cccc','" . addslashes($row['group_name']) . "','".$row['email']."')";
-				$res_cal = db_query($cal_query);
-				
-		
-		}
-		elseif ($hookname == "del_cal_group") {
-				//argument group_id
-				//approve_pending.php line 90 
-				$query = "SELECT  unix_group_name,group_id,group_name FROM groups WHERE group_id = '".$params."' ";
-				$res = db_query($query);
-				$row = db_fetch_array($res);
-				$cal_query = "DELETE FROM webcal_user WHERE cal_login = '" . $row['unix_group_name'] . "'";
-				$res_cal = db_query($cal_query);
-				db_query("DELETE FROM webcal_asst WHERE cal_boss = '" . $row['unix_group_name'] . "' OR cal_assistant = '" . $row['unix_group_name'] . "'");
-				db_query("DELETE FROM webcal_entry_user WHERE cal_login = '" . $row['unix_group_name'] . "' ");
-		}
-		elseif ($hookname == "change_cal_permission") {
-				//argument user_id -> $params[0]et group_id -> $params[1]
-				//project/admin/index.php line 72,87,103
-				//project/admin/massfinish.php line 50
-				
-				
-				
-				$query_flags = "SELECT value,admin_flags FROM user_group,role_setting WHERE role_setting.role_id = user_group.role_id AND user_group.user_id = '".$params[0]."' AND user_group.group_id = '".$params[1]."' AND role_setting.section_name = 'webcal'";
-				
-				$res = db_query($query_flags);
-				$row_flags = db_fetch_array($res);
-				
-				//get user name :
-				$query_nom_boss = "SELECT unix_group_name FROM groups WHERE group_id = '".$params[1]."' ";
-				$res_nom_boss = db_query($query_nom_boss);
-				$row_nom_boss = db_fetch_array($res_nom_boss);
-				
-				
-				$query_nom_user = "SELECT user_name,email FROM users WHERE user_id = '".$params[0]."' ";
-				$res_nom_user = db_query($query_nom_user);
-				$row_nom_user = db_fetch_array($res_nom_user);
-				
-				//flag verification
-				$query_flags = "SELECT COUNT(*) FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-				$res = db_query($query_flags);
-				$row_num = db_fetch_array($res);
-				
-				//select email
-				$query_mail ="SELECT cal_email FROM webcal_user WHERE  cal_login = '".$row_nom_boss['unix_group_name']."'";			
-				$res_mail = db_query($query_mail);
-				$row_mail = db_fetch_array($res_mail);	
-				$mail = $row_mail['cal_email'] ;
-				
-				//if group admin
-				if($params[1] == 1){
-				$query_flags_admin = "SELECT admin_flags FROM user_group WHERE user_id = '".$params[0]."' AND group_id = '".$params[1]."'";
-				$res_flags_admin = db_query($query_flags_admin);
-				$row_flags_admin = db_fetch_array($res_flags_admin);
-					if(trim($row_flags_admin['admin_flags']) == 'A'  ) {
-						$update_admin = "UPDATE webcal_user SET cal_is_admin = 'Y' WHERE cal_login = '".$row_nom_user['user_name']."'" ;
-					}
-					else {
-						$update_admin = "UPDATE webcal_user SET cal_is_admin = 'N' WHERE cal_login = '".$row_nom_user['user_name']."'" ;
-				
-					}
-					db_query($update_admin);
-				
-				}
-				
-				if(($row_num[0] != 1 ) && ($row_flags['value'] == 1)){
-					
-				$insert_ass =  "INSERT INTO webcal_asst (cal_boss, cal_assistant) VALUES ('".$row_nom_boss['unix_group_name']."','".$row_nom_user['user_name']."')";	
-				$res_insert  = db_query($insert_ass);
-				
-				//we add email of the new admin
-				$mail = str_replace($row_nom_user['email'],"",$mail);
-				$mail = str_replace(",".$row_nom_user['email'],"",$mail);
-								
-				if($mail == ""){
-					$virgule = "";	
-					}
-				else {
-					$virgule = ",";	
-					}
-									
-				$mail = $mail.$virgule.$row_nom_user['email'] ;
-				
-				
-				
-				//$mail = $row_mail['cal_email'].",".$row_nom_user['email'] ;
-				$update = "UPDATE webcal_user SET cal_email = '".trim($mail,',')."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-				db_query($update);
-				}
-				elseif($row_num[0] == 1 && ($row_flags['value'] != 1)){
-				$del_ass = "DELETE FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-				$res_del = db_query($del_ass);	
-				
-				//we del email of the old admin
-				$mail = str_replace(",".$row_nom_user['email'],"",$row_mail['cal_email']) ;
-				$update = "UPDATE webcal_user SET cal_email = '".$mail."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-				db_query($update);
-				}
-				
-				
-		}
-		elseif ($hookname == "change_cal_permission_default") {
-				//argument user_id -> $params[0]et group_id -> $params[1]
-				// Group.class line 2085
-				//$query_flags = "SELECT value FROM user_group,role_setting WHERE role_setting.role_id = user_group.role_id AND user_group.user_id = '".$params[0]."' AND user_group.group_id = '".$params[1]."' AND role_setting.section_name = 'test'";
-				
-				$query_flags = "SELECT admin_flags FROM user_group WHERE user_id = '".$params[0]."' AND group_id = '".$params[1]."'";
-				$res = db_query($query_flags);
-				$row_flags = db_fetch_array($res);
-				 
-				
-				
-				//get user name
-				$query_nom_boss = "SELECT unix_group_name FROM groups WHERE group_id = '".$params[1]."' ";
-				$res_nom_boss = db_query($query_nom_boss);
-				$row_nom_boss = db_fetch_array($res_nom_boss);
-				
-				
-				$query_nom_user = "SELECT user_name,email FROM users WHERE user_id = '".$params[0]."' ";
-				$res_nom_user = db_query($query_nom_user);
-				$row_nom_user = db_fetch_array($res_nom_user);
-				
-				//verif du flag sur webcal
-				$query_flags = "SELECT COUNT(*) FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-				$res = db_query($query_flags);
-				$row_num = db_fetch_array($res);
-				
-				 //select email
-				$query_mail ="SELECT cal_email FROM webcal_user WHERE  cal_login = '".$row_nom_boss['unix_group_name']."'";			
-				$res_mail = db_query($query_mail);
-				$row_mail = db_fetch_array($res_mail);
-				$mail = $row_mail['cal_email']; 
-				
-				if(($row_num[0] != 1 ) && (trim($row_flags['admin_flags']) == 'A')){
-					//recuperer le nom du user et du group
-				$insert_ass =  "INSERT INTO webcal_asst (cal_boss, cal_assistant) VALUES ('".$row_nom_boss['unix_group_name']."','".$row_nom_user['user_name']."')";	
-				$res_insert  = db_query($insert_ass);
-				
-				//we add email of the new admin
-				$mail = str_replace($row_nom_user['email'],"",$mail);
-				$mail = str_replace(",".$row_nom_user['email'],"",$mail);
-								
-				if($mail == ""){
-					$virgule = "";	
-					}
-				else {
-					$virgule = ",";	
-					}
-									
-				$mail = $mail.$virgule.$row_nom_user['email'] ;
-								
-				//$mail = $row_mail['cal_email'].",".$row_nom_user['email'] ;
-				$update = "UPDATE webcal_user SET cal_email = '".trim($mail,',')."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-				db_query($update);
-				}
-				elseif($row_num[0] == 1 && (trim($row_flags['admin_flags']) != 'A')){
-				$del_ass = "DELETE FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-				$res_del = db_query($del_ass);	
-				
-				//we del email of the old admin
-				$mail = str_replace(",".$row_nom_user['email'],"",$row_mail['cal_email']) ;
-				$update = "UPDATE webcal_user SET cal_email = '".$mail."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-				db_query($update);
-				}
-				
-		}
-		elseif ($hookname == "change_cal_permission_auto") {
-				//argument $params group_id
-				// project/admin/roleedit.php line 85
-				
-				$query_flags = "SELECT value, user_id FROM user_group,role_setting WHERE role_setting.role_id = user_group.role_id AND role_setting.section_name = 'webcal' AND group_id = '".$params."'" ;				
-				$res = db_query($query_flags);
-				if($res){
-						while( $row_flags = db_fetch_array($res)){
-						
-						
-						
-								//get the group and user names
-								$query_nom_boss = "SELECT unix_group_name FROM groups WHERE group_id = '".$params."' ";
-								$res_nom_boss = db_query($query_nom_boss);
-								$row_nom_boss = db_fetch_array($res_nom_boss);
-								
-								
-								$query_nom_user = "SELECT user_name,email FROM users WHERE user_id = '".$row_flags['user_id']."' ";
-								$res_nom_user = db_query($query_nom_user);
-								$row_nom_user = db_fetch_array($res_nom_user);
-								
-								//verif if the user is admin
-								$query_flags = "SELECT COUNT(*) FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-								$res_count = db_query($query_flags);
-								$row_num = db_fetch_array($res_count);
-								 								
-								//select email
-								$query_mail ="SELECT cal_email FROM webcal_user WHERE  cal_login = '".$row_nom_boss['unix_group_name']."'";			
-								$res_mail = db_query($query_mail);
-								$row_mail = db_fetch_array($res_mail);
-								$mail = $row_mail['cal_email'];
-								
-								if(($row_num[0] != 1 ) && ($row_flags['value'] == 1)){
-								//recuperer le nom du user et du group
-								$insert_ass =  "INSERT INTO webcal_asst (cal_boss, cal_assistant) VALUES ('".$row_nom_boss['unix_group_name']."','".$row_nom_user['user_name']."')";	
-								$res_insert  = db_query($insert_ass);
-								
-								//we add email of the new admin
-								$mail = str_replace($row_nom_user['email'],"",$mail);
-								$mail = str_replace(",".$row_nom_user['email'],"",$mail);
-								
-								if($mail == ""){
-									$virgule = "";	
-									}
-									else {
-									$virgule = ",";	
-									}
-									
-								$mail = $mail.$virgule.$row_nom_user['email'] ;
-								
-								//$mail = $row_mail['cal_email'].",".$row_nom_user['email'] ;
-								$update = "UPDATE webcal_user SET cal_email = '".trim($mail,',')."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-								db_query($update);
-								
-								}
-								elseif($row_num[0] == 1 && ($row_flags['value'] != 1)){
-								$del_ass = "DELETE FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-								$res_del = db_query($del_ass);	
-								
-								//we del email of the old admin
-								$mail = str_replace(",".$row_nom_user['email'],"",$row_mail['cal_email']) ;
-								$update = "UPDATE webcal_user SET cal_email = '".$mail."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-								db_query($update);
-								}
-						}
-				}
-				
-		}
-		elseif ($hookname == "add_cal_link_father") {
-				//argument id du fils --> $params[0], id du pere--> $params[1]
-				//plugin hierachy wait_son.php line 36
-				$query_hierarchy = "select p1.group_id as father_id,p1.unix_group_name as father_unix_name,p1.group_name as father_name,p2.group_id as son_id,p2.unix_group_name as son_unix_name,p2.group_name as son_name from groups as p1,groups as p2,plugin_projects_hierarchy where p1.group_id=plugin_projects_hierarchy.project_id AND plugin_projects_hierarchy.project_id = '".$params[1]."' and p2.group_id=plugin_projects_hierarchy.sub_project_id AND plugin_projects_hierarchy.sub_project_id = '".$params[0]."'and plugin_projects_hierarchy.activated='t' AND plugin_projects_hierarchy.link_type='shar'";
-				$res_hierarchy = db_query($query_hierarchy);
-				if($res_hierarchy){
-						while($row_hierarchy = db_fetch_array($res_hierarchy)) {
-							$query_entry = "SELECT cal_id FROM webcal_entry_user WHERE cal_login = '".$row_hierarchy['son_unix_name']."' AND cal_status = 'A'" ;
-							$res_entry = db_query($query_entry);
-							if($res_entry){
-								while($row_entry = db_fetch_array($res_entry)) {
-								$insert_entry = "INSERT INTO webcal_entry_user (cal_id,cal_login,cal_status) VALUES ('".$row_entry['cal_id']."','".$row_hierarchy['father_unix_name']."','A')";	
-								$res_insert_entry = db_query($insert_entry);
-								}
-							}
-						}	
-						
-					}
-		}
-		elseif ($hookname == "add_cal_link_father_event") {
-				//argument name of the son --> $params[0], id_cal--> $params[1]
-				//webcalendar/edit_entry_handler.php line 390
-				//webcalendar/approve_entry.php line 21
-				$query_nom = "SELECT group_id FROM groups WHERE unix_group_name = '".$params[0]."'";
-				$res_nom = db_query($query_nom);
-				$row_nom = db_fetch_array($res_nom);
-				$query_pere = "SELECT project_id, unix_group_name FROM plugin_projects_hierarchy, groups WHERE plugin_projects_hierarchy.project_id = groups.group_id AND sub_project_id = '".$row_nom['group_id']."' AND link_type = 'shar' AND activated = true";
-				$res_pere = db_query($query_pere);
-				if($res_pere){
-					$row_pere = db_fetch_array($res_pere);
-					$insert_entry = "INSERT INTO webcal_entry_user (cal_id,cal_login,cal_status) VALUES ('".$params[1]."','".$row_pere['unix_group_name']."','A')";	
-					$res_insert  = db_query($insert_entry);
-				}
-				
-		}
-		elseif ($hookname == "del_cal_link_father") {
-				//argument id son --> $params[0], id father--> $params[1]
-				//plugin hierachy wait_son.php line 36
-				$query_hierarchy = "select p1.group_id as father_id,p1.unix_group_name as father_unix_name,p1.group_name as father_name,p2.group_id as son_id,p2.unix_group_name as son_unix_name,p2.group_name as son_name from groups as p1,groups as p2,plugin_projects_hierarchy where p1.group_id=plugin_projects_hierarchy.project_id AND plugin_projects_hierarchy.project_id = '".$params[1]."' and p2.group_id=plugin_projects_hierarchy.sub_project_id AND plugin_projects_hierarchy.sub_project_id = '".$params[0]."'and plugin_projects_hierarchy.activated='t' AND plugin_projects_hierarchy.link_type='shar'";
-				$res_hierarchy = db_query($query_hierarchy);
-				if($res_hierarchy){
-						while($row_hierarchy = db_fetch_array($res_hierarchy)) {
-							$query_entry = "SELECT cal_id FROM webcal_entry_user WHERE cal_login = '".$row_hierarchy['son_unix_name']."' " ;
-							$res_entry = db_query($query_entry);
-							if($res_entry){
-								while($row_entry = db_fetch_array($res_entry)) {
-								$insert_entry = "DELETE FROM webcal_entry_user WHERE cal_id = '".$row_entry['cal_id']."' AND cal_login = '".$row_hierarchy['father_unix_name']."'";	
-								$res_insert_entry = db_query($insert_entry);
-								}
-							}
-						}	
-						
-					}
-		}
-		elseif ($hookname == "del_cal_link_father_event") {
-				//argument id son --> $params[0], id_cal--> $params[1]
-				
-		}
-		elseif ($hookname == "change_cal_password") {
-				//argument user_id
-				//account/change_pw.php line 79
-				$query_name = "SELECT user_name,user_pw,email  FROM users WHERE user_id = '".$params."'" ;
-				$res_name = db_query($query_name);
-				$row_name = db_fetch_array($res_name);
-				
-				$update = "UPDATE webcal_user SET cal_passwd = '".$row_name['user_pw']."', cal_email = '".$row_name['email']."' WHERE cal_login = '".$row_name['user_name']."'";
-				$res_update = db_query($update); 
-						
-		}
-		elseif ($hookname == "change_cal_mail") {
-				//argument user_id
-				//account/change_email-complete.php line 63
-				 
-				$query_name = "SELECT user_name,user_pw,email  FROM users WHERE user_id = '".$params."'" ;
-				$res_name = db_query($query_name);
-				$row_name = db_fetch_array($res_name);
-				
-				$query_old = "SELECT cal_email FROM webcal_user WHERE cal_login = '".$row_name['user_name']."'" ;
-				$res_old = db_query($query_old);
-				$row_old = db_fetch_array($res_old);
-				
-				//get all the cal_login where you need to change mail
-				$query_all_mail = "SELECT cal_login, cal_email FROM webcal_user WHERE cal_email LIKE '%".$row_old['cal_email']."%'" ;
-				$res_all_mail = db_query($query_all_mail);
-				print $query_all_mail;
-				while($row_all_mail = db_fetch_array($res_all_mail)){
-					$mail = str_replace($row_old['cal_email'],$row_name['email'],$row_all_mail['cal_email']);
-					$update = "UPDATE webcal_user SET cal_passwd = '".$row_name['user_pw']."', cal_email = '".$mail."' WHERE cal_login = '".$row_all_mail['cal_login']."'";
-					$res_update = db_query($update); 
-					
-				}
-								
-						
-		}
-		elseif ($hookname == "cal_link_group" ){
-		// www/include/project_home.php line 418
-		//params = group_id
-		print '<hr size="1" />';
-		print '<a href="/plugins/webcalendar/index2.php?type=group&group_id='.$params.'">Webcalendar</a> ';
-		}
-		 
-	}
-}
-
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
-?>

Copied: trunk/gforge/plugins/webcalendar/common/webcalendarPlugin.class (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/common/webcalendarPlugin.class)

Copied: trunk/gforge/plugins/webcalendar/db (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/db)

Deleted: trunk/gforge/plugins/webcalendar/db/webcalendar-init.sql
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/db/webcalendar-init.sql	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/db/webcalendar-init.sql	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,372 +0,0 @@
-CREATE TABLE webcal_user (
-  cal_login VARCHAR(25) NOT NULL,
-  cal_passwd VARCHAR(32),
-  cal_lastname VARCHAR(25),
-  cal_firstname VARCHAR(25),
-  cal_is_admin CHAR(1) DEFAULT 'N',
-  cal_email VARCHAR(75),
-  PRIMARY KEY ( cal_login )
-);
-
-INSERT INTO webcal_user ( cal_login, cal_passwd, cal_lastname, cal_firstname, cal_is_admin ) VALUES ( 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'Default', 'Y' );
-
-
-CREATE TABLE webcal_entry (
-  cal_id INT NOT NULL,
-  cal_group_id INT,
-  cal_ext_for_id INT NULL,
-  cal_create_by VARCHAR(25) NOT NULL,
-  cal_date INT NOT NULL,
-  cal_time INT,
-  cal_mod_date INT,
-  cal_mod_time INT,
-  cal_duration INT NOT NULL,
-  cal_priority INT DEFAULT 2,
-  cal_type CHAR(1) DEFAULT 'E',
-  cal_access CHAR(1) DEFAULT 'P',
-  cal_name VARCHAR(80) NOT NULL,
-  cal_description TEXT,
-  PRIMARY KEY ( cal_id )
-);
-
-
-CREATE TABLE webcal_entry_repeats (
-   cal_id INT DEFAULT '0' NOT NULL,
-   cal_type VARCHAR(20),
-   cal_end INT,
-   cal_frequency INT DEFAULT '1',
-   cal_days CHAR(7),
-   PRIMARY KEY (cal_id)
-);
-
-
-CREATE TABLE webcal_entry_repeats_not (
-  cal_id INT NOT NULL,
-  cal_date INT NOT NULL,
-  PRIMARY KEY ( cal_id, cal_date )
-);
-
-
-CREATE TABLE webcal_entry_user (
-  cal_id int DEFAULT '0' NOT NULL,
-  cal_login varchar(25) DEFAULT '' NOT NULL, 
-  cal_status char(1) DEFAULT 'A' NOT NULL,
-  cal_category INT DEFAULT NULL,
-  PRIMARY KEY ( cal_id,cal_login )
-);
-
-
-CREATE TABLE webcal_entry_ext_user (
-  cal_id INT DEFAULT 0 NOT NULL,
-  cal_fullname VARCHAR(50) NOT NULL,
-  cal_email VARCHAR(75) NOT NULL,
-  PRIMARY KEY ( cal_id, cal_fullname )
-);
-
-
-CREATE TABLE webcal_user_pref (
-  cal_login varchar(25) NOT NULL,
-  cal_setting varchar(25) NOT NULL,
-  cal_value varchar(100),
-  PRIMARY KEY ( cal_login, cal_setting )
-);
-
-
-
-CREATE TABLE webcal_user_layers (
-  cal_layerid INT DEFAULT '0' NOT NULL,
-  cal_login varchar(25) NOT NULL,
-  cal_layeruser varchar(25) NOT NULL,
-  cal_color varchar(25),
-  cal_dups CHAR(1) DEFAULT 'N',
-  PRIMARY KEY ( cal_login, cal_layeruser )
-);
-
-
-
-CREATE TABLE webcal_site_extras (
-  cal_id INT DEFAULT '0' NOT NULL,
-  cal_name VARCHAR(25) NOT NULL,
-  cal_type INT NOT NULL,
-  cal_date INT DEFAULT '0',
-  cal_remind INT DEFAULT '0',
-  cal_data TEXT,
-  PRIMARY KEY ( cal_id, cal_name, cal_type )
-);
-
-
-CREATE TABLE webcal_reminder_log (
-  cal_id INT DEFAULT '0' NOT NULL,
-  cal_name VARCHAR(25) NOT NULL,
-  cal_event_date INT NOT NULL DEFAULT 0,
-  cal_last_sent INT NOT NULL DEFAULT 0,
-  PRIMARY KEY ( cal_id, cal_name, cal_event_date )
-);
-
-CREATE TABLE webcal_group (
-  cal_group_id INT NOT NULL,
-  cal_owner VARCHAR(25) NOT NULL,
-  cal_name VARCHAR(50) NOT NULL,
-  cal_last_update INT NOT NULL,
-  PRIMARY KEY ( cal_group_id )
-);
-
-CREATE TABLE webcal_group_user (
-  cal_group_id INT NOT NULL,
-  cal_login VARCHAR(25) NOT NULL,
-  PRIMARY KEY ( cal_group_id, cal_login )
-);
-
-CREATE TABLE webcal_view (
-  cal_view_id INT NOT NULL,
-  cal_owner VARCHAR(25) NOT NULL,
-  cal_name VARCHAR(50) NOT NULL,
-  cal_view_type CHAR(1),
-  cal_is_global CHAR(1) DEFAULT 'N' NOT NULL,
-  PRIMARY KEY ( cal_view_id )
-);
-
-CREATE TABLE webcal_view_user (
-  cal_view_id INT NOT NULL,
-  cal_login VARCHAR(25) NOT NULL,
-  PRIMARY KEY ( cal_view_id, cal_login )
-);
-
-CREATE TABLE webcal_config (
-  cal_setting VARCHAR(50) NOT NULL,
-  cal_value VARCHAR(100) NOT NULL,
-  PRIMARY KEY ( cal_setting )
-);
-
-
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'application_name', 'WebCalendar' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'LANGUAGE', 'Browser-defined' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'demo_mode', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'require_approvals', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'groups_enabled', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'user_sees_only_his_groups', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'categories_enabled', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'allow_conflicts', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'conflict_repeat_months', '6' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'disable_priority_field', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'disable_access_field', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'disable_participants_field', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'disable_repeating_field', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'allow_view_other', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'email_fallback_from', 'youremailhere' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'remember_last_login', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'allow_color_customization', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('BGCOLOR','#FFFFFF');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('TEXTCOLOR','#000000');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('H2COLOR','#000000');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('CELLBG','#C0C0C0');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('WEEKENDBG','#D0D0D0');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('TABLEBG','#000000');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('THBG','#FFFFFF');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('THFG','#000000');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('POPUP_FG','#000000');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('POPUP_BG','#FFFFFF');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('TODAYCELLBG','#FFFF33');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'STARTVIEW', 'week.php' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'WEEK_START', '0' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'TIME_FORMAT', '12' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'DISPLAY_UNAPPROVED', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'DISPLAY_WEEKNUMBER', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'WORK_DAY_START_HOUR', '8' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'WORK_DAY_END_HOUR', '17' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'send_email', 'N' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'EMAIL_REMINDER', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'EMAIL_EVENT_ADDED', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'EMAIL_EVENT_UPDATED', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'EMAIL_EVENT_DELETED', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ( 'EMAIL_EVENT_REJECTED', 'Y' );
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('auto_refresh', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('nonuser_enabled', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('allow_html_description', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('reports_enabled', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('DISPLAY_WEEKENDS', 'Y');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('DISPLAY_DESC_PRINT_DAY', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('DATE_FORMAT', '__month__ __dd__, __yyyy__');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('TIME_SLOTS', '12');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('TIMED_EVT_LEN', 'D');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('PUBLISH_ENABLED', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('DATE_FORMAT_MY', '__month__ __yyyy__');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('DATE_FORMAT_MD', '__month__ __dd__');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('CUSTOM_SCRIPT', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('CUSTOM_HEADER', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('CUSTOM_TRAILER', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('bold_days_in_year', 'Y');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('site_extras_in_popup', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('add_link_in_views', 'Y');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('allow_conflict_override', 'Y');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('limit_appts', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('limit_appts_number', '6');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access_default_visible', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access_default_selected', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access_others', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access_can_add', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access_add_needs_approval', 'Y');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('public_access_view_part', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('nonuser_at_top', 'Y');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('allow_external_users', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('external_notifications', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('external_reminders', 'N');
-INSERT INTO webcal_config ( cal_setting, cal_value )
-  VALUES ('enable_gradients', 'N');
-
-
-
-CREATE TABLE webcal_entry_log (
-  cal_log_id INT NOT NULL,
-  cal_entry_id INT NOT NULL,
-  cal_login VARCHAR(25) NOT NULL,
-  cal_user_cal VARCHAR(25) NOT NULL,
-  cal_type CHAR(1) NOT NULL,
-  cal_date INT NOT NULL,
-  cal_time INT NOT NULL,
-  cal_text TEXT,
-  PRIMARY KEY ( cal_log_id )
-);
-
-
-CREATE TABLE webcal_categories (
-  cat_id INT NOT NULL,
-  cat_owner VARCHAR(25),
-  cat_name VARCHAR(80) NOT NULL,
-  PRIMARY KEY ( cat_id )
-);
-
-CREATE TABLE webcal_asst (
-  cal_boss VARCHAR(25) NOT NULL,
-  cal_assistant VARCHAR(25) NOT NULL,
-  PRIMARY KEY ( cal_boss, cal_assistant )
-);
-
-CREATE TABLE webcal_nonuser_cals (
-  cal_login VARCHAR(25) NOT NULL,
-  cal_lastname VARCHAR(25) NULL,
-  cal_firstname VARCHAR(25) NULL,
-  cal_admin VARCHAR(25) NOT NULL,
-  PRIMARY KEY ( cal_login )
-);
-
-CREATE TABLE webcal_import (
-  cal_import_id INT NOT NULL,
-  cal_name VARCHAR(50) NULL,
-  cal_date INT NOT NULL,
-  cal_type VARCHAR(10) NOT NULL,
-  cal_login VARCHAR(25) NULL,
-  PRIMARY KEY ( cal_import_id )
-);
-
-CREATE TABLE webcal_import_data (
-  cal_import_id INT NOT NULL,
-  cal_id INT NOT NULL,
-  cal_login VARCHAR(25) NOT NULL,
-  cal_import_type VARCHAR(15) NOT NULL,
-  cal_external_id VARCHAR(200) NULL,
-  PRIMARY KEY  ( cal_id, cal_login )
-);
-
-
-CREATE TABLE webcal_report (
-  cal_login VARCHAR(25) NOT NULL,
-  cal_report_id INT NOT NULL,
-  cal_is_global CHAR(1) DEFAULT 'N' NOT NULL,
-  cal_report_type VARCHAR(20) NOT NULL,
-  cal_include_header CHAR(1) DEFAULT 'Y' NOT NULL,
-  cal_report_name VARCHAR(50) NOT NULL,
-  cal_time_range INT NOT NULL,
-  cal_user VARCHAR(25) NULL,
-  cal_allow_nav CHAR(1) DEFAULT 'Y',
-  cal_cat_id INT NULL,
-  cal_include_empty CHAR(1) DEFAULT 'N',
-  cal_show_in_trailer CHAR(1) DEFAULT 'N',
-  cal_update_date INT NOT NULL,
-  PRIMARY KEY ( cal_report_id )
-);
-
-CREATE TABLE webcal_report_template (
-  cal_report_id INT NOT NULL,
-  cal_template_type CHAR(1) NOT NULL,
-  cal_template_text TEXT,
-  PRIMARY KEY ( cal_report_id, cal_template_type )
-);
-
-
-
-

Copied: trunk/gforge/plugins/webcalendar/db/webcalendar-init.sql (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/db/webcalendar-init.sql)

Copied: trunk/gforge/plugins/webcalendar/etc (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/etc)

Copied: trunk/gforge/plugins/webcalendar/etc/plugins (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/etc/plugins)

Copied: trunk/gforge/plugins/webcalendar/etc/plugins/webcalendar (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/etc/plugins/webcalendar)

Copied: trunk/gforge/plugins/webcalendar/script (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/script)

Deleted: trunk/gforge/plugins/webcalendar/script/webcalendar-init.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/script/webcalendar-init.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/script/webcalendar-init.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,162 +0,0 @@
-<?php
-
-
-//create the config file for webcalendar
-$fichier_conf = "<?\n" . 
-		"install_password: 764b9c698569b4e77fd69db363fef414" .
-		"\ndb_type: postgresql" .
-		"\ndb_host: ".$sys_gfdbhost.
-		"\ndb_database: ".$sys_gfdbname.
-		"\ndb_login: ".$sys_gfdbuser.
-		"\ndb_password: ".$sys_gfdbpasswd.
-		"\ndb_persistent: true" .
-		"\nsingle_user_login:" . 
-		"\nreadonly: false" .
-		"\nuse_http_auth: false" .
-		"\nsingle_user: false" .
-		"\nuser_inc: user.php" .
-		"\n?>" ;
-
-$handle = fopen($sys_plugins_path . $pluginname . "/www/includes/settings.php", "w");
-fwrite($handle,$fichier_conf);
-fclose($handle);
-
-//user
-$query = "SELECT user_name,user_pw,email,user_id FROM users WHERE NOT user_name='None' ";
-$res = db_query($query);
-echo db_error();
-while ($row = db_fetch_array($res)) {
-	//verify if admin
-	$query_flags = "SELECT COUNT(*) FROM user_group WHERE user_id = '".$row['user_id']."' AND admin_flags = 'A'  AND group_id = '1'";
-	$res_flags = db_query($query_flags) ;
-	$row_flags = db_fetch_array($res_flags) ;
-	$cal_query = "INSERT INTO webcal_user (cal_login, cal_passwd, cal_email,cal_firstname, cal_is_admin) VALUES ('" . $row['user_name'] . "','" . $row['user_pw'] . "','" . $row['email'] . "','" . $row['user_name'] . "'";
-	if ($row_flags[0] == 1)
-		$cal_query .= ",'Y')";
-	else
-		$cal_query .= ",'N')";
-		
-	$cal_res = db_query($cal_query);
-
-}
-
-//group
-
-$query2 = "SELECT  unix_group_name,groups.group_id,group_name,email FROM groups,users,user_group WHERE groups.group_id >5 AND groups.group_id = user_group.group_id AND user_group.user_id = users.user_id AND user_group.admin_flags = 'A' ";
-$res2 = db_query($query2);
-while ($row2 = db_fetch_array($res2)) {
-	$cal_query2 = "INSERT INTO webcal_user (cal_login, cal_passwd, cal_firstname,cal_email) VALUES ('" . $row2['unix_group_name'] . "','qdkqshjddoshd','" . addslashes($row2['group_name']) . "','" . $row2['email'] . "')";
-
-	
-	//get for admin of project
-	$query_user_group = "SELECT user_group.user_id,user_name,email from user_group,users WHERE user_group.user_id = users.user_id AND group_id = '".$row2['group_id']."' AND admin_flags = 'A'" ;
-	//print $query_user_group ;
-	$res_user_group = db_query($query_user_group);
-	
-	//get the email of the admin
-	$query_mail ="SELECT cal_email FROM webcal_user WHERE  cal_login = '".$row2['unix_group_name']."'";			
-	$res_mail = db_query($query_mail);
-	$row_mail = db_fetch_array($res_mail);	
-	$mail = $row_mail['cal_email'];
-	
-	if($res_user_group){
-		while($row_user_group = db_fetch_array($res_user_group)) {
-			$insert_ass = "INSERT INTO webcal_asst (cal_boss, cal_assistant) VALUES ('".$row2['unix_group_name']."','".$row_user_group['user_name']."')"; 
-			$cal_res = db_query($insert_ass);
-			
-			//add email
-			$mail = str_replace($row_user_group['email'],"",$mail);
-			$mail = str_replace(",".$row_user_group['email'],"",$mail);
-			
-			if($mail == ""){
-			$virgule = "";	
-			}
-			else {
-			$virgule = ",";	
-			}
-			$mail = $mail.$virgule.$row_user_group['email'] ;
-			
-		}	
-			$update = "UPDATE webcal_user SET cal_email = '".trim($mail,',')."' WHERE cal_login = '".$row2['unix_group_name']."'" ;
-			db_query($update);
-			
-	} 
-	$cal_res = db_query($cal_query2); 
-
-}
-
-
-//link
-
-$query_hierarchy = "select p1.group_id as father_id,p1.unix_group_name as father_unix_name,p1.group_name as father_name,p2.group_id as son_id,p2.unix_group_name as son_unix_name,p2.group_name as son_name from groups as p1,groups as p2,plugin_projects_hierarchy where p1.group_id=plugin_projects_hierarchy.project_id and p2.group_id=plugin_projects_hierarchy.sub_project_id and plugin_projects_hierarchy.activated='t' AND plugin_projects_hierarchy.link_type='shar'";
-$res_hierarchy = db_query($query_hierarchy);
-if($res_hierarchy){
-		while($row_hierarchy = db_fetch_array($res_hierarchy)) {
-			$query_entry = "SELECT cal_id FROM webcal_entry_user WHERE cal_login = '".$row_hierarchy['son_unix_name']."' AND cal_status = 'A'" ;
-			$res_entry = db_query($query_entry);
-			if($res_entry){
-				while($row_entry = db_fetch_array($res_entry)) {
-				$insert_entry = "INSERT INTO webcal_entry_user (cal_id,cal_login,cal_status) VALUES ('".$row_entry['cal_id']."','".$row_hierarchy['father_unix_name']."','A')";	
-				$res_insert_entry = db_query($insert_entry);
-				}
-			}
-		}	
-		
-	}  
-
-//admin
-	
-$query_flags = "SELECT value, user_id, group_id FROM user_group,role_setting WHERE role_setting.role_id = user_group.role_id AND role_setting.section_name = 'webcal'" ;				
-				//$query_flags = "SELECT admin_flags FROM user_group WHERE user_id = '".$params[0]."' AND group_id = '".$params[1]."'";
-				$res = db_query($query_flags);
-				if($res){
-						while( $row_flags = db_fetch_array($res)){
-						
-						
-						
-								//get user name :
-								$query_nom_boss = "SELECT unix_group_name FROM groups WHERE group_id = '".$row_flags['group_id']."' ";
-								$res_nom_boss = db_query($query_nom_boss);
-								$row_nom_boss = db_fetch_array($res_nom_boss);
-								
-								
-								$query_nom_user = "SELECT user_name FROM users WHERE user_id = '".$row_flags['user_id']."' ";
-								$res_nom_user = db_query($query_nom_user);
-								$row_nom_user = db_fetch_array($res_nom_user);
-								
-								//webcal admin flags
-								$query_flags = "SELECT COUNT(*) FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-								$res_count = db_query($query_flags);
-								$row_num = db_fetch_array($res_count);
-								
-								//select email
-								$query_mail ="SELECT cal_email FROM webcal_user WHERE  cal_login = '".$row_nom_boss['unix_group_name']."'";			
-								$res_mail = db_query($query_mail);
-								$row_mail = db_fetch_array($res_mail);	
-								
-								if(($row_num[0] != 1 ) && ($row_flags['value'] == 1)){
-								//recuperer le nom du user et du group
-								$insert_ass =  "INSERT INTO webcal_asst (cal_boss, cal_assistant) VALUES ('".$row_nom_boss['unix_group_name']."','".$row_nom_user['user_name']."')";	
-								$res_insert  = db_query($insert_ass);
-								
-								//we add email of the new admin
-								$mail = $row_mail['cal_email'].",".$row_nom_user['email'] ;
-								$update = "UPDATE webcal_user SET cal_email = '".$mail."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-								db_query($update);
-								}
-								elseif($row_num[0] == 1 && ($row_flags['value'] != 1)){
-								$del_ass = "DELETE FROM webcal_asst WHERE cal_boss = '".$row_nom_boss['unix_group_name']."' AND cal_assistant = '".$row_nom_user['user_name']."'";
-								$res_del = db_query($del_ass);
-								
-								//we del email of the old admin
-								$mail = str_replace(",".$row_nom_user['email'],"",$row_mail['cal_email']) ;
-								$update = "UPDATE webcal_user SET cal_email = '".$mail."' WHERE cal_login = '".$row_nom_boss['unix_group_name']."'" ;
-								db_query($update);	
-								}
-						}
-				}
-
-				
-
-
-?>

Copied: trunk/gforge/plugins/webcalendar/script/webcalendar-init.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/script/webcalendar-init.php)

Copied: trunk/gforge/plugins/webcalendar/www (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www)

Deleted: trunk/gforge/plugins/webcalendar/www/.project
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/.project	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/.project	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>webcalendar</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>net.sourceforge.phpeclipse.parserbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>net.sourceforge.phpeclipse.phpnature</nature>
-	</natures>
-</projectDescription>

Copied: trunk/gforge/plugins/webcalendar/www/.project (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/.project)

Deleted: trunk/gforge/plugins/webcalendar/www/AUTHORS
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/AUTHORS	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/AUTHORS	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,75 +0,0 @@
-Most of the code was written by Craig Knudsen <cknudsen at cknudsen.com>
-
-Other code (new features and bug fixes) provided by (and probably many others that I have inadvertantly missed):
-	Jukka Aittola <Jukka.Aittola at hut.fi>
-	Mike Baptiste <baptiste at cc-concepts.com>
-	Ralph Bossler <rbossler at gmx.de>
-	Toby Cabot <toby at toby.cabot@pobox.com>
-	Antonio Costa <accmdq at esoterica.pt>
-	Lachlan Cox <lachie at zip.com.au>
-	Matthew Crosby <mcrosby at marthon.org>
-	Dominik Fischer <dfischer at megla.de>
-	Tollef Fog Heen <tollef at add.no>
-	T.R. Fullhart <kayos at kayos.org>
-	Ken Harris <kharris at lhinfo.com>
-	Florian Helmberger <fh at enemy.org>
-	Michiel Holtkamp <michiel at reseau.nl>
-	Jeff Hoover <jhoov at thebusstop.net>
-	Lucie Houel <lyly134 at caramail.com>
-	Peter Huetmannsberger <huetmann at site38.ping.at>
-	Thomas James <tbjames at bellsouth.net>
-	Ian R. Justman <ianj at calweb.com>
-	Thorsten Klein <klein at lfm.rwth-aachen.de>
-	Ulrich Leodolter <ulrich at lab1.psy.univie.ac.at>
-	Benoit Maisonny <benoit at synclude.com>
-	Jonathan Mark <jhmark at xenops.com>
-	Ed Palmer <palmered at users.sourceforge.net>
-	Otto Paukner <Otto.Paukner at m-v-l.de>
-	Paul Reisdorf <preisdorf at binus.net>
-	Adam Roben <adam.roben at gmail.com>
-	David Rodrigues <drodrig at netextensions.com>
-	Adam Shantz <adamATadamshantzDOTcom>
-	Andy Skunza <askunza at dynamix-ltd.com>
-	Oliver Teuber <teuber at devicen.de>
-	Romuald Texier <romuald at idp9001.com>
-	Frederic Tyndiuk [email address suppressed]
-	Jan Willamowius <jan at mobile.de>
-	Vadim Zaliva <lord at crocodile.org>
-
-Translations:
-	Danish:
-		Allan Thraen <allan at 12go.dk>
-	Dutch:
-		Marcel van der Boom <marcel at hsdev.com>
-		Patrick Gutlich <pgutlich at casema.net>
-		Klaus Spithost <k.spithost at it-works.nl>
-	French:
-		Luc Capronnier
-		Olivier Piquerez <Piquerez at topd.ch>
-		Yves Moenner <yves.moenner at mailcity.com>
-		Romuald Texier <romualdt at free.fr>
-	German:
-		Markus Egartner <markus.egartner at kh.hallein.at>
-		Ralph Bossler <rbossler at gmx.de>
-		Peter Huetmannsberger <huetmann at site38.ping.at>
-	Italian:
-		Simone Cortesi <simone at cortesi.com>
-	Korean:
-		Joonyup Jeon <goodwill at wowbook.com>
-	Norwegian:
-		Pål Løberg/Magni Onsøien <initio at initio.no>
-	Portuguese:
-		Antonio Costa <accmdq at mail.esoterica.pt>
-		Nuno Lopes <nuno.lopes at maxitel.com>
-	Portuguese/Brazil:
-		Sérgio Oliveira <sloliv at terra.com.br>
-	Romanian:
-		Dan Protopopescu <protopop at physics.gla.ac.uk>
-	Russian:
-		Andre E. Bar'yudin <baryudin at pob.huji.ac.il>
-	Spanish:
-		Pedro Del Medico <pdmp at interhoster.com>
-	Swedish:
-		Jesper Thörn <jesper at thorn.as>
-	Turkish:
-		Atilla Kazanci <support at dig-it-berlin.de>

Copied: trunk/gforge/plugins/webcalendar/www/AUTHORS (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/AUTHORS)

Deleted: trunk/gforge/plugins/webcalendar/www/GPL.html
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/GPL.html	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/GPL.html	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,558 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU General Public License - GNU Project - Free Software Foundation (FSF)</TITLE>
-<LINK REV="made" HREF="mailto:webmasters at www.gnu.org">
-<BASE HREF="http://www.gnu.org/licenses/gpl.html">
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" VLINK="#9900DD">
-<H1>GNU General Public License</H1>
-<A HREF="/graphics/philosophicalgnu.html"><IMG SRC="/graphics/philosophical-gnu-sm.jpg"
-   ALT=" [image of a Philosophical GNU] "
-   WIDTH="160" HEIGHT="200"></A>
-
-<!-- Please keep this list alphabetical -->
-<!-- tower, gpl.ja.html is Japanese translation of THIS PAGE, -->
-<!-- NOT translation of GPL itself(gpl.ja.html contains the original --> 
-<!-- English version). So please do not remove the following. -->
-<!-- Thanks -mhatta -->
-<!-- The same for the Czech page. The entire text of GPL is not -->
-<!-- translated on this page. Thanks Sisao -->
-
-[ 
-  <A HREF="/licenses/gpl.cs.html">Czech</A>
-| <A HREF="/licenses/gpl.html">English</A>
-| <A HREF="/licenses/gpl.ja.html">Japanese</A>
-]
-
-<!-- It is best to not enumerate the translations here in a menu bar, -->
-<!-- It is best to have the users follow this link, so they have the FSF' -->
-<!-- explanation about translations being unofficial, etc. -->
-
-<P>
-<UL>
-  <LI><A HREF="/licenses/gpl-violation.html"><EM>What to do if you see a
-       possible GPL violation</EM></A>
-  <LI><A HREF="/licenses/translations.html"><EM>Translations
-       of the GPL</EM></A>
-  <LI><A HREF="/licenses/gpl-faq.html"><EM>GPL Frequently Asked Questions</EM></A>
-  <LI>The GNU General Public License (GPL)
-       <A HREF="/licenses/gpl.txt">in plain text format</A>
-  <LI>The GNU General Public License (GPL)
-       <A HREF="/licenses/gpl.texi">in Texinfo format</A>
-</UL>
-<P>       
-<HR>
-
-<P>
-
-<H2>Table of Contents</H2>
-<UL>
-
-  <LI><A NAME="TOC1" HREF="gpl.html#SEC1">GNU GENERAL PUBLIC LICENSE</A>
-<UL>
-<LI><A NAME="TOC2" HREF="gpl.html#SEC2">Preamble</A>
-<LI><A NAME="TOC3" HREF="gpl.html#SEC3">TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</A>
-<LI><A NAME="TOC4" HREF="gpl.html#SEC4">How to Apply These Terms to Your New Programs</A>
-
-</UL>
-</UL>
-
-<P>
-
-<HR>
-
-<P>
-
-
-
-<H2><A NAME="SEC1" HREF="gpl.html#TOC1">GNU GENERAL PUBLIC LICENSE</A></H2>
-<P>
-Version 2, June 1991
-
-</P>
-
-<PRE>
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-</PRE>
-
-
-
-<H2><A NAME="SEC2" HREF="gpl.html#TOC2">Preamble</A></H2>
-
-<P>
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-</P>
-<P>
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-</P>
-<P>
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-</P>
-<P>
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-</P>
-<P>
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-</P>
-<P>
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-</P>
-<P>
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-</P>
-<P>
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-</P>
-
-
-<H2><A NAME="SEC3" HREF="gpl.html#TOC3">TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</A></H2>
-
-
-<P>
-
-<STRONG>0.</STRONG>
- This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-<P>
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-<P>
-
-<STRONG>1.</STRONG>
- You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-<P>
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-<P>
-
-<STRONG>2.</STRONG>
- You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-<P>
-
-<UL>
-
-<LI><STRONG>a)</STRONG>
-     You must cause the modified files to carry prominent notices
-     stating that you changed the files and the date of any change.
-
-<P>
-<LI><STRONG>b)</STRONG>
-     You must cause any work that you distribute or publish, that in
-     whole or in part contains or is derived from the Program or any
-     part thereof, to be licensed as a whole at no charge to all third
-     parties under the terms of this License.
-
-<P>
-<LI><STRONG>c)</STRONG>
-     If the modified program normally reads commands interactively
-     when run, you must cause it, when started running for such
-     interactive use in the most ordinary way, to print or display an
-     announcement including an appropriate copyright notice and a
-     notice that there is no warranty (or else, saying that you provide
-     a warranty) and that users may redistribute the program under
-     these conditions, and telling the user how to view a copy of this
-     License.  (Exception: if the Program itself is interactive but
-     does not normally print such an announcement, your work based on
-     the Program is not required to print an announcement.)
-</UL>
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-<P>
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-<P>
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-<P>
-
-<STRONG>3.</STRONG>
- You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-
-<!-- we use this doubled UL to get the sub-sections indented, -->
-<!-- while making the bullets as unobvious as possible. -->
-<UL>
-
-<LI><STRONG>a)</STRONG>
-     Accompany it with the complete corresponding machine-readable
-     source code, which must be distributed under the terms of Sections
-     1 and 2 above on a medium customarily used for software interchange; or,
-
-<P>
-<LI><STRONG>b)</STRONG>
-     Accompany it with a written offer, valid for at least three
-     years, to give any third party, for a charge no more than your
-     cost of physically performing source distribution, a complete
-     machine-readable copy of the corresponding source code, to be
-     distributed under the terms of Sections 1 and 2 above on a medium
-     customarily used for software interchange; or,
-
-<P>
-<LI><STRONG>c)</STRONG>
-     Accompany it with the information you received as to the offer
-     to distribute corresponding source code.  (This alternative is
-     allowed only for noncommercial distribution and only if you
-     received the program in object code or executable form with such
-     an offer, in accord with Subsection b above.)
-</UL>
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-<P>
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-<P>
-
-<STRONG>4.</STRONG>
- You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-<P>
-
-<STRONG>5.</STRONG>
- You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-<P>
-
-<STRONG>6.</STRONG>
- Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-<P>
-
-<STRONG>7.</STRONG>
- If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-<P>
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-<P>
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-<P>
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-<P>
-
-<STRONG>8.</STRONG>
- If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-<P>
-
-<STRONG>9.</STRONG>
- The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-<P>
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-<P>
-
-
-<STRONG>10.</STRONG>
- If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-
-
-<P><STRONG>NO WARRANTY</STRONG></P>
-
-<P>
-
-<STRONG>11.</STRONG>
- BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-<P>
-
-<STRONG>12.</STRONG>
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-<P>
-
-
-<H2>END OF TERMS AND CONDITIONS</H2>
-
-
-
-<H2><A NAME="SEC4" HREF="gpl.html#TOC4">How to Apply These Terms to Your New Programs</A></H2>
-
-<P>
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-</P>
-<P>
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-</P>
-
-<PRE>
-<VAR>one line to give the program's name and an idea of what it does.</VAR>
-Copyright (C) <VAR>yyyy</VAR>  <VAR>name of author</VAR>
-
-This program 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.
-
-This program 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 this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-</PRE>
-
-<P>
-Also add information on how to contact you by electronic and paper mail.
-
-</P>
-<P>
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-</P>
-
-<PRE>
-Gnomovision version 69, Copyright (C) <VAR>year</VAR> <VAR>name of author</VAR>
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
-type `show w'.  This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c' 
-for details.
-</PRE>
-
-<P>
-The hypothetical commands <SAMP>`show w'</SAMP> and <SAMP>`show c'</SAMP> should show
-the appropriate parts of the General Public License.  Of course, the
-commands you use may be called something other than <SAMP>`show w'</SAMP> and
-<SAMP>`show c'</SAMP>; they could even be mouse-clicks or menu items--whatever
-suits your program.
-
-</P>
-<P>
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-</P>
-
-<PRE>
-Yoyodyne, Inc., hereby disclaims all copyright
-interest in the program `Gnomovision'
-(which makes passes at compilers) written 
-by James Hacker.
-
-<VAR>signature of Ty Coon</VAR>, 1 April 1989
-Ty Coon, President of Vice
-</PRE>
-
-<P>
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
-<HR>
-
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-FSF &amp; GNU inquiries &amp; questions to
-<A HREF="mailto:gnu at gnu.org"><EM>gnu at gnu.org</EM></A>.
-Other <A HREF="/home.html#ContactInfo">ways to contact</A> the FSF.
-<P>
-Comments on these web pages to
-<A HREF="mailto:webmasters at www.gnu.org"><EM>webmasters at www.gnu.org</EM></A>,
-send other questions to
-<A HREF="mailto:gnu at gnu.org"><EM>gnu at gnu.org</EM></A>.
-<P>
-Copyright notice above.<BR>
-Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA  02111,  USA
-<P>
-Updated:
-<!-- hhmts start -->
-Last modified: Sun Jul 15 13:13:30 CEST 2001
-<!-- hhmts end -->
-<HR>
-</BODY>
-</HTML>

Copied: trunk/gforge/plugins/webcalendar/www/GPL.html (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/GPL.html)

Deleted: trunk/gforge/plugins/webcalendar/www/NEWS
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/NEWS	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/NEWS	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,279 +0,0 @@
-Version 1.0.4 (07 Jun 2006)
-  - Security fix: do not allow setting of "includedir" via URL when
-    register_globals is enabled in php.ini
-  - Updated Portugues translation
-Version 1.0.3 (11 Apr 2006)
-  - Patch 1456375: Day view - "Description" not translated, improper
-    handling of HTML in description
-  - Fixed bug 1444923: system settings error on save when ovrd=1 is used
-  - Fixed bug 1420859: Problems with overriding conflict
-  - Fixed bug 1445535: tables-db2.sql NULL usage was incorrect
-  - Patch 1279537: Don't display confidential events in upcoming.php
-  - Fixed bug 1406428: Bug in endhour
-  - Fixed bug 1438181: DBI Interbase-Firebird connection call has
-    wrong parameters
-  - Fixed bug 1279804: send_reminders.php fails in v1.0.1
-  - Fixed bug 1417585: vCal export of forever repeating events fails for Palm
-  - Fixed bug 1417529: Can't change public access layers
-  - Fixed bug 1397766: Tomorrow Report fails to This Week
-  - Fixed bug 1374014: Prefs page displays option to modify
-    Public Access calendar..
-  - Fixed bug 1382217 Glitch in handling of public access prefs
-  - Added support for DB2
-  - The following translations were updated:
-    Greek (new), Hungarian
-Version 1.0.2 (06 Dec 2005)
-  - Fixed vuln in layers: published vulnerability in layers_toggle.php
-    was fixed
-  - Security fixes: fixes for activity_log.php, export_handler.php,
-    edit_template.php, pref_handler.php and admin_handler.php
-    that deal with SQL Injection
-  - Fixed bug 1349621: Information disclosure vulnerabililty on failed login
-  - Fixed bug 1353363: publish.php logic error for public user?
-  - Fixed bug 1328589: typo in del_entry for read-only calendars.
-  - Added new time range options for reports: next 14/30/60/90/180/365 days
-    This allows reports to show events starting with current date
-  - Fixed bug: undefined variable warning in export_handler.php
-  - Fixed the following bug reports on SourceForge:
-    1296294: Javascript error when saving with empty description on IE
-    1265575: Bug in get_all_dates()
-  - Other bugs fixed:
-    + Added Romanian, Turkish, Welsh to config.php in places where they were
-      missing.
-  - New Features / Enhancements / Changes:
-  - The following translations were updated:
-    Czech, German, Polish
-Version 1.0.1 (19 Aug 2005)
-  - Fixed the following bug reports on SourceForge:
-      1221434: Improved iCal import support for BYMONTHDAY in ics
-      1261571: Overriding a conflict when name has double quotes
-      1233798: Catagory settings for Boss/Assistant not working
-      1245755: Unbalanced span tags
-      1211309: Notification message language incorrect
-      1204229: "Untimed event" default broken since bug 1202127 fix
-      1205680: upcoming.php was including unapproved.  will now use
-        user preferences for displaying unapproved.
-      1212667: Install script - Database Type Problem
-      1218113: iCal ATTENDEE error if event is deleted
-  - Other bugs fixed:
-    - Fixed bug: use of & in report.php and view_entry.php
-    + Fixed bug: include path problems for opening settings.php file
-    + Fixed security: exploit allows execution of code downloaded from
-      remote server
-    + URLs in month.php did not include '?'
-    + Category was lost wan clicking on prev/next month in month.php
-    + Fixed login looping related to register_long_arrays
-  - New Features / Enhancements / Changes:
-    + Applied patch 1171807: reminder sent late if cron run at exact
-      second of reminder (was accidentally not included in 1.0.0)
-  - The following translations were updated:
-    + Danish, French, German, Norwegian, Polish, Portuguese_BR
-
-Version 1.0.0 (17 May 2005) aka "Buster"
-  - Fixed the following bug reports on SourceForge:
-      1202127: [ 1187734 ] Timezone offset problems still exist
-      1201821: Bypass user_sees_only_his_groups
-      1193835: Creator cannot "edit" a nonuser-event after Admin changes it.
-      1193579: Untimed shows up wrong in edit page
-      1189515: Possible to create blank usernames
-      1190687: users.php called as public
-      1190699: export.php available to public
-      1190704: public can access assistant_edit.php
-      1103215: Invalid work hours
-      1187734: Timezone offset problem
-      1120897: Conflict with exceptions
-      1181682: Report with no name entered -> phantom report!
-      1179423: private events displayed on reports
-      1183714: Translation error
-      1154432: vCal import from Mozilla fails to translate quoted-printable
-      1176164: iCalendar import fatally corrupts database
-      1181682: Reports with just spaces for a name cannot be edited
-      1179403: Availability selection fails when Time Format =24
-      1065461: timezone offset & all-day events
-      1107253: time zone offset
-      1140453: Time zone offset in email notifications
-      1148602: External Recipients with same name fails
-      1160167: 12AM Events cause display problems in edit_entry.php
-      1158769: Category lost when modifing event by Admin
-      1168686: Month display collides with minicals on Safari
-      1168682: RC3 Language Detection Broken for Safari.
-      1169403: Public Access not default selected if Particiapants not shown. 
-      1169078: Bad function call in import_handler.php
-      1168092: Overlapping events display problem
-      1167281: View_l loses colour for "today"
-      1167790: class="selectedday" assignments in other than day.php
-      1162486: Path exposure issue with view_entry.php
-
-  - Other bugs fixed:
-    + Fixed problem with ical import weekly BYDAY parsing in import_ical.php
-    + Fixed problem with missing $cat_id in week and day URLs in month.php
-    + Fixed problem with second edit of a single event in a repeating series 
-      losing linkage with the original event.
-    + Fixed problem with views_edit.php, select groups not returning menbers
-    + Fixed problem with 12AM event not adding hour=0 to URL in week.php
-    + Fixed day.php rendering problem in Safar
-    + Applied bug fix 1151442: Overlapping events display error in week.php
-
-  - New Features / Enhancements / Changes:
-    + Split import/export back to two separate links & pages
-    + Moved contents of scheduling tab to details tab
-    + Updated install/index.php to improve security and display advanced php info
-    + Added new default webcal_config values to all sql table definition files
-    + Removed most instances of htmlentities as unneeded
-    + Admin no longer needs to approve Public events that they create
-    + Added option to set LDAP_OPT_PROTOCOL_VERSION in user-ldap.php
-    + Updated install web page to work better on Windows systems.
-      Added display of current PHP settings.
-    + When viewing a report, if allow_html_description is enabled but no HTML
-      is found in an event description, use nl2br to preserve plain text
-      formatting.
-
-  - The following translations were updated:
-    + Danish, Finnish, German, French, Japanese, Norwegian, Polish
-
----------------------------------------------------------------------------
-
-Version 1.0RC3 (11 Mar 2005)
-  - Fixed the following bug reports on SourceForge:
-      1156729: Global-view with no valid user creates a non-translatable message
-      1152863: Japanese strings munged by reports.php and upcoming.php
-      1124461: Apostrophe in Text Aborts Translation
-      1154854: Nonuser cals not showing up in views
-      1154007: Highlight today in Year view
-      1088772: Nonuser calendar w/ Public as default participant
-      1145390: Merge arrays with array_merge vs + in view_t.php
-      1151442: Overlapping events display error in day.php
-      1146037: Availibility legend size not dynamic and not centered in IE.
-      1148603: Assistants can't view Bosses Unapproved Events.
-      1145342: Category selection not tranferred to edit_entry page.
-      1118121: get_admins in user-ldap has bad search
-      1123508: RC3 browser language detection always returns none.
-      1112787: missing charset in upcoming.php
-  - Other bugs fixed:
-    + Fixed problem with upcoming.php header. xml:lang and lang were set to full 
-      LANGUAGE value, not abbreviation.
-    + Fixed problem with upcoming.php with "You are not Authorized" error message
-      being sent without a header. 
-    + Fixed problem with popups.php with long text strings going off screen.
-      Maximum width is now configurable.
-    + Fixed issue with Application Name containing ? characters in logon.php.
-      If Application Name = "Title" then translate, else use Admin defined 
-      name and run through htmlspecialchars
-    + Fixed issues with display_small_month URLs. Extra & if no $user specified.
-    - Add meta tag for charset since MSIE requires it.
-    + Fixed broken advanced search that would not allowing searching other
-      users' calendars.  Also added searching non-user calendars.
-    + Added javascript that enables visibility of the start/end time or
-      duration on the edit_entry page from availability.php
-    + Fixed printer friendly view problem. With refresh on, the refresh URL
-      reverted to the regular page
-    + Fixed date_selection_html function to include values for day control
-    + Purge events was not deleting from webcal_entry_ext_user table
-    + Fixed issues with ODBC returning 'invalid db_type'
-    + Fixed issue where month.php and mini-calendar today highlight
-      based on server time
-  - New Features / Enhancements / Changes:
-    + Added 'Public Access' to Manage Calendar of: list, if Admin. 
-    + Allow user-created views to be the default view set in user preferences.
-      After saving or deleting an event, the user will return to this page.
-    + Replaced popups.php code with new knoppix based code. This should eliminate
-      the problems with popups going off screen. Popups also follow the cursor now,
-      but can be disabled in the file.
-    + Replaced all instances of forms[0] in javascript with the real form
-      names. This will allow WebCalendar to co-exist with other forms on
-      the same page.
-    + Added patch to allow TLS with LDAP
-    + Added patch 900968: Add outlook-style availability popup
-    + Added global views (available to all users)
-    + Added option to select all users for a view (rather than having
-      to select all users in the list).  If users are added later, they
-      will be automatically included in the view.
-    + Converted comments for use with phpDocumentor
-  - The following translations were updated:
-    + Dutch, Japanese (utf8, euc-jp, shift-jis), Spanish, German
-
----------------------------------------------------------------------------
-
-Version 1.0RC2 (09 Feb 2005)
-  - Fixed the following bugs reports on SourceForge:
-      1116008: Got "invalid user" error when clicking on '+' icon
-               to add new event
-  - Other bugs fixed:
-    + Fixed a problem with the Repeat Tab on edit_entry page, if disabled, 
-      the SAVE button was hidden as well.
-  - New Features / Enhancements / Changes:
-    + Modified the way settings.php file is read to handle unix/dos/mac
-      format and also check main directory and include directory.
-    + In day and week view, time slots with events will now use a different
-      background color than time slots that are empty.  (This restores
-      how this worked a couple of versions ago.)
-    + Many code changes were made to prevent the "undefined variable"
-      warning that users may get if they have the PHP error_reporting
-      setting enabled.
-    + Documentation updated to System Administrator Guide including
-      new instructions for setting up reminders on Windows.
-  - The following translations were updated:
-    + Czech
-
----------------------------------------------------------------------------
-
-Version 1.0RC1 (04 Feb 2005)
-  - Fixed the following bugs reports on SourceForge:
-       824268: Emails notifications used wront timezone
-       931096: Restrict views and view edits to owner of that view
-       986774: Editing category as assistant was not working
-      1061746: layout issues with views (daily)
-      1066440: End Time increased by timezone offset
-      1085337: Categories combo-box in month.php in assistant mode
-      1088857: SQL bug affecting ODBC users when viewing event
-      1101823: Problem importing palm desktop datebook.dat file
-      1102167: custom header when non-admin user
-      1109141: Email notifications where using sender language
-               rather than recipient language
-      1109323: Error in LDAP function for getting list of admins
-      1087604: Vanishing Layers / cookies
-      1086357: repeating details display
-      1085846: SQL error in when listing users on some databases
-      1085971: repeat tab does not display details
-      1074403: Day View is not accounting for server offset
-  - Other bugs fixed:
-    + Security fix: Fixed protential problem if a user attempts to login
-      with a username that has charaters that will affect the database.
-    + When using web-based authentication, two database connections
-      were being opened and only one was being closed.
-    + vCal import was completely broken
-    + Fixed problem using htmlarea where event description would not be saved
-    + View Event page would not display links to edit/delete under
-      some circumstances
-    + Fixes for WN web server
-    + Removed duplicate trailer from edit user page (when using a custom
-      trailer)
-  - New Features / Enhancements:
-    + MS SQL Server is now suppported
-    + If php.ini setting for "file_uploads" is not enabled, then indicate
-      this on the import page
-    + Streamlined layers.php & made layers only be displayed when layers
-      are enabled
-    + Updated Admin docs for content & xhtml/css validity
-    + Added new documentation in docs directory:
-      WebCalendar-Functions.html
-      WebCalendar-DeveloperGuide.html
-      WebCalendar-Styling.html
-    + Fixed various xhtml/css issues
-    + Updated reading of settings file to better handle when file
-      is not in exact format we are expecting.
-    + Added database sanity check
-    + Updated default color scheme (Will only apply to new installs)
-    + When html is allowed in event description, still replace newline with
-      html break in view page and event popup if the user did not use any html.
-    + Fixing users.php so it only shows a single user's info when the user
-      isn't an admin
-    + Added ability to authenticate users with postnuke user info.
-    + Added support for automatic gradient background images for table cells
-  - The following translations were updated:
-    + Japanese (with support for 3 character sets)
-    + Romanian (new)
-    + French
-    + German
-    + Italian
-    + Norwegian

Copied: trunk/gforge/plugins/webcalendar/www/NEWS (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/NEWS)

Deleted: trunk/gforge/plugins/webcalendar/www/README.html
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/README.html	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/README.html	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html
-	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-	"DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-    <head>
-<title>WebCalendar README</title>
-<style type="text/css">
-<!--
-body {
-	background-color: #FFFFFF;
-	font-family: arial, verdana;
-}
-a {
-	text-decoration: none;
-}
-dt {
-	font-weight: bold;
-}
-tr {
-	background-color: #606080;
-}
-td {
-	background-color: #E0E0E0;
-        vertical-align: top;
-}
-h3 {
-	background-color: #191970;
-	color: #FFFFFF;
-	padding: 5px;
-}
--->
-</style>
-</head>
-<body>
-<h2>WebCalendar README</h2>
-
-<table style="border-width:0px;" cellpadding="10">
-<tr><td style="font-weight:bold;">
-	URL:</td><td>
-	<a href="http://www.k5n.us/webcalendar.php">www.k5n.us/webcalendar.php</a>
-</td></tr>
-
-<tr><td style="vertical-align:top; font-weight:bold;">Developers:</td>
-<td valign="top">Craig Knudsen,
-<script language="JavaScript">
-document.write ("<a href=\"mailto:cknudsen" );
-document.write ( "@cknudsen.com\">cknudsen@" );
-document.writeln ( "cknudsen.com</a>," );
-</script>
-<a href="http://www.k5n.us/">http://www.k5n.us</a><br />
-	Jeff Hoover<br />
-	Adam Shantz, <a href="mailto:adamATadamshantzDOTcom">adamATadamshantzDOTcom</a>,
-	<a href="http://adamshantz.com">adamshantz.com</a>
-</td></tr>
-
-<tr><td style="font-weight:bold;">Documentation:</td><td>
-	<a href="docs/WebCalendar-SysAdmin.html">System Administrator's Guide</a> (Installation instructions, FAQ)<br />
-	User Manual (<a href="http://sourceforge.net/project/showfiles.php?group_id=3870&amp;package_id=112017">download</a>)<br />
-	<a href="UPGRADING.html">Upgrading Instructions</a>
-	(<strong>Required</strong> when upgrading from an older version)<br />
-	<a href="GPL.html">License</a><br />
-	<a href="ChangeLog">History of Changes</a><br />
-	<a href="http://webcalendar.sourceforge.net/demo/">Online Demo</a>
-</td></tr>
-
-<tr><td style="font-weight:bold;">Developer Resources:</td><td>
-	<a href="http://sourceforge.net/projects/webcalendar/">Sourceforge.net Home</a><br />
-        <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/webcalendar/webcalendar/docs/WebCalendar-Functions.html?rev=HEAD&amp;content-type=text/html">WebCalendar-Functions.html</a><br/>
-        <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/webcalendar/webcalendar/docs/WebCalendar-Database.html?rev=HEAD&amp;content-type=text/html">WebCalendar-Database.html</a><br/>
-        <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/webcalendar/webcalendar/docs/WebCalendar-DeveloperGuide.html?rev=HEAD&amp;content-type=text/html">WebCalendar-DeveloperGuide.html</a><br/>
-
-	<a href="http://sourceforge.net/forum/forum.php?forum_id=11588">Help/Troubleshooting Forum</a><br />
-	<a href="http://sourceforge.net/forum/forum.php?forum_id=11587">Open Discussion Forum</a><br />
-	<a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=103870">Bug Reports</a><br />
-	<a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870">Patches</a><br />
-	<a href="https://sourceforge.net/project/showfiles.php?group_id=3870">Latest Version</a>
-</td></tr>
-</table>
-
-<h3>Note</h3>
-	<p>For a complete feature list, system requirements, and installation instructions, please see the <a href="docs/WebCalendar-SysAdmin.html">WebCalendar System Administrator's Guide</a>.</p>
-
-<h3>Outstanding issues</h3>
-<ul>
-	<li>Updated translatations (some are slightly out of date)</li>
-</ul>
-
-<h3>Possible features for future releases</h3>
-<ul>
-	<li>See <a href="http://www.k5n.us/webcalendar.php?topic=Plans">Plans</a> on the WebCalendar home page.</li>
-</ul>
-</body>
-</html>

Copied: trunk/gforge/plugins/webcalendar/www/README.html (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/README.html)

Deleted: trunk/gforge/plugins/webcalendar/www/UPGRADING.html
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/UPGRADING.html	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/UPGRADING.html	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,477 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "DTD/xhtml1-transitional.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-	    <head>
-<title>WebCalendar Upgrading Notes</title>
-<style type="text/css">
-	body {
-		font-family: arial, verdana;
-		background-color: #FFFFFF;
-	}
-	a {
-		text-decoration: none;
-	}
-	dt {
-		font-weight: bold;
-	}
-	tr {
-		background-color: #606080;
-		color: #F0F0F0;
-	}
-	td {
-		background-color: #C0C0C0;
-	}
-	.colorheader {
-		background-color: #6060C0;
-	}
-	.valid {
-		border-width: 0px;
-	}
-	pre {
-		font-family: courier, monospace;
-		border: 1px solid blue;
-		background-color: #EEEEFF;
-		padding: 4px;
-		margin-left: 25px;
-		margin-right: 25px;
-	}
-</style>
-</head>
-<body>
-<h2>WebCalendar Upgrading Notes</h2>
-
-<p>Below are the steps needed to upgrade from a previous version.
-Select your current version from the list below. If you are more 
-than one version behind (i.e. the current version is v0.9.45, 
-and you're using 0.9.39), click the "next.." link at the end of 
-each section to move to the next version. Always follow the versions 
-in sequence.</p>
-<hr />
-
-<h4>I'm using..</h4>
-<ul>
-	<li>
-		<a href="UPGRADING.html#1dot0RC1">0.9.45 or 1.0RC1</a></li><li>
-		<a href="UPGRADING.html#dot945">0.9.44</a></li><li>
-		<a href="UPGRADING.html#dot944">0.9.43</a></li><li>
-		<a href="UPGRADING.html#dot943">0.9.42</a></li><li>
-		<a href="UPGRADING.html#dot942">0.9.41</a></li><li>
-		<a href="UPGRADING.html#dot941">0.9.40</a></li><li>
-		<a href="UPGRADING.html#dot940">0.9.39</a></li><li>
-		<a href="UPGRADING.html#dot939">0.9.38</a></li><li>
-		<a href="UPGRADING.html#dot938">0.9.37</a></li><li>
-		<a href="UPGRADING.html#dot937">0.9.36 or 0.9.35</a></li><li>
-		<a href="UPGRADING.html#dot935">0.9.34 - 0.9.27</a></li><li>
-		<a href="UPGRADING.html#dot927">0.9.26 - 0.9.22</a></li><li>
-		<a href="UPGRADING.html#dot922">0.9.21 - 0.9.14</a></li><li>
-		<a href="UPGRADING.html#dot914">0.9.13 or 0.9.12</a></li><li>
-		<a href="UPGRADING.html#dot912">0.9.11 - 0.9.07</a></li><li>
-		<a href="UPGRADING.html#dot907">0.9.06 - 0.9.01</a></li><li>
-		<a href="UPGRADING.html#dot901">0.9</a>
-	</li>
-</ul>
-<hr />
-
-<h4><a id="dot901">To upgrade from v0.9 to v0.9.01:</a></h4>
-<p>You need to create the table cal_user_pref in tables.sql. 
-You need to create the table cal_entry_user in tables.sql that 
-was mistakenly created as "cal_event_user" in the 0.9 release.</p>
-<a href="UPGRADING.html#dot907">next..</a>
-<hr />
-
-<h4><a id="dot907">To upgrade from v0.9.01 to v0.9.07:</a></h4>
-<p>Entirely new tables are used. Use the following commands to 
-convert your existing MySQL tables to the new tables:</p>
-<pre>
-cd tools
-./upgrade_to_0.9.7.pl
-mysql intranet &lt; commands.sql
-</pre>
-<p>where "intranet" is the name of the MySQL database that contains 
-your WebCalendar tables.</p>
-<a href="UPGRADING.html#dot912">next..</a>
-<hr />
-
-<h4><a id="dot912">To upgrade from v0.9.07 - v0.9.11 to v0.9.12:</a></h4>
-<p>To fix a bug in the handing of events at midnight, all the 
-entries with NULL for cal_time are changed to -1. Use the 
-following SQL command:</p>
-	<pre>update webcal_entry set cal_time = -1 where cal_time is null;</pre>
-<a href="UPGRADING.html#dot914">next..</a>
-<hr />
-
-<h4><a id="dot914">To upgrade from v0.9.12 or v0.9.13 to v0.9.14:</a></h4>
-<p>A new table was added to support repeating events. Look at 
-tables-mysql.sql, tables-oracle.sql, or tables-postgres.sql. 
-Execute the SQL for creating the webcal_entry_repeats. For MySQL, 
-the SQL is:</p>
-<pre>
-CREATE TABLE webcal_entry_repeats (
-	cal_id INT DEFAULT '0' NOT NULL,
-	cal_type VARCHAR(20),
-	cal_end INT,
-	cal_frequency INT DEFAULT '1',
-	cal_days CHAR(7),
-	PRIMARY KEY (cal_id)
-);
-</pre>
-<a href="UPGRADING.html#dot922">next..</a>
-<hr />
-
-<h4><a id="dot922">To upgrade from v0.9.14 - v0.9.21 to v0.9.22:</a></h4>
-<p>A new table was added to support layering. Look at 
-tables-mysql.sql, tables-oracle.sql, or tables-postgres.sql. 
-Execute the SQL for creating the webcal_entry_repeats. For MySQL, 
-the SQL is:</p>
-<pre>
-CREATE TABLE webcal_user_layers (
-	cal_layerid INT DEFAULT '0' NOT NULL,
-	cal_login varchar(25) NOT NULL,
-	cal_layeruser varchar(25) NOT NULL,
-	cal_color varchar(25) NULL,
-	cal_dups CHAR(1) DEFAULT 'N',
-	PRIMARY KEY ( cal_login, cal_layeruser )
-);
-</pre>
-<a href="UPGRADING.html#dot927">next..</a>
-<hr />
-
-<h4><a id="dot927">To upgrade from v0.9.22 - v0.9.26 to v0.9.27:</a></h4>
-<p>Two new tables were added for custom event fields and reminders. 
-Look at tables-mysql.sql, tables-oracle.sql, or tables-postgres.sql. 
-Execute the SQL for creating webcal_site_extras and webcal_reminder_log. 
-For MySQL and PostgreSQL, the SQL is:</p>
-<pre>
-CREATE TABLE webcal_site_extras (
-	cal_id INT DEFAULT '0' NOT NULL,
-	cal_name VARCHAR(25) NOT NULL,
-	cal_type INT NOT NULL,
-	cal_date INT DEFAULT '0',
-	cal_remind INT DEFAULT '0',
-	cal_data TEXT,
-	PRIMARY KEY ( cal_id, cal_name, cal_type )
-);
-CREATE TABLE webcal_reminder_log (
-	cal_id INT DEFAULT '0' NOT NULL,
-	cal_name VARCHAR(25) NOT NULL,
-	cal_event_date INT NOT NULL DEFAULT 0,
-	cal_last_sent INT NOT NULL DEFAULT 0,
-	PRIMARY KEY ( cal_id, cal_name, cal_event_date )
-);
-</pre>
-<p>For Oracle, the SQL is:</p>
-<pre>
-CREATE TABLE webcal_site_extras (
-	cal_id INT DEFAULT '0' NOT NULL,
-	cal_name VARCHAR(25) NOT NULL,
-	cal_type INT NOT NULL,
-	cal_date INT DEFAULT '0',
-	cal_remind INT DEFAULT '0',
-	cal_data LONG,
-	PRIMARY KEY ( cal_id, cal_name, cal_type )
-);
-CREATE TABLE webcal_reminder_log (
-	cal_id INT DEFAULT '0' NOT NULL,
-	cal_name VARCHAR(25) NOT NULL,
-	cal_event_date INT NOT NULL DEFAULT 0,
-	cal_last_sent INT NOT NULL DEFAULT 0,
-	PRIMARY KEY ( cal_id, cal_name, cal_event_date )
-);
-</pre>
-<p>You will also need to setup the tools/send_reminders.php script 
-to be run periodically. I would recommend once an hour. For 
-Linux/UNIX, this is simple. Just use cron and add a line to 
-your crontab file that looks like:</p>
-	<pre>1 * * * * cd /some/directory/webcalendar/tools; ./send_reminders.php</pre>
-<p>This will tell cron to run the script at one minute after the hour. 
-Windows users will have to find another way to run the script. 
-There are ports/look-a-likes of cron for Windows, so look around.</p>
-<a href="UPGRADING.html#dot935">next..</a>
-<hr />
-
-<h4><a id="dot935">To upgrade from v0.9.27 - v0.9.34 to v0.9.35:</a></h4>
-<p>Six new tables were added for group support, views, system 
-settings and activity logs. Look at tables-mysql.sql, 
-tables-oracle.sql, or tables-postgres.sql for these 
-new tables: webcal_group, webcal_group_user, 
-webcal_view, webcal_view_user, wecbal_config, webcal_entry_log. 
-After adding these tables, be sure to go to the System Settings page 
-(admin.php) since you will be missing some config stuff in your 
-database that you can add from the System Settings page. 
-For MySQL and PostgreSQL, the SQL is:</p>
-<pre>
-CREATE TABLE webcal_group (
-	cal_group_id INT NOT NULL,
-	cal_owner VARCHAR(25) NULL,
-	cal_name VARCHAR(50) NOT NULL,
-	cal_last_update INT NOT NULL,
-	PRIMARY KEY ( cal_group_id )
-);
-CREATE TABLE webcal_group_user (
-	cal_group_id INT NOT NULL,
-	cal_login VARCHAR(25) NOT NULL,
-	PRIMARY KEY ( cal_group_id, cal_login )
-);
-CREATE TABLE webcal_view (
-	cal_view_id INT NOT NULL,
-	cal_owner VARCHAR(25) NOT NULL,
-	cal_name VARCHAR(50) NOT NULL,
-	cal_view_type CHAR(1),
-	PRIMARY KEY ( cal_view_id )
-);
-CREATE TABLE webcal_view_user (
-	cal_view_id INT NOT NULL,
-	cal_login VARCHAR(25) NOT NULL,
-	PRIMARY KEY ( cal_view_id, cal_login )
-);
-CREATE TABLE webcal_config (
-	cal_setting VARCHAR(50) NOT NULL,
-	cal_value VARCHAR(50) NULL,
-	PRIMARY KEY ( cal_setting )
-);
-CREATE TABLE webcal_entry_log (
-	cal_log_id INT NOT NULL,
-	cal_entry_id INT NOT NULL,
-	cal_login VARCHAR(25) NOT NULL,
-	cal_type CHAR(1) NOT NULL,
-	cal_date INT NOT NULL,
-	cal_time INT NULL,
-	cal_text TEXT,
-	PRIMARY KEY ( cal_log_id )
-);
-</pre>
-<a href="UPGRADING.html#dot937">next..</a>
-<hr />
-
-<h4><a id="dot937">To upgrade from v0.9.35 or v0.9.36 to v0.9.37:</a></h4>
-<p>The webcal_entry_log table was modified, and a new table 
-webcal_entry_repeats_not was created. Use the following SQL 
-to modify your table for MySQL and PostgreSQL:</p>
-<pre>
-ALTER TABLE webcal_entry_log ADD cal_user_cal VARCHAR(25);
-CREATE TABLE webcal_entry_repeats_not (
-	cal_id INT NOT NULL,
-	cal_date INT NOT NULL,
-	PRIMARY KEY ( cal_id, cal_date )
-);
-</pre>
-<a href="UPGRADING.html#dot938">next..</a>
-<hr />
-
-<h4><a id="dot938">To upgrade from v0.9.37 to v0.9.38:</a></h4>
-<p>The webcal_entry_user table was modified, and a new table 
-webcal_categories was created. Use the following SQL 
-to modify your table for MySQL and PostgreSQL:</p>
-<pre>
-ALTER TABLE webcal_entry_user ADD cal_category INT DEFAULT NULL;
-CREATE TABLE webcal_categories (
-	cat_id INT NOT NULL,
-	cat_owner VARCHAR(25),
-	cat_name VARCHAR(80) NOT NULL,
-	PRIMARY KEY ( cat_id )
-);
-</pre>
-<a href="UPGRADING.html#dot939">next..</a>
-<hr />
-
-<h4><a id="dot939">To upgrade from v0.9.38 to v0.9.39:</a></h4>
-<p>The names of the date settings in the database were modified. 
-All old data settings need to be removed from the database.</p>
-<pre>
-DELETE FROM webcal_config WHERE cal_setting LIKE 'DATE_FORMAT%';
-DELETE FROM webcal_user_pref WHERE cal_setting LIKE 'DATE_FORMAT%';
-</pre>
-<a href="UPGRADING.html#dot940">next..</a>
-<hr />
-
-<h4><a id="dot940">To upgrade from v0.9.39 to v0.9.40:</a></h4>
-<p>Two new tables were created: webcal_asst and webcal_entry_ext_user. 
-And the column cal_ext_for_id was added to the webcal_entry table. 
-Use the following SQL for MySQL and PostgreSQL:</p>
-<pre>
-CREATE TABLE webcal_asst (
-	cal_boss VARCHAR(25) NOT NULL,
-	cal_assistant VARCHAR(25) NOT NULL,
-	PRIMARY KEY ( cal_boss, cal_assistant )
-);
-CREATE TABLE webcal_entry_ext_user (
-	cal_id INT DEFAULT 0 NOT NULL,
-	cal_fullname VARCHAR(50) NOT NULL,
-	cal_email VARCHAR(75) NULL,
-	PRIMARY KEY ( cal_id, cal_fullname )
-);
-ALTER TABLE webcal_entry ADD cal_ext_for_id INT NULL;
-</pre>
-<p>For Oracle, use VARCHAR2 instead of VARCHAR.</p>
-<a href="UPGRADING.html#dot941">next..</a>
-<hr />
-
-<h4><a id="dot941">To upgrade from v0.9.40 to v0.9.41:</a></h4>
-<p>One new table was added: webcal_nonuser_cals. 
-Use the following SQL for MySQL and PostgreSQL:</p>
-<pre>
-CREATE TABLE webcal_nonuser_cals (
-	cal_login VARCHAR(25) NOT NULL,
-	cal_lastname VARCHAR(25),
-	cal_firstname VARCHAR(25),
-	cal_admin VARCHAR(25) NOT NULL,
-	PRIMARY KEY ( cal_login )
-);
-</pre>
-<p>For Oracle, use VARCHAR2 instead of VARCHAR and LONG instead of TEXT.</p>
-<a href="UPGRADING.html#dot942">next..</a>
-<hr />
-
-<h4><a id="dot942">To upgrade from v0.9.41 to v0.9.42:</a></h4>
-<p>Three new tables were added: webcal_report, 
-webcal_report_template, and webcal_import_data. 
-Use the following SQL for MySQL and PostgreSQL:</p>
-<pre>
-CREATE TABLE webcal_report (
-	cal_login VARCHAR(25) NOT NULL,
-	cal_report_id INT NOT NULL,
-	cal_is_global CHAR(1) DEFAULT 'N' NOT NULL,
-	cal_report_type VARCHAR(20) NOT NULL,
-	cal_include_header CHAR(1) DEFAULT 'Y' NOT NULL,
-	cal_report_name VARCHAR(50) NOT NULL,
-	cal_time_range INT NOT NULL,
-	cal_user VARCHAR(25) NULL,
-	cal_allow_nav CHAR(1) DEFAULT 'Y',
-	cal_cat_id INT NULL,
-	cal_include_empty CHAR(1) DEFAULT 'N',
-	cal_show_in_trailer CHAR(1) DEFAULT 'N',
-	cal_update_date INT NOT NULL,
-	PRIMARY KEY ( cal_report_id )
-);
-CREATE TABLE webcal_report_template (
-	cal_report_id INT NOT NULL,
-	cal_template_type CHAR(1) NOT NULL,
-	cal_template_text TEXT,
-	PRIMARY KEY ( cal_report_id, cal_template_type )
-);
-CREATE TABLE webcal_import_data (
-	cal_id int NOT NULL,
-	cal_login VARCHAR(25) NOT NULL,
-	cal_import_type VARCHAR(15) NOT NULL,
-	cal_external_id VARCHAR(200) NULL,
-	PRIMARY KEY  ( cal_id, cal_login )
-);
-</pre>
-<p>For Oracle, use VARCHAR2 instead of VARCHAR.</p>
-<a href="UPGRADING.html#dot943">next..</a>
-<hr />
-
-<h4><a id="dot943">To upgrade from v0.9.42 to v0.9.43:</a></h4>
-<p>User passwords are now stored using md5 and require the webcal_user 
-table to be altered to accomodate larger password data. 
-Use the following SQL for MySQL:</p>
-<pre>
-ALTER TABLE webcal_user MODIFY cal_passwd VARCHAR(32) NULL;
-DROP TABLE webcal_import_data;
-CREATE TABLE webcal_import (
-	cal_import_id INT NOT NULL,
-	cal_name VARCHAR(50) NULL,
-	cal_date INT NOT NULL,
-	cal_type VARCHAR(10) NOT NULL,
-	cal_login VARCHAR(25) NULL,
-	PRIMARY KEY ( cal_import_id )
-);
-CREATE TABLE webcal_import_data (
-	cal_import_id INT NOT NULL,
-	cal_id INT NOT NULL,
-	cal_login VARCHAR(25) NOT NULL,
-	cal_import_type VARCHAR(15) NOT NULL,
-	cal_external_id VARCHAR(200) NULL,
-	PRIMARY KEY  ( cal_id, cal_login )
-);
-</pre>
-
-<p>Postgres does not allow you to modify an existing table column.
-Instead of the initial ALTER command above, issue the following
-commands below.  You <b>will not need to run</b> the convert_passwords
-script below since this will <b>set all user's passwords to 'admin'</b>.</p>
-
-<pre>
-ALTER TABLE webcal_user RENAME COLUMN cal_passwd to cal_oldpass;
-ALTER TABLE webcal_user ADD COLUMN cal_passwd VARCHAR(32) NULL;
-UPDATE webcal_user SET cal_passwd = '21232f297a57a5a743894a0e4a801fc3';
-</pre>
-
-<p>For Oracle, use VARCHAR2 instead of VARCHAR. 
-On very old MySQL installations (not sure which version), if you get 
-a parse error, you can try the following instead:</p>
-<pre>ALTER TABLE webcal_user CHANGE cal_passwd cal_passwd VARCHAR(32) NULL;</pre>
-
-<p>Next, you will need to run the script found in the <tt>tools</tt> 
-subdirectory.  This will convert all your passwords from plain text 
-to md5.  You can either run this from the command line (if you have 
-a standalone version of PHP compiled):</p>
-<pre>
-cd tools
-php convert_passwords.php
-</pre>
-
-<p>If you do not have a standalone version of PHP, you can just type in 
-the URL to access the script in your browser:
-</p><p>
-<tt>http://yourcalendarurl/tools/convert_passwords.php</tt><br /></p>
-
-<p>Delete all webcalendar_login browser cookies. Details should be available on 
-your local browser help section.
-</p>
-
-<a href="UPGRADING.html#dot944">next..</a>
-<hr />
-
-<h4><a id="dot944">To upgrade from v0.9.43 to v0.9.44:</a></h4>
-<p>No manual changes required for upgrading from 0.9.43 to 0.9.44.</p>
-<a href="UPGRADING.html#dot945">next..</a>
-<hr />
-
-<h4><a id="dot945">To upgrade from v0.9.44 to v0.9.45:</a></h4>
-<p>There are no database changes from 0.9.44 to 0.9.45.
-However, the database settings were moved from <tt>includes/config.php</tt>
-to a new file <tt>includes/settings.php</tt>.
-This new file does not exist until you create it.</p>
-<p>The first time you attempt to access WebCalendar with the new 0.9.45 files,
-your browser will be redirected to a web-based admin page for configuring
-the database settings.  You will need to make sure the <tt>includes</tt>
-directory is writable by the web server user.
-The simplest solution is to make it writable by all users until you
-have correctly setup your database connection.  Then, you can change it
-to more restrictive permissions.
-</p>
-<p>After saving your database settings, be sure to setup an install
-password via this same web page so that other users may not change
-your database settings.</p>
-<a href="UPGRADING.html#1dot0RC1">next..</a>
-<hr />
-
-<h4><a id="1dot0RC1">To upgrade from v0.9.45 or 1.0RC1 to v1.0RC2:</a></h4>
-<p>There are no database changes from 0.9.45 to 1.0RC2.
-</p>
-<a href="UPGRADING.html#1dot0RC3">next..</a>
-<hr />
-
-<h4><a id="1dot0RC3">To upgrade from v1.0RC2 to v1.0RC3 or 1.0.0:</a></h4>
-<p>The <tt>webcal_view</tt> table was modified.
-Execute the following SQL to update your database:
-</p>
-<pre>
-ALTER TABLE webcal_view ADD cal_is_global CHAR(1) DEFAULT 'N' NOT NULL;
-UPDATE webcal_user_pref SET cal_value = 'day.php' WHERE cal_value = 'day' AND cal_setting = 'STARTVIEW';
-UPDATE webcal_user_pref SET cal_value = 'week.php' WHERE cal_value = 'week' AND cal_setting = 'STARTVIEW';
-UPDATE webcal_user_pref SET cal_value = 'month.php' WHERE cal_value = 'month' AND cal_setting = 'STARTVIEW';
-UPDATE webcal_user_pref SET cal_value = 'year.php' WHERE cal_value = 'year' AND cal_setting = 'STARTVIEW';
-UPDATE webcal_config SET cal_value = 'week.php' WHERE cal_setting = 'STARTVIEW';
-</pre>
-<hr />
-
-<p>
-<a href="http://validator.w3.org/check?uri=referer"><img
- src="http://www.w3.org/Icons/valid-xhtml10"
- alt="Valid XHTML 1.0!" class="valid"  /></a>
-</p>
-</body></html>

Copied: trunk/gforge/plugins/webcalendar/www/UPGRADING.html (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/UPGRADING.html)

Deleted: trunk/gforge/plugins/webcalendar/www/activity_log.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/activity_log.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/activity_log.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,113 +0,0 @@
-<?php
-include_once 'includes/init.php';
-include_once 'includes/site_extras.php';
-$PAGE_SIZE = 25;
-print_header();
-
-echo "<h3>" . translate("Activity Log") . "</h3>\n";
-
-echo "<a title=\"" . translate("Admin") . "\" class=\"nav\" href=\"adminhome.php\">&laquo;&nbsp;" . translate("Admin") . "</a><br /><br />\n";
-
-echo "<table>\n";
-echo "<tr><th class=\"usr\">\n" .
-  translate("User") . "</th><th class=\"cal\">\n" .
-  translate("Calendar") . "</th><th class=\"scheduled\">\n" .
-  translate("Date") . "/" . translate("Time") . "</th><th class=\"dsc\">\n" .
-  translate("Event") . "</th><th class=\"action\">\n" .
-  translate("Action") . "\n</th></tr>\n";
-$sql = "SELECT webcal_entry_log.cal_login, webcal_entry_log.cal_user_cal, " .
-  "webcal_entry_log.cal_type, webcal_entry_log.cal_date, " .
-  "webcal_entry_log.cal_time, webcal_entry.cal_id, " .
-  "webcal_entry.cal_name, webcal_entry_log.cal_log_id " .
-  "FROM webcal_entry_log, webcal_entry " .
-  "WHERE webcal_entry_log.cal_entry_id = webcal_entry.cal_id ";
-$startid = getIntValue ( 'startid', true );
-if ( ! empty ( $startid ) )
-  $sql .= "AND webcal_entry_log.cal_log_id <= $startid ";
-$sql .= "ORDER BY webcal_entry_log.cal_log_id DESC";
-$res = dbi_query ( $sql );
-
-$nextpage = "";
-
-if ( $res ) {
-  $num = 0;
-  while ( $row = dbi_fetch_row ( $res ) ) {
-    $num++;
-    if ( $num > $PAGE_SIZE ) {
-      $nextpage = $row[7];
-      break;
-    } else {
-	echo "<tr";
-		if ( $num % 2 ) {
-			echo " class=\"odd\"";
-		}
-	echo "><td>\n" .
-        $row[0] . "</td><td>\n" .
-        $row[1] . "</td><td>\n" . 
-        date_to_str ( $row[3] ) . "&nbsp;" .
-        display_time ( $row[4] ) . "</td><td>\n" . 
-        "<a title=\"" .
-        htmlspecialchars($row[6]) . "\" href=\"view_entry.php?id=$row[5]\">" .
-        htmlspecialchars($row[6]) . "</a></td><td>\n";
-      if ( $row[2] == $LOG_CREATE )
-        etranslate("Event created");
-      else if ( $row[2] == $LOG_APPROVE )
-        etranslate("Event approved");
-      else if ( $row[2] == $LOG_REJECT )
-        etranslate("Event rejected");
-      else if ( $row[2] == $LOG_UPDATE )
-        etranslate("Event updated");
-      else if ( $row[2] == $LOG_DELETE )
-        etranslate("Event deleted");
-      else if ( $row[2] == $LOG_NOTIFICATION )
-        etranslate("Notification sent");
-      else if ( $row[2] == $LOG_REMINDER )
-        etranslate("Reminder sent");
-      else
-        echo "???";
-      echo "\n</td></tr>\n";
-    }
-  }
-  dbi_free_result ( $res );
-} else {
-  echo translate("Database error") . ": " . dbi_error ();
-}
-?>
-</table><br />
-<div class="navigation">
-<?php
-//go BACK in time
-if ( ! empty ( $nextpage ) ) {
-  echo "<a title=\"" . 
-  	translate("Previous") . "&nbsp;$PAGE_SIZE&nbsp;" . 
-	translate("Events") . "\" class=\"prev\" href=\"activity_log.php?startid=$nextpage\">" . 
-  	translate("Previous") . "&nbsp;$PAGE_SIZE&nbsp;" . 
-	translate("Events") . "</a>\n";
-}
-
-if ( ! empty ( $startid ) ) {
-  $previd = $startid + $PAGE_SIZE;
-  $res = dbi_query ( "SELECT MAX(cal_log_id) FROM " .
-    "webcal_entry_log" );
-  if ( $res ) {
-    if ( $row = dbi_fetch_row ( $res ) ) {
-      if ( $row[0] <= $previd ) {
-        $prevarg = '';
-      } else {
-        $prevarg = "?startid=$previd";
-      }
-      //go FORWARD in time
-      echo "<a title=\"" . 
-  	translate("Next") . "&nbsp;$PAGE_SIZE&nbsp;" . 
-	translate("Events") . "\" class=\"next\" href=\"activity_log.php$prevarg\">" . 
-  	translate("Next") . "&nbsp;$PAGE_SIZE&nbsp;" . 
-	translate("Events") . "</a><br />\n";
-    }
-    dbi_free_result ( $res );
-  }
-}
-?>
-</div>
-<?php print_trailer(); ?>
-</body>
-</html>

Copied: trunk/gforge/plugins/webcalendar/www/activity_log.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/activity_log.php)

Deleted: trunk/gforge/plugins/webcalendar/www/add_entry.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/add_entry.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/add_entry.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,53 +0,0 @@
-<?php
-include_once 'includes/init.php';
-load_user_categories();
-
-$error = "";
-
-// Only proceed if id was passed
-if ( $id > 0 ) {
-
-  // double check to make sure user doesn't already have the event
-  $is_my_event = false;
-  $sql = "SELECT cal_id FROM webcal_entry_user " .
-    "WHERE cal_login = '$login' AND cal_id = $id";
-  $res = dbi_query ( $sql );
-  if ( $res ) {
-    $row = dbi_fetch_row ( $res );
-    if ( $row[0] == $id ) {
-      $is_my_event = true;
-      echo "Event # " . $id . " is already on your calendar.";
-      exit;
-    }
-    dbi_free_result ( $res );
-  }
-
-  // Now lets make sure the user is allowed to add the event (not private)
-
-  $sql = "SELECT cal_access FROM webcal_entry WHERE cal_id = " . $id;
-  $res = dbi_query ( $sql );
-  if ( ! $res ) {
-    echo translate("Invalid entry id") . ": $id";
-    exit;
-  }
-  $row = dbi_fetch_row ( $res );
-
-  if ( $row[0] == "R" && ! $is_my_event ) {
-    $is_private = true;
-    etranslate("This is a private event and may not be added to your calendar.");
-    exit;
-  } else {
-    $is_private = false;
-  }
-
-  // add the event
-  if ( $readonly == "N" && ! $is_my_event && ! $is_private )  {
-    if ( ! dbi_query ( "INSERT INTO webcal_entry_user ( cal_id, cal_login, cal_status ) VALUES ( $id, '$login', 'A' )") ) {
-      $error = translate("Error adding event") . ": " . dbi_error ();
-    }
-  }
-}
-
-send_to_preferred_view ("","user=".$_GET['user']);
-exit;
-?>

Copied: trunk/gforge/plugins/webcalendar/www/add_entry.php (from rev 5913, branches/Branch_4_6dev/gforge/plugins/webcalendar/www/add_entry.php)

Deleted: trunk/gforge/plugins/webcalendar/www/admin.php
===================================================================
--- branches/Branch_4_6dev/gforge/plugins/webcalendar/www/admin.php	2007-02-02 21:19:08 UTC (rev 5913)
+++ trunk/gforge/plugins/webcalendar/www/admin.php	2007-03-06 01:03:16 UTC (rev 5918)
@@ -1,694 +0,0 @@
-<?php
-include_once 'includes/init.php';
-
-function print_color_sample ( $color ) {
-  echo "<table style=\"border-width:0px;\"><tr><td style=\"background-color:$color;\">&nbsp;&nbsp;</td></tr></table>";
-}
-
-
-// I know we've already loaded the global settings above, but read them
-// in again and store them in a different place because they may have
-// been superceded by local user preferences.
-// We will store value in the array $s[].
-$res = dbi_query ( "SELECT cal_setting, cal_value FROM webcal_config" );
-$s = array ();
-if ( $res ) {
-  while ( $row = dbi_fetch_row ( $res ) ) {
-    $setting = $row[0];
-    $value = $row[1];
-    $s[$setting] = $value;
-    //echo "Setting '$setting' to '$value' <br />\n";
-  }
-  dbi_free_result ( $res );
-}
-
-$BodyX = 'onload="public_handler(); eu_handler(); email_handler();"';
-$INC = array('js/admin.php','js/visible.php');
-print_header ( $INC, '', $BodyX );
-?>
-
-<h2><?php etranslate("System Settings")?>&nbsp;<img src="help.gif" alt="<?php etranslate("Help")?>" class="help" onclick="window.open ( 'help_admin.php', 'cal_help', 'dependent,menubar,scrollbars,height=400,width=400,innerHeight=420,outerWidth=420');" /></h2>
-<?php
-$error = false;
-
-if ( ! $is_admin ) {
-  etranslate ( "You are not authorized" );
-  $error = true;
-}
-if ( ! $error ) {
- echo "<a title=\"" . translate("Admin") . "\" class=\"nav\" href=\"adminhome.php\">&laquo;&nbsp;" . translate("Admin") . "</a><br /><br />\n";
-}
-
-if ( empty ( $ovrd ) && ! $error ) {
-  echo "<blockquote>" . translate ( "Note" ) . ":&nbsp;" .
-    "<a href=\"pref.php\">" .
-    translate ( "Your user preferences" ) . "</a>&nbsp;" .
-    translate ( "may be affecting the appearance of this page.") . "&nbsp;" .
-    "<a href=\"admin.php?ovrd=1\">" .
-    translate ( "Click here" ) . "&nbsp;" .
-    translate ( "to not use your user preferences when viewing this page" ) .
-    ".</a></blockquote>\n";
-} else if ( ! $error ) {
-  echo "<blockquote>" . translate ( "Note" ) . ":&nbsp;" .
-    "<a href=\"pref.php\">" .
-    translate ( "Your user preferences" ) . "</a>&nbsp;" .
-    translate ( "are being ignored while viewing this page.") . "&nbsp;" .
-    "<a href=\"admin.php\">" .
-    translate ( "Click here" ) . "&nbsp;" .
-    translate ( "to load your user preferences when viewing this page" ) .
-    ".</a></blockquote>\n";
-}
-
-if ( ! $error ) {
-?>
-
-<form action="admin_handler.php" method="post" onsubmit="return valid_form(this);" name="prefform">
-<table style="border-width:0px;"><tr><td>
- <input type="submit" value="<?php etranslate("Save")?>" name="" />
-</td></tr></table>
-<br />
-
-<?php if ( ! empty ( $ovrd ) ) { ?>
-  <input type="hidden" name="ovrd" id="ovrd" value="1" />
-<?php } ?>
-
-<!-- TABS -->
-<div id="tabs">
- <span class="tabfor" id="tab_settings"><a href="#tabsettings" onclick="return showTab('settings')"><?php etranslate("Settings")?></a></span>
- <span class="tabbak" id="tab_public"><a href="#tabpublic" onclick="return showTab('public')"><?php etranslate("Public Access")?></a></span>
- <span class="tabbak" id="tab_groups"><a href="#tabgroups" onclick="return showTab('groups')"><?php etranslate("Groups")?></a></span>
- <span class="tabbak" id="tab_nonuser"><a href="#tabnonuser" onclick="return showTab('nonuser')"><?php etranslate("NonUser Calendars")?></a></span>
- <span class="tabbak" id="tab_other"><a href="#tabother" onclick="return showTab('other')"><?php etranslate("Other")?></a></span>
- <span class="tabbak" id="tab_email"><a href="#tabemail" onclick="return showTab('email')"><?php etranslate("Email")?></a></span>
- <span class="tabbak" id="tab_colors" title="<?php etooltip("colors-help")?>"><a href="#tabcolors" onclick="return showTab('colors')"><?php etranslate("Colors")?></a></span>
-</div>
-
-<!-- TABS BODY -->
-<div id="tabscontent">
- <!-- DETAILS -->
- <a name="tabsettings"></a>
- <div id="tabscontent_settings">
- <table cellspacing="0" cellpadding="3">
- <tr><td class="tooltip" title="<?php etooltip("app-name-help")?>">
-  <label for="admin_application_name"><?php etranslate("Application Name")?>:</label></td><td>
-  <input type="text" size="40" name="admin_application_name" id="admin_application_name" value="<?php 
-   echo htmlspecialchars ( $application_name );
-  ?>" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("server-url-help")?>">
-  <label for="admin_server_url"><?php etranslate("Server URL")?>:</label></td><td>
-  <input type="text" size="40" name="admin_server_url" id="admin_server_url" value="<?php 
-   echo htmlspecialchars ( $server_url );
-  ?>" />
- </td></tr>
- <tr><td class="tooltipselect" title="<?php etooltip("language-help");?>">
-  <label for="admin_language"><?php etranslate("Language")?>:</label></td><td>
-  <select name="admin_LANGUAGE" id="admin_language">
-   <?php
-    reset ( $languages );
-    while ( list ( $key, $val ) = each ( $languages ) ) {
-     echo "<option value=\"" . $val . "\"";
-     if ( $val == $s['LANGUAGE'] ) echo " selected=\"selected\"";
-     echo ">" . $key . "</option>\n";
-    }
-   ?>
-  </select><br />
-  <?php etranslate("Your browser default language is"); echo " "; etranslate(get_browser_language()); echo "."; ?>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("fonts-help") ?>">
-  <label for="admin_fonts"><?php etranslate("Fonts")?>:</label></td><td>
-  <input type="text" size="40" name="admin_FONTS" id="admin_fonts" value="<?php 
-            echo htmlspecialchars ( $FONTS );
-           ?>" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("custom-script-help");?>">
-  <?php etranslate("Custom script/stylesheet")?>:</td><td>
-  <label><input type="radio" name="admin_CUSTOM_SCRIPT" value="Y"<?php if ( $s["CUSTOM_SCRIPT"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_CUSTOM_SCRIPT" value="N"<?php if ( $s["CUSTOM_SCRIPT"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>&nbsp;&nbsp;
-  <input type="button" value="<?php etranslate("Edit");?>..." onclick="window.open('edit_template.php?type=S','cal_template','dependent,menubar,scrollbars,height=500,width=500,outerHeight=520,outerWidth=520');" name="" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("custom-header-help");?>">
-  <?php etranslate("Custom header")?>:</td><td>
-  <label><input type="radio" name="admin_CUSTOM_HEADER" value="Y"<?php if ( $s["CUSTOM_HEADER"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_CUSTOM_HEADER" value="N"<?php if ( $s["CUSTOM_HEADER"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>&nbsp;&nbsp;
-  <input type="button" value="<?php etranslate("Edit");?>..." onclick="window.open('edit_template.php?type=H','cal_template','dependent,menubar,scrollbars,height=500,width=500,outerHeight=520,outerWidth=520');" name="" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("custom-trailer-help");?>">
-  <?php etranslate("Custom trailer")?>:</td><td>
-  <label><input type="radio" name="admin_CUSTOM_TRAILER" value="Y"<?php if ( $s["CUSTOM_TRAILER"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_CUSTOM_TRAILER" value="N"<?php if ( $s["CUSTOM_TRAILER"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>&nbsp;&nbsp;
-  <input type="button" value="<?php etranslate("Edit");?>..." onclick="window.open('edit_template.php?type=T','cal_template','dependent,menubar,scrollbars,height=500,width=500,outerHeight=520,outerWidth=520');" name="" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("preferred-view-help");?>">
-  <label for="admin_startview"><?php etranslate("Preferred view")?>:</label></td><td>
-  <select name="admin_STARTVIEW" id="admin_startview">
-   <option value="day.php"<?php 
-      if ( $s["STARTVIEW"] == "day.php" ) echo " selected=\"selected\"";
-     ?>><?php etranslate("Day")?></option>
-   <option value="week.php"<?php 
-      if ( $s["STARTVIEW"] == "week.php" ) echo " selected=\"selected\"";
-     ?>><?php etranslate("Week")?></option>
-   <option value="month.php" <?php 
-      if ( $s["STARTVIEW"] == "month.php" ) echo " selected=\"selected\"";
-     ?>><?php etranslate("Month")?></option>
-   <option value="year.php" <?php 
-      if ( $s["STARTVIEW"] == "year.php" ) echo " selected=\"selected\"";
-     ?>><?php etranslate("Year")?></option>
-  </select>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("display-weekends-help");?>">
-  <?php etranslate("Display weekends in week view")?>:</td><td>
-  <label><input type="radio" name="admin_DISPLAY_WEEKENDS" value="Y" <?php if ( $s["DISPLAY_WEEKENDS"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_DISPLAY_WEEKENDS" value="N" <?php if ( $s["DISPLAY_WEEKENDS"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("yearly-shows-events-help");?>">
-  <?php etranslate("Display days with events in bold in month and year views")?>:</td><td>
-  <label><input type="radio" name="admin_bold_days_in_year" value="Y" <?php if ( $s["bold_days_in_year"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_bold_days_in_year" value="N" <?php if ( $s["bold_days_in_year"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("display-desc-print-day-help");?>">
-  <?php etranslate("Display description in printer day view")?>:</td><td>
-  <label><input type="radio" name="admin_DISPLAY_DESC_PRINT_DAY" value="Y" <?php if ( $s["DISPLAY_DESC_PRINT_DAY"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_DISPLAY_DESC_PRINT_DAY" value="N" <?php if ( $s["DISPLAY_DESC_PRINT_DAY"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltipselect" title="<?php etooltip("date-format-help");?>">
-  <?php etranslate("Date format")?>:</td><td>
-  <select name="admin_DATE_FORMAT">
-   <?php
-    // You can add new date formats below if you want.
-    // but also add in pref.php
-    $datestyles = array (
-     "__month__ __dd__, __yyyy__", translate("December") . " 31, 2000",
-     "__dd__ __month__, __yyyy__", "31 " . translate("December") . ", 2000",
-     "__dd__-__month__-__yyyy__", "31-" . translate("December") . "-2000",
-     "__dd__-__month__-__yy__", "31-" . translate("December") . "-00",
-     "__mm__/__dd__/__yyyy__", "12/31/2000",
-     "__mm__/__dd__/__yy__", "12/31/00",
-     "__mm__-__dd__-__yyyy__", "12-31-2000",
-     "__mm__-__dd__-__yy__", "12-31-00",
-     "__yyyy__-__mm__-__dd__", "2000-12-31",
-     "__yy__-__mm__-__dd__", "00-12-31",
-     "__yyyy__/__mm__/__dd__", "2000/12/31",
-     "__yy__/__mm__/__dd__", "00/12/31",
-     "__dd__/__mm__/__yyyy__", "31/12/2000",
-     "__dd__/__mm__/__yy__", "31/12/00",
-     "__dd__-__mm__-__yyyy__", "31-12-2000",
-     "__dd__-__mm__-__yy__", "31-12-00"
-    );
-    for ( $i = 0; $i < count ( $datestyles ); $i += 2 ) {
-     echo "<option value=\"" . $datestyles[$i] . "\"";
-     if ( $s["DATE_FORMAT"] == $datestyles[$i] )
-      echo " selected=\"selected\"";
-     echo ">" . $datestyles[$i + 1] . "</option>\n";
-    }
-   ?>
-  </select><br />
-
-  <select name="admin_DATE_FORMAT_MY">
-   <?php
-    // Date format for a month and year (with no day of the month)
-    // You can add new date formats below if you want
-    // but also add in admin.php
-    $datestyles = array (
-     "__month__ __yyyy__", translate("December") . " 2000",
-     "__month__ __yy__", translate("December") . " 00",
-     "__month__-__yyyy__", translate("December") . "-2000",
-     "__month__-__yy__", translate("December") . "-00",
-     "__mm__/__yyyy__", "12/2000",
-     "__mm__/__yy__", "12/00",
-     "__mm__-__yyyy__", "12-2000",
-     "__mm__-__yy__", "12-00",
-     "__yyyy__-__mm__", "2000-12",
-     "__yy__-__mm__", "00-12",
-     "__yyyy__/__mm__", "2000/12",
-     "__yy__/__mm__", "00/12"
-    );
-    for ( $i = 0; $i < count ( $datestyles ); $i += 2 ) {
-     echo "<option value=\"" . $datestyles[$i] . "\"";
-     if ( $s["DATE_FORMAT_MY"] == $datestyles[$i] )
-      echo " selected=\"selected\"";
-     echo ">" . $datestyles[$i + 1] . "</option>\n";
-    }
-   ?>
-  </select><br />
-
-  <select name="admin_DATE_FORMAT_MD">
-   <?php
-    // Date format for a month and day (with no year displayed)
-    // You can add new date formats below if you want.
-    // but also add in admin.php
-    $datestyles = array (
-     "__month__ __dd__", translate("December") . " 31",
-     "__month__-__dd__", translate("December") . "-31",
-     "__mm__/__dd__", "12/31",
-     "__mm__-__dd__", "12-31",
-     "__dd__/__mm__", "31/12",
-     "__dd__-__mm__", "31-12"
-    );
-    for ( $i = 0; $i < count ( $datestyles ); $i += 2 ) {
-     echo "<option value=\"" . $datestyles[$i] . "\"";
-     if ( $s["DATE_FORMAT_MD"] == $datestyles[$i] )
-      echo " selected=\"selected\"";
-     echo ">" . $datestyles[$i + 1] . "</option>\n";
-    }
-   ?>
-  </select>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("time-format-help")?>">
-  <?php etranslate("Time format")?>:</td><td>
-  <label><input type="radio" name="admin_TIME_FORMAT" value="12" <?php if ( $s["TIME_FORMAT"] == "12" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("12 hour")?></label>&nbsp;
-  <label><input type="radio" name="admin_TIME_FORMAT" value="24" <?php if ( $s["TIME_FORMAT"] != "12" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("24 hour")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("time-interval-help")?>">
-  <label for="admin_time_int"><?php etranslate("Time interval")?>:</label></td><td>
-  <select name="admin_TIME_SLOTS" id="admin_time_int">
-   <option value="24" <?php if ( $s["TIME_SLOTS"] == "24" ) echo " selected=\"selected\""?>>1 <?php etranslate("hour")?></option>
-   <option value="48" <?php if ( $s["TIME_SLOTS"] == "48" ) echo " selected=\"selected\""?>>30 <?php etranslate("minutes")?></option>
-   <option value="72" <?php if ( $s["TIME_SLOTS"] == "72" ) echo " selected=\"selected\""?>>20 <?php etranslate("minutes")?></option>
-   <option value="144" <?php if ( $s["TIME_SLOTS"] == "144" ) echo " selected=\"selected\""?>>10 <?php etranslate("minutes")?></option>
-  </select>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("auto-refresh-help");?>">
-  <?php etranslate("Auto-refresh calendars")?>:</td><td>
-  <label><input type="radio" name="admin_auto_refresh" value="Y" <?php if ( $s["auto_refresh"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_auto_refresh" value="N" <?php if ( $s["auto_refresh"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("auto-refresh-time-help");?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Auto-refresh time")?>:</td><td>
-  <input type="text" name="admin_auto_refresh_time" size="4" value="<?php if ( empty ( $s["auto_refresh_time"] ) ) echo "0"; else echo $s["auto_refresh_time"]; ?>" />&nbsp;<?php etranslate("minutes")?>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("require-approvals-help");?>">
-  <?php etranslate("Require event approvals")?>:</td><td>
-  <label><input type="radio" name="admin_require_approvals" value="Y" <?php if ( $s["require_approvals"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_require_approvals" value="N" <?php if ( $s["require_approvals"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("display-unapproved-help");?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Display unapproved")?>:</td><td>
-  <label><input type="radio" name="admin_DISPLAY_UNAPPROVED" value="Y" <?php if ( $s["DISPLAY_UNAPPROVED"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_DISPLAY_UNAPPROVED" value="N" <?php if ( $s["DISPLAY_UNAPPROVED"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("display-week-number-help")?>">
-  <?php etranslate("Display week number")?>:</td><td>
-  <label><input type="radio" name="admin_DISPLAY_WEEKNUMBER" value="Y" <?php if ( $s["DISPLAY_WEEKNUMBER"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_DISPLAY_WEEKNUMBER" value="N" <?php if ( $s["DISPLAY_WEEKNUMBER"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("display-week-starts-on")?>">
-  <?php etranslate("Week starts on")?>:</td><td>
-  <label><input type="radio" name="admin_WEEK_START" value="0" <?php if ( $s["WEEK_START"] != "1" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Sunday")?></label>&nbsp;
-  <label><input type="radio" name="admin_WEEK_START" value="1" <?php if ( $s["WEEK_START"] == "1" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Monday")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("work-hours-help")?>">
-  <?php etranslate("Work hours")?>:</td><td>
-  <label for="workstart"><?php etranslate("From")?>&nbsp;</label>
-  <select name="admin_WORK_DAY_START_HOUR" id="workstart">
-   <?php
-    for ( $i = 0; $i < 24; $i++ ) {
-     echo "<option value=\"$i\"" .
-      ( $i == $s["WORK_DAY_START_HOUR"] ? " selected=\"selected\"" : "" ) .
-     ">" . display_time ( $i * 10000, 1 ) . "</option>\n";
-    }
-   ?>
-  </select>&nbsp;
-  <label for="workend"><?php etranslate("to")?>&nbsp;</label>
-  <select name="admin_WORK_DAY_END_HOUR" id="workend">
-   <?php
-    for ( $i = 0; $i < 24; $i++ ) {
-     echo "<option value=\"$i\"" .
-      ( $i == $s["WORK_DAY_END_HOUR"] ? " selected=\"selected\"" : "" ) .
-     ">" . display_time ( $i * 10000, 1 ) . "</option>\n";
-    }
-   ?>
-  </select>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("disable-priority-field-help")?>">
-  <?php etranslate("Disable Priority field")?>:</td><td>
-  <label><input type="radio" name="admin_disable_priority_field" value="Y"<?php if ( $s["disable_priority_field"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_disable_priority_field" value="N"<?php if ( $s["disable_priority_field"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("disable-access-field-help")?>">
-  <?php etranslate("Disable Access field")?>:</td><td>
-  <label><input type="radio" name="admin_disable_access_field" value="Y"<?php if ( $s["disable_access_field"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_disable_access_field" value="N"<?php if ( $s["disable_access_field"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("disable-participants-field-help")?>">
-  <?php etranslate("Disable Participants field")?>:</td><td>
-  <label><input type="radio" name="admin_disable_participants_field" value="Y" <?php if ( $s["disable_participants_field"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_disable_participants_field" value="N" <?php if ( $s["disable_participants_field"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("disable-repeating-field-help")?>">
-  <?php etranslate("Disable Repeating field")?>:</td><td>
-  <label><input type="radio" name="admin_disable_repeating_field" value="Y" <?php if ( $s["disable_repeating_field"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_disable_repeating_field" value="N" <?php if ( $s["disable_repeating_field"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("popup-includes-siteextras-help")?>">
-  <?php etranslate("Display Site Extras in popup")?>:</td><td>
-  <label><input type="radio" name="admin_site_extras_in_popup" value="Y" <?php if ( $s["site_extras_in_popup"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_site_extras_in_popup" value="N" <?php if ( $s["site_extras_in_popup"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("allow-html-description-help")?>">
-  <?php etranslate("Allow HTML in Description")?>:</td><td>
-  <label><input type="radio" name="admin_allow_html_description" value="Y" <?php if ( $s["allow_html_description"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_allow_html_description" value="N" <?php if ( $s["allow_html_description"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("allow-view-other-help")?>">
-  <?php etranslate("Allow viewing other user's calendars")?>:</td><td>
-  <label><input type="radio" name="admin_allow_view_other" value="Y" <?php if ( $s["allow_view_other"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_allow_view_other" value="N" <?php if ( $s["allow_view_other"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("allow-view-add-help")?>">
-  <?php etranslate("Include add event link in views")?>:</td><td>
-  <label><input type="radio" name="admin_add_link_in_views" value="Y" <?php if ( $s["add_link_in_views"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_add_link_in_views" value="N" <?php if ( $s["add_link_in_views"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("remember-last-login-help")?>">
-  <?php etranslate("Remember last login")?>:</td><td>
-  <label><input type="radio" name="admin_remember_last_login" value="Y" <?php if ( $s["remember_last_login"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_remember_last_login" value="N" <?php if ( $s["remember_last_login"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("conflict-check-help")?>">
-  <?php etranslate("Check for event conflicts")?>:</td><td>
-  <label><input type="radio" name="admin_allow_conflicts" value="N" <?php if ( $s["allow_conflicts"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_allow_conflicts" value="Y" <?php if ( $s["allow_conflicts"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("conflict-months-help")?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Conflict checking months")?>:</td><td>
-  <input type="text" size="3" name="admin_conflict_repeat_months" value="<?php echo htmlspecialchars ( $conflict_repeat_months );?>" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("conflict-check-override-help")?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Allow users to override conflicts")?>:</td><td>
-  <label><input type="radio" name="admin_allow_conflict_override" value="Y" <?php if ( $s["allow_conflict_override"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_allow_conflict_override" value="N" <?php if ( $s["allow_conflict_override"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("limit-appts-help")?>">
-  <?php etranslate("Limit number of timed events per day")?>:</td><td>
-  <label><input type="radio" name="admin_limit_appts" value="Y" <?php if ( $s["limit_appts"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label> 
-  <label><input type="radio" name="admin_limit_appts" value="N" <?php if ( $s["limit_appts"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("limit-appts-number-help")?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Maximum timed events per day")?>:</td><td>
-  <input type="text" size="3" name="admin_limit_appts_number" value="<?php echo htmlspecialchars ( $limit_appts_number );?>" />
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("timed-evt-len-help")?>">
-  <?php etranslate("Specify timed event length by")?>:</td><td>
-  <label><input type="radio" name="admin_TIMED_EVT_LEN" value="D" <?php if ( $s["TIMED_EVT_LEN"] != "E" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Duration")?></label> 
-  <label><input type="radio" name="admin_TIMED_EVT_LEN" value="E" <?php if ( $s["TIMED_EVT_LEN"] == "E" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("End Time")?></label>
- </td></tr>
-</table>
-</div>
-<!-- END SETTINGS -->
-
-
-<!--
-// <h3><?php etranslate("Plugins")?></h3>
-// <table class="standard" cellspacing="1" cellpadding="2">
-// <tr><td class="tooltip" title="<?php etooltip("plugins-enabled-help");?>"><?php etranslate("Enable Plugins")?>:</td>
-//   <td><label><input type="radio" name="admin_plugins_enabled" value="Y" <?php if ( $s["plugins_enabled"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-//       <label><input type="radio" name="admin_plugins_enabled" value="N" <?php if ( $s["plugins_enabled"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-//</td></tr>
-
-// <?php
-// if ( $plugins_enabled == "Y" ) {
-//   $plugins = get_plugin_list ( true );
-
-//   for ( $i = 0; $i < count ( $plugins ); $i++ ) {
-//     $val = $s[$plugins[$i] . ".plugin_status"];
-//     echo "<tr><td class=\"tooltip\" title=\"" .
-//       tooltip("plugins-sort-key-help") . "\">&nbsp;&nbsp;&nbsp;" .
-//       translate("Plugin") . " " . $plugins[$i] . ":</td>\n";
-//     echo "<td><input type=\"radio\" name=\"admin_" .
-//        $plugins[$i] . "_plugin_status\" value=\"Y\" ";
-//     if ( $val != "N" ) echo " checked=\"checked\"";
-//     echo " /> " . translate("Yes");
-//     echo "<input type=\"radio\" name=\"admin_" .
-//        $plugins[$i] . "_plugin_status\" VALUE=\"N\" ";
-//     if ( $val == "N" ) echo " checked=\"checked\"";
-//     echo " /> " . translate("No") . "</td></tr>\n";
-//   }
-// }
-// ?>
-//</table>
--->
-
-<!-- BEGIN PUBLIC ACCESS -->
-<a name="tabpublic"></a>
-<div id="tabscontent_public">
- <table cellspacing="0" cellpadding="3">
-  <tr><td class="tooltip" title="<?php etooltip("allow-public-access-help")?>">
-   <?php etranslate("Allow public access")?>:</td><td>
-   <label><input type="radio" name="admin_public_access" value="Y" <?php if ( $s["public_access"] == "Y" ) echo " checked=\"checked\"";?> onclick="public_handler()" />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access" value="N" <?php if ( $s["public_access"] != "Y" ) echo " checked=\"checked\"";?> onclick="public_handler()" />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-  <tr id="pa1"><td class="tooltip" title="<?php etooltip("public-access-default-visible")?>">
-   &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Public access visible by default")?>:</td><td>
-   <label><input type="radio" name="admin_public_access_default_visible" value="Y" <?php if ( $s["public_access_default_visible"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access_default_visible" value="N" <?php if ( $s["public_access_default_visible"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-  <tr id="pa2"><td class="tooltip" title="<?php etooltip("public-access-default-selected")?>">
-   &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Public access is default participant")?>:</td><td>
-   <label><input type="radio" name="admin_public_access_default_selected" value="Y" <?php if ( $s["public_access_default_selected"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access_default_selected" value="N" <?php if ( $s["public_access_default_selected"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-  <tr id="pa3"><td class="tooltip" title="<?php etooltip("public-access-view-others-help")?>">
-   &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Public access can view other users")?>:</td><td>
-   <label><input type="radio" name="admin_public_access_others" value="Y" <?php if ( $s["public_access_others"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access_others" value="N" <?php if ( $s["public_access_others"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-  <tr id="pa4"><td class="tooltip" title="<?php etooltip("public-access-can-add-help")?>">
-   &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Public access can add events")?>:</td><td>
-   <label><input type="radio" name="admin_public_access_can_add" value="Y" <?php if ( $s["public_access_can_add"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access_can_add" value="N" <?php if ( $s["public_access_can_add"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-  <tr id="pa5"><td class="tooltip" title="<?php etooltip("public-access-add-requires-approval-help")?>">
-   &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Public access new events require approval")?>:</td><td>
-   <label><input type="radio" name="admin_public_access_add_needs_approval" value="Y" <?php if ( $s["public_access_add_needs_approval"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access_add_needs_approval" value="N" <?php if ( $s["public_access_add_needs_approval"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-  <tr id="pa6"><td class="tooltip" title="<?php etooltip("public-access-sees-participants-help")?>">
-   &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Public access can view participants")?>:</td><td>
-   <label><input type="radio" name="admin_public_access_view_part" value="Y" <?php if ( $s["public_access_view_part"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-   <label><input type="radio" name="admin_public_access_view_part" value="N" <?php if ( $s["public_access_view_part"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-  </td></tr>
-</table>
-</div>
-
-<!-- BEGIN GROUPS -->
-<div id="tabscontent_groups">
-<table cellspacing="0" cellpadding="3">
- <tr><td class="tooltip" title="<?php etooltip("groups-enabled-help")?>">
-  <?php etranslate("Groups enabled")?>:</td><td>
-  <label><input type="radio" name="admin_groups_enabled" value="Y" <?php if ( $s["groups_enabled"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_groups_enabled" value="N" <?php if ( $s["groups_enabled"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("user-sees-his-group-help")?>">
-  <?php etranslate("User sees only his groups")?>:</td><td>
-  <label><input type="radio" name="admin_user_sees_only_his_groups" value="Y" <?php if ( $s["user_sees_only_his_groups"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_user_sees_only_his_groups" value="N" <?php if ( $s["user_sees_only_his_groups"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
-</table>
-</div>
-
-<!-- BEGIN NONUSER -->
-<div id="tabscontent_nonuser">
-<table cellspacing="0" cellpadding="3">
- <tr><td class="tooltip" title="<?php etooltip("nonuser-enabled-help")?>">
-  <?php etranslate("Nonuser enabled")?>:</td><td>
-  <label><input type="radio" name="admin_nonuser_enabled" value="Y" <?php if ( $s["nonuser_enabled"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_nonuser_enabled" value="N" <?php if ( $s["nonuser_enabled"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr><td class="tooltip" title="<?php etooltip("nonuser-list-help")?>">
-  <?php etranslate("Nonuser list")?>:</td><td>
-  <label><input type="radio" name="admin_nonuser_at_top" value="Y" <?php if ( $s["nonuser_at_top"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Top")?></label>&nbsp;
-  <label><input type="radio" name="admin_nonuser_at_top" value="N" <?php if ( $s["nonuser_at_top"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Bottom")?></label>
-</td></tr>
-</table>
-</div>
-
-<!-- BEGIN REPORTS -->
-<div id="tabscontent_other">
-<table cellspacing="0" cellpadding="3">
-<tr><td class="tooltip" title="<?php etooltip("reports-enabled-help")?>">
- <?php etranslate("Reports enabled")?>:</td><td>
- <label><input type="radio" name="admin_reports_enabled" value="Y" <?php if ( $s["reports_enabled"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_reports_enabled" value="N" <?php if ( $s["reports_enabled"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-</table>
-
-<!-- BEGIN PUBLISHING -->
-<table cellspacing="0" cellpadding="3">
-<tr><td class="tooltip" title="<?php etooltip("subscriptions-enabled-help")?>">
- <?php etranslate("Allow remote subscriptions")?>:</td><td>
- <label><input type="radio" name="admin_PUBLISH_ENABLED" value="Y" <?php if ( $s["PUBLISH_ENABLED"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_PUBLISH_ENABLED" value="N" <?php if ( $s["PUBLISH_ENABLED"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-</table>
-
-<!-- BEGIN CATEGORIES -->
-<table cellspacing="0" cellpadding="3">
- <tr><td class="tooltip" title="<?php etooltip("categories-enabled-help")?>">
-  <?php etranslate("Categories enabled")?>:</td><td>
-  <label><input type="radio" name="admin_categories_enabled" value="Y" <?php if ( $s["categories_enabled"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_categories_enabled" value="N" <?php if ( $s["categories_enabled"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
-</table>
-
-<!-- BEGIN EXT PARTICIPANTS -->
-<table cellspacing="0" cellpadding="3">
- <tr><td class="tooltip" title="<?php etooltip("allow-external-users-help")?>">
-  <?php etranslate("Allow external users")?>:</td><td>
-  <label><input type="radio" name="admin_allow_external_users" value="Y" <?php if ( $s["allow_external_users"] == "Y" ) echo " checked=\"checked\"";?> onclick="eu_handler()" />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_allow_external_users" value="N" <?php if ( $s["allow_external_users"] != "Y" ) echo " checked=\"checked\"";?> onclick="eu_handler()" />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr id="eu1"><td class="tooltip" title="<?php etooltip("external-can-receive-notification-help")?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("External users can receive email notifications")?>:</td><td>
-  <label><input type="radio" name="admin_external_notifications" value="Y" <?php if ( $s["external_notifications"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_external_notifications" value="N" <?php if ( $s["external_notifications"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
- <tr id="eu2"><td class="tooltip" title="<?php etooltip("external-can-receive-reminder-help")?>">
-  &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("External users can receive email reminders")?>:</td><td>
-  <label><input type="radio" name="admin_external_reminders" value="Y" <?php if ( $s["external_reminders"] == "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
-  <label><input type="radio" name="admin_external_reminders" value="N" <?php if ( $s["external_reminders"] != "Y" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
- </td></tr>
-</table>
-</div>
-
-<!-- BEGIN EMAIL -->
-<div id="tabscontent_email">
-<table cellspacing="0" cellpadding="3">
-<tr><td class="tooltip" title="<?php etooltip("email-enabled-help")?>">
- <?php etranslate("Email enabled")?>:</td><td>
- <label><input type="radio" name="admin_send_email" value="Y" <?php if ( $s["send_email"] == "Y" ) echo " checked=\"checked\"";?> onclick="email_handler()" />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_send_email" value="N" <?php if ( $s["send_email"] != "Y" ) echo " checked=\"checked\"";?> onclick="email_handler()" />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-<tr id="em1"><td class="tooltip" title="<?php etooltip("email-default-sender")?>">
- &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Default sender address")?>:</td><td>
- <input type="text" size="30" name="admin_email_fallback_from" value="<?php echo htmlspecialchars ($email_fallback_from );?>" />
-</td></tr>
-<tr id="em2"><td colspan="2" style="font-weight:bold;">
- <?php etranslate("Default user settings")?>:
-</td></tr>
-<tr id="em3"><td class="tooltip" title="<?php etooltip("email-event-reminders-help")?>">
- &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Event reminders")?>:</td><td>
- <label><input type="radio" name="admin_EMAIL_REMINDER" value="Y" <?php if ( $s["EMAIL_REMINDER"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_EMAIL_REMINDER" value="N" <?php if ( $s["EMAIL_REMINDER"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-<tr id="em4"><td class="tooltip" title="<?php etooltip("email-event-added")?>">
- &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Events added to my calendar")?>:</td><td>
- <label><input type="radio" name="admin_EMAIL_EVENT_ADDED" value="Y" <?php if ( $s["EMAIL_EVENT_ADDED"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_EMAIL_EVENT_ADDED" value="N" <?php if ( $s["EMAIL_EVENT_ADDED"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-<tr id="em5"><td class="tooltip" title="<?php etooltip("email-event-updated")?>">
- &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Events updated on my calendar")?>:</td><td>
- <label><input type="radio" name="admin_EMAIL_EVENT_UPDATED" value="Y" <?php if ( $s["EMAIL_EVENT_UPDATED"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_EMAIL_EVENT_UPDATED" value="N" <?php if ( $s["EMAIL_EVENT_UPDATED"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-<tr id="em6"><td class="tooltip" title="<?php etooltip("email-event-deleted");?>">
- &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Events removed from my calendar")?>:</td><td>
- <label><input type="radio" name="admin_EMAIL_EVENT_DELETED" value="Y" <?php if ( $s["EMAIL_EVENT_DELETED"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_EMAIL_EVENT_DELETED" value="N" <?php if ( $s["EMAIL_EVENT_DELETED"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-<tr id="em7"><td class="tooltip" title="<?php etooltip("email-event-rejected")?>">
- &nbsp;&nbsp;&nbsp;&nbsp;<?php etranslate("Event rejected by participant")?>:</td><td>
- <label><input type="radio" name="admin_EMAIL_EVENT_REJECTED" value="Y" <?php if ( $s["EMAIL_EVENT_REJECTED"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_EMAIL_EVENT_REJECTED" value="N" <?php if ( $s["EMAIL_EVENT_REJECTED"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-</table>
-</div>
-
-<!-- BEGIN COLORS -->
-<div id="tabscontent_colors">
-<table cellspacing="0" cellpadding="3">
-<tr><td><label>
- <?php etranslate("Allow user to customize colors")?>:</label></td><td colspan="3">
- <label><input type="radio" name="admin_allow_color_customization" value="Y"<?php if ( $s["allow_color_customization"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_allow_color_customization" value="N"<?php if ( $s["allow_color_customization"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-</td></tr>
-<tr><td><label>
- <?php etranslate("Enable gradient images for background colors")?>:</label></td><td colspan="3">
-<?php if ( function_exists ( "imagepng" ) ) { ?>
- <label><input type="radio" name="admin_enable_gradients" value="Y"<?php if ( $s["enable_gradients"] != "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("Yes")?></label>&nbsp;
- <label><input type="radio" name="admin_enable_gradients" value="N"<?php if ( $s["enable_gradients"] == "N" ) echo " checked=\"checked\"";?> />&nbsp;<?php etranslate("No")?></label>
-<?php } else {
-        etranslate("Not available");
-      } ?>
-</td></tr>
-<tr><td>
- <label for="docbg"><?php etranslate("Document background")?>:</td><td>
- <input type="text" name="admin_BGCOLOR" id="docbg" size="8" maxlength="7" value="<?php echo $s["BGCOLOR"]; ?>" onkeyup="updateColor(this);" /></td><td class="sample" style="background-color:<?php echo $s["BGCOLOR"]?>;">
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
- <input type="button" onclick="selectColor('admin_BGCOLOR')" value="<?php etranslate("Select")?>..." name="" />
-</td></tr>
-<tr><td>
- <label for="doctitle"><?php etranslate("Document title")?>:</td><td>
- <input type="