Example #1
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;
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
    /**
     * 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);
    }
Example #4
0
 /**
  * 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);
 }