From: Nik Okuntseff Date: Thu, 28 Mar 2019 13:34:46 +0000 (+0000) Subject: Work in progress on attachment delete. X-Git-Tag: timetracker_1.19-1~147 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=434a81099f4456d0679755335e31aaf74ad29ecd;p=timetracker.git Work in progress on attachment delete. --- diff --git a/WEB-INF/lib/ttFileHelper.class.php b/WEB-INF/lib/ttFileHelper.class.php index f74e77a3..80c9fd31 100644 --- a/WEB-INF/lib/ttFileHelper.class.php +++ b/WEB-INF/lib/ttFileHelper.class.php @@ -237,4 +237,23 @@ class ttFileHelper { } return $result; } + + // get - obtains file details from local database. + static function get($id) { + global $user; + $mdb2 = getConnection(); + + $group_id = $user->getGroup(); + $org_id = $user->org_id; + + $sql = "select id, remote_id, file_key, entity_type, entity_id, file_name, description, status from tt_files". + " where id = $id and group_id = $group_id and org_id = $org_id and (status = 0 or status = 1)"; + $res = $mdb2->query($sql); + if (!is_a($res, 'PEAR_Error')) { + $val = $res->fetchRow(); + if ($val && $val['id']) + return $val; + } + return false; + } } diff --git a/WEB-INF/resources/en.lang.php b/WEB-INF/resources/en.lang.php index f1fc72aa..ad92ce9c 100644 --- a/WEB-INF/resources/en.lang.php +++ b/WEB-INF/resources/en.lang.php @@ -328,6 +328,8 @@ $i18n_key_words = array( 'title.add_template' => 'Adding Template', 'title.edit_template' => 'Editing Template', 'title.delete_template' => 'Deleting Template', +'title.edit_file' => 'Editing File', +'title.delete_file' => 'Deleting File', // Section for common strings inside combo boxes on forms. Strings shared between forms shall be placed here. // Strings that are used in a single form must go to the specific form section. diff --git a/WEB-INF/templates/file_delete.tpl b/WEB-INF/templates/file_delete.tpl new file mode 100644 index 00000000..81107daa --- /dev/null +++ b/WEB-INF/templates/file_delete.tpl @@ -0,0 +1,18 @@ +{$forms.fileDeleteForm.open} + + + + +
+ + + + + + + + + +
{$file_to_delete|escape}
 
{$forms.fileDeleteForm.btn_delete.control}  {$forms.fileDeleteForm.btn_cancel.control}
+
+{$forms.fileDeleteForm.close} diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index d5c62e90..1df6b86b 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.61.4889 | Copyright © Anuko | +  Anuko Time Tracker 1.18.61.4890 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/file_delete.php b/file_delete.php new file mode 100644 index 00000000..50b3e0e9 --- /dev/null +++ b/file_delete.php @@ -0,0 +1,82 @@ +getParameter('id'); +$file = ttFileHelper::get($cl_file_id); +if (!$file) { + header('Location: access_denied.php'); + exit(); +} +// Entity-specific checks. +if ($file['entity_type'] == 'project') { + if (!ttAccessAllowed('manage_projects') || !ttProjectHelper::get($file['entity_id'])) { + header('Location: access_denied.php'); + exit(); + } +} +if ($file['entity_type'] != 'project') { + // Currently, files are only associated with projects. + // Improve access checks when the feature evolves. + header('Location: access_denied.php'); + exit(); +} +// End of access checks. + +$file_to_delete = $file['file_name']; + +$form = new Form('fileDeleteForm'); +$form->addInput(array('type'=>'hidden','name'=>'id','value'=>$cl_file_id)); +$form->addInput(array('type'=>'submit','name'=>'btn_delete','value'=>$i18n->get('label.delete'))); +$form->addInput(array('type'=>'submit','name'=>'btn_cancel','value'=>$i18n->get('button.cancel'))); + +// TODO: design redirects properly... +if ($request->isPost()) { + if ($request->getParameter('btn_delete')) { + if (ttProjectHelper::delete($cl_project_id)) { + header('Location: projects.php'); + exit(); + } else + $err->add($i18n->get('error.db')); + } elseif ($request->getParameter('btn_cancel')) { + header('Location: projects.php'); + exit(); + } +} // isPost + +$smarty->assign('file_to_delete', $file_to_delete); +$smarty->assign('forms', array($form->getName()=>$form->toArray())); +$smarty->assign('onload', 'onLoad="document.fileDeleteForm.btn_cancel.focus()"'); +$smarty->assign('title', $i18n->get('title.delete_file')); +$smarty->assign('content_page_name', 'file_delete.tpl'); +$smarty->display('index.tpl');