Beispiel #1
0
 public function activity($activity_limit = 5)
 {
     $users = $comments = $activity_type = array();
     $issue = $this;
     $project_id = $this->project_id;
     $project = \Project::find($project_id);
     foreach (\Activity::all() as $row) {
         $activity_type[$row->id] = $row;
     }
     $activities = array();
     foreach (\User\Activity::where('item_id', '=', $issue->id)->order_by('created_at', 'ASC')->get() as $activity) {
         $activities[] = $activity;
         switch ($activity->type_id) {
             case 2:
                 if (!isset($users[$activity->user_id])) {
                     $users[$activity->user_id] = \User::find($activity->user_id);
                 }
                 if (!isset($comments[$activity->action_id])) {
                     $comments[$activity->action_id] = \Project\Issue\Comment::find($activity->action_id);
                 }
                 break;
             case 5:
                 if (!isset($users[$activity->user_id])) {
                     $users[$activity->user_id] = \User::find($activity->user_id);
                 }
                 if (!isset($users[$activity->action_id])) {
                     $users[$activity->action_id] = \User::find($activity->action_id);
                 }
                 break;
             default:
                 if (!isset($users[$activity->user_id])) {
                     $users[$activity->user_id] = \User::find($activity->user_id);
                 }
                 break;
         }
     }
     /* Loop through the projects and activity again, building the views for each activity */
     $return = array();
     foreach ($activities as $row) {
         switch ($row->type_id) {
             case 2:
                 $return[] = \View::make('project/issue/activity/' . $activity_type[$row->type_id]->activity, array('issue' => $issue, 'project' => $project, 'user' => $users[$row->user_id], 'comment' => $comments[$row->action_id], 'activity' => $row));
                 break;
             case 3:
                 $return[] = \View::make('project/issue/activity/' . $activity_type[$row->type_id]->activity, array('issue' => $issue, 'project' => $project, 'user' => $users[$row->user_id], 'activity' => $row));
                 break;
             case 5:
                 $return[] = \View::make('project/issue/activity/' . $activity_type[$row->type_id]->activity, array('issue' => $issue, 'project' => $project, 'user' => $users[$row->user_id], 'assigned' => $users[$row->action_id], 'activity' => $row));
                 break;
             case 6:
                 $tag_diff = json_decode($row->data, true);
                 $return[] = \View::make('project/issue/activity/' . $activity_type[$row->type_id]->activity, array('issue' => $issue, 'project' => $project, 'user' => $users[$row->user_id], 'tag_diff' => $tag_diff, 'tag_counts' => array('added' => sizeof($tag_diff['added_tags']), 'removed' => sizeof($tag_diff['removed_tags'])), 'activity' => $row));
                 break;
             default:
                 $return[] = \View::make('project/issue/activity/' . $activity_type[$row->type_id]->activity, array('issue' => $issue, 'project' => $project, 'user' => $users[$row->user_id], 'activity' => $row));
                 break;
         }
     }
     return $return;
 }
Beispiel #2
0
 /**
  * Delete a comment and its attachments
  *
  * @param int    $comment
  * @return bool
  */
 public static function delete_comment($comment)
 {
     \User\Activity::where('action_id', '=', $comment)->delete();
     $comment = static::find($comment);
     if (!$comment) {
         return false;
     }
     $issue = \Project\Issue::find($comment->issue_id);
     /* Delete attachments and files */
     $path = \Config::get('application.upload_path') . $issue->project_id;
     foreach ($comment->attachments()->get() as $row) {
         Attachment::delete_file($path . '/' . $row->upload_token, $row->filename);
         $row->delete();
     }
     $comment->delete();
     return true;
 }