From: Nik Okuntseff Date: Sat, 6 Apr 2019 12:20:04 +0000 (+0000) Subject: Work in progress on attachments for time entries. X-Git-Tag: timetracker_1.19-1~127 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=841e890b68ec699bf5291c43b4527bf748b5265c;p=timetracker.git Work in progress on attachments for time entries. --- diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 6d0c07e9..dee093f7 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
- + {if $show_files} + + {/if} {foreach $time_records as $record} @@ -136,6 +139,9 @@ {/if} + {if $show_files} + + {/if}
 Anuko Time Tracker 1.18.63.4908 | Copyright © Anuko | +  Anuko Time Tracker 1.18.63.4909 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/WEB-INF/templates/time.tpl b/WEB-INF/templates/time.tpl index 0b5a77ca..1f1c7adc 100644 --- a/WEB-INF/templates/time.tpl +++ b/WEB-INF/templates/time.tpl @@ -118,6 +118,9 @@ {$i18n.label.note}
{if ($record.duration == '0:00' && $record.start <> '')}{$i18n.form.time.uncompleted}{else}{$record.duration}{/if} {if $record.comment}{$record.comment|escape}{else} {/if}{$i18n.label.files} {if $record.approved || $record.timesheet_id || $record.invoice_id}   diff --git a/time.php b/time.php index 9b76587b..5cec8a7e 100644 --- a/time.php +++ b/time.php @@ -401,6 +401,7 @@ $smarty->assign('selected_date', $selected_date); $smarty->assign('week_total', $week_total); $smarty->assign('day_total', ttTimeHelper::getTimeForDay($cl_date)); $smarty->assign('time_records', ttTimeHelper::getRecords($user_id, $cl_date)); +if (isTrue('FILES_DEBUG')) $smarty->assign('show_files', $user->isPluginEnabled('at')); $smarty->assign('client_list', $client_list); $smarty->assign('project_list', $project_list); $smarty->assign('task_list', $task_list); diff --git a/time_files.php b/time_files.php new file mode 100644 index 00000000..fc809925 --- /dev/null +++ b/time_files.php @@ -0,0 +1,98 @@ +getParameter('id'); +$time_rec = ttTimeHelper::getRecord($cl_id); +if (!$time_rec) { + header('Location: access_denied.php'); + exit(); +} +if (!$user->isPluginEnabled('at')) { + header('Location: feature_disabled.php'); + exit(); +} +// TODO: review access checks, specifically for on behalf operations. +// End of access checks. + +if ($request->isPost()) { + $cl_description = trim($request->getParameter('description')); +} + +$fileHelper = new ttFileHelper($err); + + + + +die("coding ongoing sown from here..."); +$files = $fileHelper::getEntityFiles($cl_id, 'time'); + + + +$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_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').': '.$project['name']); +$smarty->assign('content_page_name', 'project_files.tpl'); +$smarty->display('index.tpl');