/** * Add a project (AJAX call) * * @param framework\Request $request The request object */ public function runAddProject(framework\Request $request) { $i18n = framework\Context::getI18n(); if (!framework\Context::getScope()->hasProjectsAvailable()) { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array("error" => $i18n->__("There are no more projects available in this instance"))); } if ($this->access_level == framework\Settings::ACCESS_FULL) { if (($p_name = $request['p_name']) && trim($p_name) != '') { try { $project = new entities\Project(); $project->setName($p_name); $project->setWorkflowSchemeID($request['workflow_scheme_id']); $project->setIssuetypeSchemeID($request['issuetype_scheme_id']); $project->save(); return $this->renderJSON(array('message' => $i18n->__('The project has been added'), 'content' => $this->getComponentHTML('projectbox', array('project' => $project, 'access_level' => $this->access_level)), 'total_count' => entities\Project::getProjectsCount(), 'more_available' => framework\Context::getScope()->hasProjectsAvailable())); } catch (\InvalidArgumentException $e) { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array("error" => $i18n->__('A project with the same key already exists'))); } catch (\Exception $e) { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array("error" => $i18n->__('An error occurred: ' . $e->getMessage()))); } } $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array("error" => $i18n->__('Please specify a valid project name'))); } $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array("error" => $i18n->__("You don't have access to add projects"))); }