/** * 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; }
/** * Create a new issue * * @param array $input * @param \Project $project * @return Issue */ public static function create_issue($input, $project) { $rules = array('title' => 'required|max:200', 'body' => 'required'); $validator = \Validator::make($input, $rules); if ($validator->fails()) { return array('success' => false, 'errors' => $validator->errors); } $fill = array('created_by' => \Auth::user()->id, 'project_id' => $project->id, 'title' => $input['title'], 'body' => $input['body']); if (\Auth::user()->permission('issue-modify')) { $fill['assigned_to'] = $input['assigned_to']; } $issue = new static(); $issue->fill($fill); $issue->save(); /* Add to user's activity log */ \User\Activity::add(1, $project->id, $issue->id); /* Add attachments to issue */ \DB::table('projects_issues_attachments')->where('upload_token', '=', $input['token'])->where('uploaded_by', '=', \Auth::user()->id)->update(array('issue_id' => $issue->id)); /* Return success and issue object */ return array('success' => true, 'issue' => $issue); }
/** * Create a new issue * * @param array $input * @param \Project $project * @return Issue */ public static function create_issue($input, $project) { $rules = array('title' => 'required|max:200', 'body' => 'required'); $validator = \Validator::make($input, $rules); if ($validator->invalid()) { return array('success' => false, 'errors' => $validator); } $fill = array('created_by' => \Auth::user()->id, 'project_id' => $project->id, 'title' => $input['title'], 'body' => $input['body']); if (\Auth::user()->permission('issue-modify')) { $fill['assigned_to'] = $input['assigned_to']; } $issue = new static(); $issue->fill($fill); $issue->save(); /* Add to user's activity log */ \User\Activity::add(1, $project->id, $issue->id); /* Add attachments to issue */ $query = ' UPDATE `projects_issues_attachments` SET issue_id = ? WHERE upload_token = ? AND uploaded_by = ?'; \DB::query($query, array($issue->id, $input['token'], \Auth::user()->id)); /* Return success and issue object */ return array('success' => true, 'issue' => $issue); }
/** * Create a new issue * * @param array $input * @param \Project $project * @return Issue */ public static function create_issue($input, $project) { $rules = array('title' => 'required|max:200', 'body' => 'required'); $validator = \Validator::make($input, $rules); if ($validator->fails()) { return array('success' => false, 'errors' => $validator->errors); } $fill = array('created_by' => \Auth::user()->id, 'project_id' => $project->id, 'title' => $input['title'], 'body' => $input['body'], 'status' => 1); if (\Auth::user()->permission('issue-modify')) { $fill['assigned_to'] = $input['assigned_to']; } $issue = new static(); $issue->fill($fill); $issue->save(); /* Create tags */ $issue->set_tags('create'); /* Add to user's activity log */ \User\Activity::add(1, $project->id, $issue->id); /* Add attachments to issue */ \DB::table('projects_issues_attachments')->where('upload_token', '=', $input['token'])->where('uploaded_by', '=', \Auth::user()->id)->update(array('issue_id' => $issue->id)); /* Notify the person being assigned to. */ /* If no one is assigned, notify all users who are assigned to this project and who have permission to modify the issue. */ /* Do not notify the person creating the issue. */ if ($issue->assigned_to) { if ($issue->assigned_to != \Auth::user()->id) { $project = \Project::current(); //$subject = 'New issue "' . $issue->title . '" was submitted to "' . $project->name . '" project and assigned to you'; $subject = sprintf(__('email.assignment'), $issue->title, $project->name); $text = \View::make('email.new_assigned_issue', array('project' => $project, 'issue' => $issue)); \Mail::send_email($text, $issue->assigned->email, $subject); } } else { $project = \Project::current(); foreach ($project->users()->get() as $row) { if ($row->id != \Auth::user()->id && $row->permission('project-modify')) { //$subject = 'New issue "' . $issue->title . '" was submitted to "' . $project->name . '" project'; $subject = sprintf(__('email.new_issue'), $issue->title, $project->name); $text = \View::make('email.new_issue', array('project' => $project, 'issue' => $issue)); \Mail::send_email($text, $row->email, $subject); } } } /* Return success and issue object */ return array('success' => true, 'issue' => $issue); }