/** * Add a new sprint type milestone to a project * * @param framework\Request $request */ public function runScrumAddSprint(framework\Request $request) { $this->forward403if(framework\Context::getCurrentProject()->isArchived()); $this->forward403unless($this->_checkProjectPageAccess('project_scrum')); if (($sprint_name = $request['sprint_name']) && trim($sprint_name) != '') { $sprint = new entities\Milestone(); $sprint->setName($sprint_name); $sprint->setType(entities\Milestone::TYPE_SCRUMSPRINT); $sprint->setProject($this->selected_project); $sprint->setStartingDate(mktime(0, 0, 1, $request['starting_month'], $request['starting_day'], $request['starting_year'])); $sprint->setScheduledDate(mktime(23, 59, 59, $request['scheduled_month'], $request['scheduled_day'], $request['scheduled_year'])); $sprint->save(); return $this->renderJSON(array('failed' => false, 'content' => $this->getComponentHTML('sprintbox', array('sprint' => $sprint)), 'sprint_id' => $sprint->getID())); } return $this->renderJSON(array('failed' => true, 'error' => framework\Context::getI18n()->__('Please specify a sprint name'))); }