X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=project_files.php;h=cc917466bbf41982f01a530c365259a055be6be1;hb=54d64e3d8f517e65577aa47fb6e38114e42f4970;hp=b069acb7fc4c8463bda2ae7123839cc96ef9578b;hpb=26dd5629ee5f2c3de36ff44e65529e4ca491cab1;p=timetracker.git diff --git a/project_files.php b/project_files.php index b069acb7..cc917466 100644 --- a/project_files.php +++ b/project_files.php @@ -27,7 +27,9 @@ // +----------------------------------------------------------------------+ require_once('initialize.php'); +import('form.Form'); import('ttProjectHelper'); +import('ttFileHelper'); // Access checks. if (!(ttAccessAllowed('view_own_projects') || ttAccessAllowed('manage_projects'))) { @@ -46,9 +48,42 @@ if (!$project) { } // End of access checks. +if ($request->isPost()) { + $cl_description = trim($request->getParameter('description')); +} + $files = null; // $files = ttAttachmentHelper::getProjectFiles(); +$form = new Form('fileUploadForm'); +$form->addInput(array('type'=>'hidden','name'=>'id','value'=>$cl_project_id)); +$form->addInput(array('type'=>'upload','name'=>'newfile','value'=>$i18n->get('button.submit'),'maxsize'=>67108864)); // 64 MB file upload limit. +// Note: for the above limit to work make sure to set upload_max_filesize and post_max_size in php.ini to at least 64M. +$form->addInput(array('type'=>'textarea','name'=>'description','style'=>'width: 250px; height: 40px;','value'=>$cl_description)); +$form->addInput(array('type'=>'submit','name'=>'btn_submit','value'=>$i18n->get('button.add'))); + +if ($request->isPost()) { + // We are adding a new file. + + // Validate user input. + if (!$_FILES['newfile']['name']) $err->add($i18n->get('error.upload')); + if (!ttValidString($cl_description, true)) $err->add($i18n->get('error.field'), $i18n->get('label.description')); + // Finished validating user input. + + if ($err->no()) { + $fileHelper = new ttFileHelper($err); + $fields = array('entity_type'=>'project', + 'entity_id' => $cl_project_id, + 'file_name' => $_FILES['newfile']['name'], + 'description'=>$cl_description); + if (!$fileHelper->putFile($fields)) { + $err->add($i18n->get('error.file_storage')); + } + } +} // isPost + +$smarty->assign('can_manage', $user->can('manage_projects')); +$smarty->assign('forms', array($form->getName()=>$form->toArray())); $smarty->assign('files', $files); $smarty->assign('title', $i18n->get('title.project_files')); $smarty->assign('content_page_name', 'project_files.tpl');