From cc81f9d4f5a9857e024829613ad670bc51056be5 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 16 Oct 2018 01:39:42 +0100 Subject: Write log entry on file removal --- app/EventBuilder/TaskFileEventBuilder.php | 8 ++++++++ app/Model/FileModel.php | 11 +++++++++++ app/Model/ProjectFileModel.php | 12 ++++++++++++ app/Model/TaskFileModel.php | 12 ++++++++++++ app/Subscriber/NotificationSubscriber.php | 1 + app/Template/event/task_file_destroy.php | 10 ++++++++++ app/Template/notification/task_file_destroy.php | 5 +++++ 7 files changed, 59 insertions(+) create mode 100755 app/Template/event/task_file_destroy.php create mode 100644 app/Template/notification/task_file_destroy.php diff --git a/app/EventBuilder/TaskFileEventBuilder.php b/app/EventBuilder/TaskFileEventBuilder.php index 8c985cc0..de514b59 100644 --- a/app/EventBuilder/TaskFileEventBuilder.php +++ b/app/EventBuilder/TaskFileEventBuilder.php @@ -64,6 +64,10 @@ class TaskFileEventBuilder extends BaseEventBuilder return e('%s attached a file to the task #%d', $author, $eventData['task']['id']); } + if ($eventName === TaskFileModel::EVENT_DESTROY) { + return e('%s removed a file from the task #%d', $author, $eventData['task']['id']); + } + return ''; } @@ -81,6 +85,10 @@ class TaskFileEventBuilder extends BaseEventBuilder return e('New attachment on task #%d: %s', $eventData['file']['task_id'], $eventData['file']['name']); } + if ($eventName === TaskFileModel::EVENT_DESTROY) { + return e('Attachment removed from task #%d: %s', $eventData['file']['task_id'], $eventData['file']['name']); + } + return ''; } } diff --git a/app/Model/FileModel.php b/app/Model/FileModel.php index d04b03bf..1519cfaf 100644 --- a/app/Model/FileModel.php +++ b/app/Model/FileModel.php @@ -51,6 +51,15 @@ abstract class FileModel extends Base */ abstract protected function fireCreationEvent($file_id); + /** + * Fire file destruction event + * + * @abstract + * @access protected + * @param integer $file_id + */ + abstract protected function fireDestructionEvent($file_id); + /** * Get PicoDb query to get all files * @@ -187,6 +196,8 @@ abstract class FileModel extends Base public function remove($file_id) { try { + $this->fireDestructionEvent($file_id); + $file = $this->getById($file_id); $this->objectStorage->remove($file['path']); diff --git a/app/Model/ProjectFileModel.php b/app/Model/ProjectFileModel.php index 4de4d66d..7da5741c 100644 --- a/app/Model/ProjectFileModel.php +++ b/app/Model/ProjectFileModel.php @@ -23,6 +23,7 @@ class ProjectFileModel extends FileModel * @var string */ const EVENT_CREATE = 'project.file.create'; + const EVENT_DESTROY = 'project.file.destroy'; /** * Get the table @@ -70,4 +71,15 @@ class ProjectFileModel extends FileModel { $this->queueManager->push($this->projectFileEventJob->withParams($file_id, self::EVENT_CREATE)); } + + /** + * Fire file destruction event + * + * @access protected + * @param integer $file_id + */ + protected function fireDestructionEvent($file_id) + { + $this->queueManager->push($this->projectFileEventJob->withParams($file_id, self::EVENT_DESTROY)); + } } diff --git a/app/Model/TaskFileModel.php b/app/Model/TaskFileModel.php index 0163da28..9d446004 100644 --- a/app/Model/TaskFileModel.php +++ b/app/Model/TaskFileModel.php @@ -23,6 +23,7 @@ class TaskFileModel extends FileModel * @var string */ const EVENT_CREATE = 'task.file.create'; + const EVENT_DESTROY = 'task.file.destroy'; /** * Get the table @@ -100,4 +101,15 @@ class TaskFileModel extends FileModel { $this->queueManager->push($this->taskFileEventJob->withParams($file_id, self::EVENT_CREATE)); } + + /** + * Fire file destruction event + * + * @access protected + * @param integer $file_id + */ + protected function fireDestructionEvent($file_id) + { + $this->queueManager->push($this->taskFileEventJob->withParams($file_id, self::EVENT_DESTROY)); + } } diff --git a/app/Subscriber/NotificationSubscriber.php b/app/Subscriber/NotificationSubscriber.php index ad16685b..6db48b46 100644 --- a/app/Subscriber/NotificationSubscriber.php +++ b/app/Subscriber/NotificationSubscriber.php @@ -32,6 +32,7 @@ class NotificationSubscriber extends BaseSubscriber implements EventSubscriberIn CommentModel::EVENT_DELETE => 'handleEvent', CommentModel::EVENT_USER_MENTION => 'handleEvent', TaskFileModel::EVENT_CREATE => 'handleEvent', + TaskFileModel::EVENT_DESTROY => 'handleEvent', TaskLinkModel::EVENT_CREATE_UPDATE => 'handleEvent', TaskLinkModel::EVENT_DELETE => 'handleEvent', ); diff --git a/app/Template/event/task_file_destroy.php b/app/Template/event/task_file_destroy.php new file mode 100755 index 00000000..cb21c42a --- /dev/null +++ b/app/Template/event/task_file_destroy.php @@ -0,0 +1,10 @@ +

+ text->e($author), + $this->url->link(t('#%d', $task['id']), 'TaskViewController', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) + ) ?> + dt->datetime($date_creation) ?> +

+
+

text->e($file['name']) ?>

+
diff --git a/app/Template/notification/task_file_destroy.php b/app/Template/notification/task_file_destroy.php new file mode 100644 index 00000000..dbd79c5e --- /dev/null +++ b/app/Template/notification/task_file_destroy.php @@ -0,0 +1,5 @@ +

text->e($task['title']) ?> (#)

+ +

+ +render('notification/footer', array('task' => $task)) ?> -- cgit v1.2.3