3 * GForge File Release Facility
5 * Copyright 2002 GForge, LLC
10 require_once('../../env.inc.php');
11 require_once $gfwww.'include/pre.php';
12 require_once $gfcommon.'frs/FRSPackage.class.php';
13 require_once $gfcommon.'frs/FRSRelease.class.php';
14 require_once $gfcommon.'frs/FRSFile.class.php';
15 require_once $gfwww.'frs/include/frs_utils.php';
17 $group_id = getIntFromRequest('group_id');
18 $package_id = getIntFromRequest('package_id');
24 $g =& group_get_object($group_id);
25 if (!$g || $g->isError()) {
26 exit_error('Error',$g->getErrorMessage());
29 // check the permissions and see if this user is a release manager.
30 // If so, he can create a release
31 $perm =& $g->getPermission(session_get_user());
32 $can_post = $perm->isReleaseTechnician();
33 $packages = get_frs_packages($g);
36 // If user has write access to at least one package, then it's ok.
37 foreach ( $packages as $f ) {
38 if ($f->userCanPost()) {
45 exit_permission_denied();
48 $upload_dir = forge_get_config('ftp_upload_dir') . "/" . $g->getUnixName();
51 Quick file release system , Darrell Brogdon, SourceForge, Aug, 2000
53 With much code horked from editreleases.php
56 if (getStringFromRequest('submit')) {
57 $release_name = trim(getStringFromRequest('release_name'));
58 $userfile = getUploadedFile('userfile');
59 $userfile_name = $userfile['name'];
60 $type_id = getIntFromRequest('type_id');
61 $processor_id = getIntFromRequest('processor_id');
62 $release_date = getStringFromRequest('release_date');
63 // Build a Unix time value from the supplied Y-m-d value
64 $release_date = strtotime($release_date);
65 $release_notes = getStringFromRequest('release_notes');
66 $release_changes = getStringFromRequest('release_changes');
67 $preformatted = getStringFromRequest('preformatted');
68 $ftp_filename = getStringFromRequest('ftp_filename');
69 $manual_filename = getStringFromRequest('manual_filename');
70 $group_unix_name=group_getunixname($group_id);
74 $feedback .= _('Must define a release name.');
75 } else if (!$package_id) {
76 $feedback .= _('Must select a package.');
77 } else if (!$type_id || $type_id == "100") {
78 $feedback .= _('Must select a file type.');
79 } else if (!$processor_id || $processor_id == "100") {
80 $feedback .= _('Must select a processor type.');
86 $frsp = new FRSPackage($g,$package_id);
87 if (!$frsp || !is_object($frsp)) {
88 exit_error('Error','Could Not Get FRSPackage');
89 } elseif ($frsp->isError()) {
90 exit_error('Error',$frsp->getErrorMessage());
93 // Create a new FRSRelease in the db
95 $frsr = new FRSRelease($frsp);
96 if (!$frsr || !is_object($frsr)) {
97 exit_error('Error','Could Not Get FRSRelease');
98 } elseif ($frsr->isError()) {
99 exit_error('Error',$frsr->getErrorMessage());
102 if (!$frsr->create($release_name,$release_notes,$release_changes,
103 $preformatted,$release_date)) {
105 exit_error('Error',$frsr->getErrorMessage());
108 $ret = frs_add_file_from_form ($frsr, $type_id, $processor_id, $release_date,
109 $userfile, $ftp_filename, $manual_filename) ;
116 frs_admin_header(array('title'=>_('Quick Release System'),'group'=>$group_id));
118 printf (_('You can now <a href="%1$s"><strong>add files to this release</strong></a> if you wish, or edit the release. Please note that file(s) may not appear immediately on the <a href="%2$s">download page</a>. Allow several hours for propagation.'),
119 util_make_url ('/frs/admin/editrelease.php?release_id='.$frsr->getID().'&group_id='.$group_id.'&package_id='.$package_id),
120 util_make_url ('/frs/?group_id='.$group_id)
124 frs_admin_footer(array());
137 $release_changes = '';
140 $manual_filename = '';
143 frs_admin_header(array('title'=>_('Quick Release System'),'group'=>$group_id));
147 <form enctype="multipart/form-data" method="post" action="<?php echo getStringFromServer('PHP_SELF')."?group_id=$group_id"; ?>">
148 <table border="0" cellpadding="2" cellspacing="2">
151 <strong><?php echo _('Package ID') ?>:</strong>
155 $res=db_query_params("SELECT * FROM frs_package WHERE group_id=$1 AND status_id='1'", array($group_id));
156 $rows=db_numrows($res);
157 if (!$res || $rows < 1) {
158 echo '<h4>'._('No File Types Available').'</h4>';
161 echo '<select name="package_id">';
162 for ($i=0; $i<$rows; $i++) {
163 echo '<option value="' . db_result($res,$i,'package_id') .
164 ((db_result($res,$i,'package_id') ==$package_id) ? '" selected="selected"' : '"').'>' .
165 db_result($res,$i,'name') . '</option>';
172 <?php printf(_('Or %1$s create a new package %2$s'), '<a href="'.util_make_url ('/frs/admin/?group_id='.$group_id).'">', '</a>') ?>
177 <strong><?php echo _('Release name') ?>:<?php echo utils_requiredField();?></strong>
180 <input type="text" name="release_name" value="<?php echo htmlspecialchars(stripslashes($release_name)) ?>" />
185 <strong><?php echo _('Release date') ?>:</strong>
188 <input type="text" name="release_date" value="<?php echo date('Y-m-d H:i'); ?>" size="16" maxlength="16" />
193 <h4><?php echo _('File Name') ?>:<?php echo utils_requiredField();?></h4>
196 <span class="important">
197 <?php echo _('NOTE: In some browsers you must select the file in the file-upload dialog and click "OK". Double-clicking doesn\'t register the file.')?>
199 <?php echo _('Upload a new file') ?>: <input type="file" name="userfile" size="30" />
200 <?php if (forge_get_config('use_ftpuploads')) {
203 printf(_('Alternatively, you can use FTP to upload a new file at %1$s.'), forge_get_config('ftp_upload_host'));
205 echo _('Choose an FTP file instead of uploading:').'<br />';
206 $ftp_files_arr=ls($upload_dir,true);
207 echo html_build_select_box_from_arrays($ftp_files_arr,$ftp_files_arr,'ftp_filename',''); ?>
211 <?php if (forge_get_config('use_manual_uploads')) {
212 $incoming = forge_get_config('groupdir_prefix')."/".$g->getUnixName()."/incoming" ;
215 printf(_('Alternatively, you can use a file you already uploaded (by SFTP or SCP) to the project\'s incoming directory (%1$s).'),
218 echo _('Choose an already uploaded file:').'<br />';
219 $manual_files_arr=ls($incoming,true);
220 echo html_build_select_box_from_arrays($manual_files_arr,$manual_files_arr,'manual_filename',''); ?>
228 <strong><?php echo _('File Type') ?>:<?php echo utils_requiredField();?></strong>
232 print frs_show_filetype_popup ('type_id',$type_id);
238 <strong><?php echo _('Processor Type') ?>:<?php echo utils_requiredField();?></strong>
242 print frs_show_processor_popup ('processor_id',$processor_id);
248 <strong><?php echo _('Release Notes') ?>:</strong>
251 <textarea name="release_notes" rows="7" cols="50"><?php echo htmlspecialchars(stripslashes($release_notes)); ?></textarea>
256 <strong><?php echo _('Change Log') ?>:</strong>
259 <textarea name="release_changes" rows="7" cols="50"><?php echo htmlspecialchars(stripslashes($release_changes)); ?></textarea>
263 <td colspan="2" style="text-align:center">
264 <input type="checkbox" name="preformatted" value="1" /> <?php echo _('Preserve my pre-formatted text') ?>
265 <p><input type="submit" name="submit" value="<?php echo _('Release File') ?>" /></p>
277 // c-file-style: "bsd"