diff options
Diffstat (limited to 'app/Model')
-rw-r--r-- | app/Model/File.php | 21 | ||||
-rw-r--r-- | app/Model/Task.php | 3 |
2 files changed, 23 insertions, 1 deletions
diff --git a/app/Model/File.php b/app/Model/File.php index 70b87b1b..e5aa527e 100644 --- a/app/Model/File.php +++ b/app/Model/File.php @@ -55,6 +55,22 @@ class File extends Base } /** + * Remove all files for a given task + * + * @access public + * @param integer $task_id Task id + * @return bool + */ + public function removeAll($task_id) + { + $files = $this->getAll($task_id); + + foreach ($files as $file) { + $this->remove($file['id']); + } + } + + /** * Create a file entry in the database * * @access public @@ -144,6 +160,7 @@ class File extends Base public function upload($project_id, $task_id, $form_name) { $this->setup(); + $result = array(); if (! empty($_FILES[$form_name])) { @@ -159,7 +176,7 @@ class File extends Base if (@move_uploaded_file($uploaded_filename, self::BASE_PATH.$destination_filename)) { - return $this->create( + $result[] = $this->create( $task_id, $original_filename, $destination_filename, @@ -169,5 +186,7 @@ class File extends Base } } } + + return count(array_unique($result)) === 1; } } diff --git a/app/Model/Task.php b/app/Model/Task.php index faa33ca9..45c68aec 100644 --- a/app/Model/Task.php +++ b/app/Model/Task.php @@ -441,6 +441,9 @@ class Task extends Base */ public function remove($task_id) { + $file = new File($this->db, $this->event); + $file->removeAll($task_id); + return $this->db->table(self::TABLE)->eq('id', $task_id)->remove(); } |