public function indexAction($id = false)
 {
     if (!$id) {
         return Brightery::error404();
     }
     $this->permission('index');
     $issues = new \modules\pm\models\Pm_issues();
     $issues->_select = "pm_issue_id, title, description,pm_project_id,pm_priority_id , deadline ,estimated_time,\n        (SELECT users.fullname FROM users WHERE users.user_id = pm_issues.pm_reviewer_id) AS reviewer,\n        (SELECT pm_projects.title FROM pm_projects WHERE pm_projects.pm_project_id = pm_issues.pm_project_id) AS project,\n        (SELECT pm_priorities.color FROM pm_priorities WHERE pm_priorities.pm_priority_id = pm_issues.pm_priority_id) AS priority,\n        (SELECT pm_priorities.name FROM pm_priorities WHERE pm_priorities.pm_priority_id = pm_issues.pm_priority_id) AS priority_title,\n        (SELECT pm_issues_types.title FROM pm_issues_types WHERE pm_issues_types.pm_issue_type_id = pm_issues.pm_issue_type_id) AS issue_type ";
     $issues->pm_issue_id = $id;
     $comments = new \modules\pm\models\Pm_comments();
     $comments->_select = "pm_comment_id,pm_issue_id,comment,time,parent,\n        (SELECT users.fullname FROM users WHERE users.user_id = pm_comments.user_id) AS username,\n        (SELECT users.image FROM users WHERE users.user_id = pm_comments.user_id) AS image";
     $comments->pm_issue_id = $id;
     $comments->parent = 0;
     $activities = new \modules\pm\models\Pm_history();
     $activities->pm_issue_id = $id;
     $attach = new \modules\pm\models\Pm_attachments();
     $attach->_select = "pm_attachment_id, file_name, type, pm_issue_id";
     $attach->pm_issue_id = $id;
     return $this->render('pm_issue_details/index', ['item' => $issues->get(), 'comments' => $comments->get(), 'attach' => $attach->get(), 'comment_model' => $comments, 'total' => $activities->takenTime($id), 'assigned' => $issues->assignedIssues($id)]);
 }
 public function manage_filesAction($id = false)
 {
     $this->layout = 'ajax';
     if ($id) {
         $model = new \modules\pm\models\Pm_attachments();
     }
     if ($_SERVER['REQUEST_METHOD'] == 'GET') {
         if (!$id) {
             return false;
         }
         $model->pm_issue_id = $id;
         foreach ($model->get() as $file) {
             $filename = $file->file_name;
             $file_id = $file->pm_attachment_id;
             $files[] = ['name' => $filename, 'size' => filesize('./cdn/' . $this->_module . '/' . $filename), 'url' => Uri_helper::cdn($this->_module . '/' . $filename), 'primary' => $file->primary, 'thumbnailUrl' => Uri_helper::cdn($this->_module . '/' . $filename), 'deleteUrl' => Uri_helper::url('management/pm_issues/manage_files/' . $file_id) . '?file=' . $filename, 'deleteType' => 'DELETE'];
         }
         return json_encode(['files' => $files]);
     } elseif ($_SERVER['REQUEST_METHOD'] == 'POST') {
         foreach ($this->uploadFiles($_FILES) as $file) {
             $files[] = ['name' => $file['file_name'], 'size' => $file['file_size'], 'url' => Uri_helper::cdn($this->_module . '/' . $file['file_name']), 'thumbnailUrl' => Uri_helper::cdn($this->_module . '/' . $file['file_name']), 'deleteUrl' => Uri_helper::url('management/pm_issues/manage_files/') . '?file=' . $file['file_name'], 'deleteType' => 'DELETE'];
         }
         return json_encode(['files' => $files]);
     } elseif ($_SERVER['REQUEST_METHOD'] == 'DELETE') {
         if ($id) {
             $model->pm_attachment_id = $id;
             $model->delete();
             echo '{"' . $this->input->get('file') . '":true}';
         } else {
             echo '{"' . $this->input->get('file') . '":true}';
         }
     }
 }