public static function loadFixtures(TBGScope $scope) { $scope_id = $scope->getID(); $bug_report = new TBGIssuetype(); $bug_report->setName('Bug report'); $bug_report->setIcon('bug_report'); $bug_report->setDescription('Have you discovered a bug in the application, or is something not working as expected?'); $bug_report->save(); TBGSettings::saveSetting('defaultissuetypefornewissues', $bug_report->getID(), 'core', $scope_id); TBGSettings::saveSetting('issuetype_bug_report', $bug_report->getID(), 'core', $scope_id); $feature_request = new TBGIssuetype(); $feature_request->setName('Feature request'); $feature_request->setIcon('feature_request'); $feature_request->setDescription('Are you missing some specific feature, or is your favourite part of the application a bit lacking?'); $feature_request->save(); TBGSettings::saveSetting('issuetype_feature_request', $feature_request->getID(), 'core', $scope_id); $enhancement = new TBGIssuetype(); $enhancement->setName('Enhancement'); $enhancement->setIcon('enhancement'); $enhancement->setDescription('Have you found something that is working in a way that could be improved?'); $enhancement->save(); TBGSettings::saveSetting('issuetype_enhancement', $enhancement->getID(), 'core', $scope_id); $task = new TBGIssuetype(); $task->setName('Task'); $task->setIcon('task'); $task->setIsTask(); $task->save(); TBGSettings::saveSetting('issuetype_task', $task->getID(), 'core', $scope_id); $user_story = new TBGIssuetype(); $user_story->setName('User story'); $user_story->setIcon('developer_report'); $user_story->setDescription('Doing it Agile-style. Issue type perfectly suited for entering user stories'); $user_story->save(); TBGSettings::saveSetting('issuetype_user_story', $user_story->getID(), 'core', $scope_id); $idea = new TBGIssuetype(); $idea->setName('Idea'); $idea->setIcon('idea'); $idea->setDescription('Express yourself - share your ideas with the rest of the team!'); $idea->save(); TBGSettings::saveSetting('issuetype_idea', $idea->getID(), 'core', $scope_id); return array($bug_report->getID(), $feature_request->getID(), $enhancement->getID(), $task->getID(), $user_story->getID(), $idea->getID()); }
/** * Perform an action on an issue type * * @param TBGRequest $request */ public function runConfigureIssuetypesAction(TBGRequest $request) { if ($request->hasParameter('scheme_id')) { $this->scheme = TBGContext::factory()->TBGIssuetypeScheme((int) $request->getParameter('scheme_id')); } $this->forward403unless($this->access_level == TBGSettings::ACCESS_FULL); switch ($request->getParameter('mode')) { case 'add': if ($request->getParameter('name')) { $issuetype = new TBGIssuetype(); $issuetype->setName($request->getParameter('name')); $issuetype->setIcon($request->getParameter('icon')); $issuetype->save(); return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('Issue type created'), 'content' => $this->getComponentHTML('issuetype', array('type' => $issuetype)))); } return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid name for the issue type'))); break; case 'update': if (($issuetype = TBGContext::factory()->TBGIssuetype($request->getParameter('id'))) instanceof TBGIssuetype) { if ($this->scheme instanceof TBGIssuetypeScheme) { $this->scheme->setIssuetypeRedirectedAfterReporting($issuetype, $request->getParameter('redirect_after_reporting')); $this->scheme->setIssuetypeReportable($issuetype, $request->getParameter('reportable')); return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('The issue type details were updated'), 'description' => $issuetype->getDescription(), 'name' => $issuetype->getName())); } elseif ($request->getParameter('name')) { $issuetype->setDescription($request->getParameter('description')); $issuetype->setName($request->getParameter('name')); $issuetype->setIcon($request->getParameter('icon')); $issuetype->save(); return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('The issue type was updated'), 'description' => $issuetype->getDescription(), 'name' => $issuetype->getName())); } else { return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid name for the issue type'))); } } return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid issue type'))); break; case 'updatechoices': if (($issuetype = TBGContext::factory()->TBGIssuetype($request->getParameter('id'))) instanceof TBGIssuetype) { $this->scheme->clearAvailableFieldsForIssuetype($issuetype); foreach ($request->getParameter('field', array()) as $key => $details) { $this->scheme->setFieldAvailableForIssuetype($issuetype, $key, $details); } return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('Available choices updated'))); } else { return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid issue type'))); } return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Not implemented yet'))); break; case 'delete': if (($issuetype = TBGContext::factory()->TBGIssuetype($request->getParameter('id'))) instanceof TBGIssuetype) { $issuetype->delete(); return $this->renderJSON(array('failed' => false, 'message' => TBGContext::getI18n()->__('Issue type deleted'))); } else { return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid issue type'))); } break; case 'toggletype': if (($issuetype = TBGContext::factory()->TBGIssuetype($request->getParameter('id'))) instanceof TBGIssuetype) { if ($this->scheme instanceof TBGIssuetypeScheme) { $this->scheme->setIssuetypeEnabled($issuetype, $request->getParameter('state') == 'enable'); return $this->renderJSON(array('failed' => false, 'issuetype_id' => $issuetype->getID())); } } return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid action for this issue type / scheme'))); break; default: return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid action for this issue type'))); } }