X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=project_files.php;h=9ca15e39bbafc2bb8a2d9c89846c71f6684a4423;hb=bbea8c35f79ef9699e4b6deab0be3c1108628ef0;hp=baec9aa23fc5ac578c017fa3149b66e43f92a790;hpb=b5b2801290794632bba7af2cdddf9d4a8a96c29c;p=timetracker.git diff --git a/project_files.php b/project_files.php index baec9aa2..9ca15e39 100644 --- a/project_files.php +++ b/project_files.php @@ -28,7 +28,8 @@ require_once('initialize.php'); import('form.Form'); -import('ttGroupHelper'); +import('ttProjectHelper'); +import('ttFileHelper'); // Access checks. if (!(ttAccessAllowed('view_own_projects') || ttAccessAllowed('manage_projects'))) { @@ -39,17 +40,51 @@ if (MODE_PROJECTS != $user->getTrackingMode() && MODE_PROJECTS_AND_TASKS != $use header('Location: feature_disabled.php'); exit(); } +$cl_project_id = (int)$request->getParameter('id'); +$project = ttProjectHelper::get($cl_project_id); +if (!$project) { + header('Location: access_denied.php'); + exit(); +} // End of access checks. -if($user->can('manage_projects')) { - $active_projects = ttGroupHelper::getActiveProjects(); - $inactive_projects = ttGroupHelper::getInactiveProjects(); -} else - $active_projects = $user->getAssignedProjects(); - -$smarty->assign('active_projects', $active_projects); -$smarty->assign('inactive_projects', $inactive_projects); -$smarty->assign('show_files', $user->isPluginEnabled('at')); -$smarty->assign('title', $i18n->get('title.project_files')); -$smarty->assign('content_page_name', 'projects.tpl'); +if ($request->isPost()) { + $cl_description = trim($request->getParameter('description')); +} + +$fileHelper = new ttFileHelper($err); +$files = $fileHelper::getEntityFiles($cl_project_id, 'project'); + +$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()) { + $fields = array('entity_type'=>'project', + 'entity_id' => $cl_project_id, + 'file_name' => $_FILES['newfile']['name'], + 'description'=>$cl_description); + if ($fileHelper->putFile($fields)) { + header('Location: project_files.php?id='.$cl_project_id); + exit(); + } + } +} // isPost + +$smarty->assign('can_edit', $user->can('manage_projects')); +$smarty->assign('forms', array($form->getName()=>$form->toArray())); +$smarty->assign('files', $files); +$smarty->assign('title', $i18n->get('title.project_files').': '.$project['name']); +$smarty->assign('content_page_name', 'entity_files.tpl'); $smarty->display('index.tpl');