container) ->buildTitleWithAuthor($event_author, $event_name, $event_data) ?: e('Notification'); } } /** * Get the event title without author * * @access public * @param string $event_name * @param array $event_data * @return string */ public function getTitleWithoutAuthor($event_name, array $event_data) { switch ($event_name) { case TaskFileModel::EVENT_CREATE: return e('New attachment on task #%d: %s', $event_data['file']['task_id'], $event_data['file']['name']); case CommentModel::EVENT_CREATE: return e('New comment on task #%d', $event_data['comment']['task_id']); case CommentModel::EVENT_UPDATE: return e('Comment updated on task #%d', $event_data['comment']['task_id']); case CommentModel::EVENT_DELETE: return e('Comment removed on task #%d', $event_data['comment']['task_id']); case SubtaskModel::EVENT_CREATE: return e('New subtask on task #%d', $event_data['subtask']['task_id']); case SubtaskModel::EVENT_UPDATE: return e('Subtask updated on task #%d', $event_data['subtask']['task_id']); case SubtaskModel::EVENT_DELETE: return e('Subtask removed on task #%d', $event_data['subtask']['task_id']); case TaskModel::EVENT_CREATE: return e('New task #%d: %s', $event_data['task']['id'], $event_data['task']['title']); case TaskModel::EVENT_UPDATE: return e('Task updated #%d', $event_data['task']['id']); case TaskModel::EVENT_CLOSE: return e('Task #%d closed', $event_data['task']['id']); case TaskModel::EVENT_OPEN: return e('Task #%d opened', $event_data['task']['id']); case TaskModel::EVENT_MOVE_COLUMN: return e('Column changed for task #%d', $event_data['task']['id']); case TaskModel::EVENT_MOVE_POSITION: return e('New position for task #%d', $event_data['task']['id']); case TaskModel::EVENT_MOVE_SWIMLANE: return e('Swimlane changed for task #%d', $event_data['task']['id']); case TaskModel::EVENT_ASSIGNEE_CHANGE: return e('Assignee changed on task #%d', $event_data['task']['id']); case TaskModel::EVENT_OVERDUE: $nb = count($event_data['tasks']); return $nb > 1 ? e('%d overdue tasks', $nb) : e('Task #%d is overdue', $event_data['tasks'][0]['id']); case TaskModel::EVENT_USER_MENTION: return e('You were mentioned in the task #%d', $event_data['task']['id']); case CommentModel::EVENT_USER_MENTION: return e('You were mentioned in a comment on the task #%d', $event_data['task']['id']); default: return TaskLinkEventBuilder::getInstance($this->container) ->buildTitleWithoutAuthor($event_name, $event_data) ?: e('Notification'); } } /** * Get task id from event * * @access public * @param string $event_name * @param array $event_data * @return integer */ public function getTaskIdFromEvent($event_name, array $event_data) { if ($event_name === TaskModel::EVENT_OVERDUE) { return $event_data['tasks'][0]['id']; } return isset($event_data['task']['id']) ? $event_data['task']['id'] : 0; } }