protected function _postIssue(framework\Request $request) { $fields_array = $this->selected_project->getReportableFieldsArray($this->issuetype_id); $issue = new entities\Issue(); $issue->setTitle($this->title); $issue->setIssuetype($this->issuetype_id); $issue->setProject($this->selected_project); if (isset($fields_array['shortname'])) { $issue->setShortname($this->selected_shortname); } if (isset($fields_array['description'])) { $issue->setDescription($this->selected_description); $issue->setDescriptionSyntax($this->selected_description_syntax); } if (isset($fields_array['reproduction_steps'])) { $issue->setReproductionSteps($this->selected_reproduction_steps); $issue->setReproductionStepsSyntax($this->selected_reproduction_steps_syntax); } if (isset($fields_array['category']) && $this->selected_category instanceof entities\Datatype) { $issue->setCategory($this->selected_category->getID()); } if (isset($fields_array['status']) && $this->selected_status instanceof entities\Datatype) { $issue->setStatus($this->selected_status->getID()); } if (isset($fields_array['reproducability']) && $this->selected_reproducability instanceof entities\Datatype) { $issue->setReproducability($this->selected_reproducability->getID()); } if (isset($fields_array['resolution']) && $this->selected_resolution instanceof entities\Datatype) { $issue->setResolution($this->selected_resolution->getID()); } if (isset($fields_array['severity']) && $this->selected_severity instanceof entities\Datatype) { $issue->setSeverity($this->selected_severity->getID()); } if (isset($fields_array['priority']) && $this->selected_priority instanceof entities\Datatype) { $issue->setPriority($this->selected_priority->getID()); } if (isset($fields_array['estimated_time'])) { $issue->setEstimatedTime($this->selected_estimated_time); } if (isset($fields_array['spent_time'])) { $issue->setSpentTime($this->selected_spent_time); } if (isset($fields_array['milestone']) || isset($this->selected_milestone)) { $issue->setMilestone($this->selected_milestone); } if (isset($fields_array['percent_complete'])) { $issue->setPercentCompleted($this->selected_percent_complete); } if (isset($fields_array['pain_bug_type'])) { $issue->setPainBugType($this->selected_pain_bug_type); } if (isset($fields_array['pain_likelihood'])) { $issue->setPainLikelihood($this->selected_pain_likelihood); } if (isset($fields_array['pain_effect'])) { $issue->setPainEffect($this->selected_pain_effect); } foreach (entities\CustomDatatype::getAll() as $customdatatype) { if (!isset($fields_array[$customdatatype->getKey()])) { continue; } if ($customdatatype->hasCustomOptions()) { if (isset($fields_array[$customdatatype->getKey()]) && $this->selected_customdatatype[$customdatatype->getKey()] instanceof entities\CustomDatatypeOption) { $selected_option = $this->selected_customdatatype[$customdatatype->getKey()]; $issue->setCustomField($customdatatype->getKey(), $selected_option->getID()); } } else { $issue->setCustomField($customdatatype->getKey(), $this->selected_customdatatype[$customdatatype->getKey()]); } } // FIXME: If we set the issue assignee during report issue, this needs to be set INSTEAD of this if ($this->selected_project->canAutoassign()) { if (isset($fields_array['component']) && $this->selected_component instanceof entities\Component && $this->selected_component->hasLeader()) { $issue->setAssignee($this->selected_component->getLeader()); } elseif (isset($fields_array['edition']) && $this->selected_edition instanceof entities\Edition && $this->selected_edition->hasLeader()) { $issue->setAssignee($this->selected_edition->getLeader()); } elseif ($this->selected_project->hasLeader()) { $issue->setAssignee($this->selected_project->getLeader()); } } if ($request->hasParameter('custom_issue_access') && $this->selected_project->permissionCheck('canlockandeditlockedissues')) { switch ($request->getParameter('issue_access')) { case 'public': case 'public_category': $issue->setLocked(false); $issue->setLockedCategory($request->hasParameter('public_category')); break; case 'restricted': $issue->setLocked(); break; } } else { $issue->setLockedFromProject($this->selected_project); } framework\Event::listen('core', 'thebuggenie\\core\\entities\\Issue::createNew_pre_notifications', array($this, 'listen_issueCreate')); $issue->save(); if (isset($this->parent_issue)) { $issue->addParentIssue($this->parent_issue); } if (isset($fields_array['edition']) && $this->selected_edition instanceof entities\Edition) { $issue->addAffectedEdition($this->selected_edition); } if (isset($fields_array['build']) && $this->selected_build instanceof entities\Build) { $issue->addAffectedBuild($this->selected_build); } if (isset($fields_array['component']) && $this->selected_component instanceof entities\Component) { $issue->addAffectedComponent($this->selected_component); } return $issue; }
/** * Adds an epic * * @Route(url="/boards/:board_id/addepic") * * @param framework\Request $request */ public function runAddEpic(framework\Request $request) { $this->forward403unless($this->_checkProjectPageAccess('project_planning')); $board = entities\tables\AgileBoards::getTable()->selectById($request['board_id']); try { $title = trim($request['title']); $shortname = trim($request['shortname']); if (!$title) { throw new \Exception($this->getI18n()->__('You have to provide a title')); } if (!$shortname) { throw new \Exception($this->getI18n()->__('You have to provide a label')); } $issue = new \thebuggenie\core\entities\Issue(); $issue->setTitle($title); $issue->setShortname($shortname); $issue->setIssuetype($board->getEpicIssuetypeID()); $issue->setProject($board->getProject()); $issue->setPostedBy($this->getUser()); $issue->save(); return $this->renderJSON(array('issue_details' => $issue->toJSON())); } catch (\Exception $e) { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('error' => $e->getMessage())); } }
protected function _postIssue() { $fields_array = $this->selected_project->getReportableFieldsArray($this->issuetype_id); $issue = new entities\Issue(); $issue->setTitle($this->title); $issue->setIssuetype($this->issuetype_id); $issue->setProject($this->selected_project); if (isset($fields_array['shortname'])) { $issue->setShortname($this->selected_shortname); } if (isset($fields_array['description'])) { $issue->setDescription($this->selected_description); $issue->setDescriptionSyntax($this->selected_description_syntax); } if (isset($fields_array['reproduction_steps'])) { $issue->setReproductionSteps($this->selected_reproduction_steps); $issue->setReproductionStepsSyntax($this->selected_reproduction_steps_syntax); } if (isset($fields_array['category']) && $this->selected_category instanceof entities\Datatype) { $issue->setCategory($this->selected_category->getID()); } if (isset($fields_array['status']) && $this->selected_status instanceof entities\Datatype) { $issue->setStatus($this->selected_status->getID()); } if (isset($fields_array['reproducability']) && $this->selected_reproducability instanceof entities\Datatype) { $issue->setReproducability($this->selected_reproducability->getID()); } if (isset($fields_array['resolution']) && $this->selected_resolution instanceof entities\Datatype) { $issue->setResolution($this->selected_resolution->getID()); } if (isset($fields_array['severity']) && $this->selected_severity instanceof entities\Datatype) { $issue->setSeverity($this->selected_severity->getID()); } if (isset($fields_array['priority']) && $this->selected_priority instanceof entities\Datatype) { $issue->setPriority($this->selected_priority->getID()); } if (isset($fields_array['estimated_time'])) { $issue->setEstimatedTime($this->selected_estimated_time); } if (isset($fields_array['spent_time'])) { $issue->setSpentTime($this->selected_spent_time); } if (isset($fields_array['milestone']) || isset($this->selected_milestone)) { $issue->setMilestone($this->selected_milestone); } if (isset($fields_array['percent_complete'])) { $issue->setPercentCompleted($this->selected_percent_complete); } if (isset($fields_array['pain_bug_type'])) { $issue->setPainBugType($this->selected_pain_bug_type); } if (isset($fields_array['pain_likelihood'])) { $issue->setPainLikelihood($this->selected_pain_likelihood); } if (isset($fields_array['pain_effect'])) { $issue->setPainEffect($this->selected_pain_effect); } foreach (entities\CustomDatatype::getAll() as $customdatatype) { if (!isset($fields_array[$customdatatype->getKey()])) { continue; } if ($customdatatype->hasCustomOptions()) { if (isset($fields_array[$customdatatype->getKey()]) && $this->selected_customdatatype[$customdatatype->getKey()] instanceof entities\CustomDatatypeOption) { $selected_option = $this->selected_customdatatype[$customdatatype->getKey()]; $issue->setCustomField($customdatatype->getKey(), $selected_option->getID()); } } else { $issue->setCustomField($customdatatype->getKey(), $this->selected_customdatatype[$customdatatype->getKey()]); } } // FIXME: If we set the issue assignee during report issue, this needs to be set INSTEAD of this if ($this->selected_project->canAutoassign()) { if (isset($fields_array['component']) && $this->selected_component instanceof entities\Component && $this->selected_component->hasLeader()) { $issue->setAssignee($this->selected_component->getLeader()); } elseif (isset($fields_array['edition']) && $this->selected_edition instanceof entities\Edition && $this->selected_edition->hasLeader()) { $issue->setAssignee($this->selected_edition->getLeader()); } elseif ($this->selected_project->hasLeader()) { $issue->setAssignee($this->selected_project->getLeader()); } } $issue->save(); if (isset($this->parent_issue)) { $issue->addParentIssue($this->parent_issue); } if (isset($fields_array['edition']) && $this->selected_edition instanceof entities\Edition) { $issue->addAffectedEdition($this->selected_edition); } if (isset($fields_array['build']) && $this->selected_build instanceof entities\Build) { $issue->addAffectedBuild($this->selected_build); } if (isset($fields_array['component']) && $this->selected_component instanceof entities\Component) { $issue->addAffectedComponent($this->selected_component); } return $issue; }