4 * Project Admin: Edit Packages
6 * Copyright 1999-2001 (c) VA Linux Systems
7 * Copyright 2002-2004 (c) GForge Team
8 * Copyright 2010-2011, Franck Villaume - Capgemini
9 * Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
10 * http://fusionforge.org/
12 * This file is part of FusionForge.
14 * FusionForge is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
19 * FusionForge is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with FusionForge; if not, write to the Free Software
26 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29 require_once('../../env.inc.php');
30 require_once $gfcommon.'include/pre.php';
31 require_once $gfwww.'frs/include/frs_utils.php';
32 require_once $gfcommon.'frs/FRSPackage.class.php';
33 require_once $gfcommon.'frs/FRSRelease.class.php';
34 require_once $gfcommon.'frs/FRSFile.class.php';
36 $group_id = getIntFromRequest('group_id');
41 $project = group_get_object($group_id);
42 if (!$project || !is_object($project)) {
44 } elseif ($project->isError()) {
45 exit_error($project->getErrorMessage(), 'frs');
48 session_require_perm('frs', $group_id, 'write');
51 Relatively simple form to edit/add packages of releases
54 // only admin can modify packages (vs modifying releases of packages)
55 if (getStringFromRequest('submit')) {
56 $func = getStringFromRequest('func');
57 $package_id = getIntFromRequest('package_id');
58 $package_name = htmlspecialchars(trim(getStringFromRequest('package_name')));
59 $is_public = getIntFromRequest('is_public');
60 $status_id = getIntFromRequest('status_id');
63 make updates to the database
65 if ($func=='add_package' && $package_name) {
67 //create a new package
68 $frsp = new FRSPackage($project);
69 if (!$frsp || !is_object($frsp)) {
70 exit_error(_('Could Not Get FRS Package'), 'frs');
71 } elseif ($frsp->isError()) {
72 exit_error($frsp->getErrorMessage(), 'frs');
74 if (!$frsp->create($package_name,$is_public)) {
75 exit_error($frsp->getErrorMessage(), 'frs');
77 $feedback .= _('Added Package');
80 } elseif ($func=='delete_package' && $package_id) {
83 $frsp = new FRSPackage($project, $package_id);
84 if (!$frsp || !is_object($frsp)) {
85 exit_error(_('Could Not Get FRS Package'), 'frs');
86 } elseif ($frsp->isError()) {
87 exit_error($frsp->getErrorMessage(), 'frs');
90 $sure = getIntFromRequest("sure");
91 $really_sure = getIntFromRequest("really_sure");
92 if (!$frsp->delete($sure, $really_sure)) {
93 exit_error($frsp->getErrorMessage(), 'frs');
95 $feedback .= _('Deleted');
98 } else if ($func=='update_package' && $package_id && $package_name) {
99 $frsp = new FRSPackage($project, $package_id);
100 if (!$frsp || !is_object($frsp)) {
101 exit_error(_('Could Not Get FRS Package'), 'frs');
102 } elseif ($frsp->isError()) {
103 exit_error($frsp->getErrorMessage(), 'frs');
105 if (!$frsp->update($package_name, $status_id)) {
106 exit_error($frsp->getErrorMessage(), 'frs');
108 $feedback .= _('Updated Package');
114 frs_admin_header(array('title'=>_('Release Edit/File Releases'), 'group'=>$group_id));
116 $res=db_query_params('SELECT status_id,package_id,name AS package_name
117 FROM frs_package WHERE group_id=$1',
119 $rows=db_numrows($res);
120 if ($res && $rows > 0) {
121 echo '<h2>'._('QRS').'</h2>';
122 printf(_('Click here to %1$s quick-release a file %2$s'), '<a href="qrs.php?group_id=' . $group_id . '">', '</a>').'<br />';
127 <h2><?php echo _("Packages") ?></h2>
128 <p><?php echo _("You can use packages to group different file releases together, or use them however you like.") ?></p>
129 <h3><?php echo _("An example of packages:") ?></h3>
130 <p><strong>Mysql-win</strong><br /><strong>Mysql-unix</strong><br /><strong>Mysql-odbc</strong></p>
131 <h3><?php echo _("Your Packages:") ?></h3>
133 <li><?php echo _("Define your packages") ?></li>
134 <li><?php echo _("Create new releases of packages") ?></li>
136 <h2><?php echo _("Releases of Packages") ?></h2>
137 <p><?php echo _("A release of a package can contain multiple files.") ?></p>
138 <h3><?php echo _("Examples of Releases") ?></h3>
139 <p><strong>3.22.1</strong><br /><strong>3.22.2</strong><br /><strong>3.22.3</strong></p>
140 <p><?php echo _("You can create new releases of packages by clicking on <strong>Add/Edit Releases</strong> next to your package name") ?>.</p>
145 Show a list of existing packages
146 for this project so they can
150 if (!$res || $rows < 1) {
151 echo '<div class="warning">'._('You Have No Packages Defined').'</div>';
153 $title_arr = array();
154 $title_arr[] = _('Releases');
155 $title_arr[] = _('Package name');
156 $title_arr[] = _('Status');
158 echo $GLOBALS['HTML']->listTableTop($title_arr);
160 for ($i=0; $i<$rows; $i++) {
162 <form action="'. getStringFromServer('PHP_SELF') .'" method="post">
163 <input type="hidden" name="group_id" value="'.$group_id.'" />
164 <input type="hidden" name="func" value="update_package" />
165 <input type="hidden" name="package_id" value="'. db_result($res,$i,'package_id') .'" />
166 <tr '. $GLOBALS['HTML']->boxGetAltRowStyle($i) .'>
167 <td style="white-space: nowrap;" align="center">
168 <a href="qrs.php?package_id='.
169 db_result($res,$i,'package_id') .'&group_id='. $group_id .'"><strong>['._('Add Release').']</strong>
172 <a href="showreleases.php?package_id='.
173 db_result($res,$i,'package_id') .'&group_id='. $group_id .'"><strong>['._('Edit Releases').']</strong>
177 <td><input type="text" name="package_name" value="'.db_result($res,$i,'package_name') .'" size="20" maxlength="60" /></td>
178 <td>'.frs_show_status_popup ('status_id', db_result($res,$i,'status_id')).'</td>
179 <td><input type="submit" name="submit" value="'._('Update').'" />
181 <a href="deletepackage.php?package_id='.
182 db_result($res,$i,'package_id') .'&group_id='. $group_id .'"><strong>['._('Delete').']</strong>
189 echo $GLOBALS['HTML']->listTableBottom();
194 form to create a new package
200 <legend><?php echo _('Create New Package') ?></legend>
201 <form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post">
202 <input type="hidden" name="group_id" value="<?php echo $group_id; ?>" />
203 <input type="hidden" name="func" value="add_package" />
204 <p><strong><?php echo _('New Package Name') ?>:</strong>
205 <input type="text" name="package_name" value="" size="20" maxlength="30" /></p>
206 <p><strong><?php echo _('Publicly Viewable'); ?>:</strong>
207 <input type="radio" name="is_public" value="1" checked="checked" /> <?php echo _('Public'); ?>
208 <input type="radio" name="is_public" value="0" /> <?php echo _('Private'); ?></p>
209 <p><input type="submit" name="submit" value="<?php echo _('Create This Package') ?>" /></p>
219 // c-file-style: "bsd"