container); } private function backToIndex() { $this->response->redirect($this->helper->url->to('WorkspaceOrgController', 'index', array('plugin' => 'WorkspaceOrg'))); } public function index() { $helper = $this->workspaces(); $this->response->html($this->helper->layout->dashboard('workspaceOrg:workspace/index', array( 'title' => t('My workspaces'), 'user' => $this->getUser(), 'groups' => $helper->grouped(), 'options' => $helper->options(), 'default' => WorkspaceOrgHelper::DEFAULT_WORKSPACE, ))); } public function create(array $values = array(), array $errors = array()) { $this->response->html($this->template->render('workspaceOrg:workspace/create', array( 'values' => $values, 'errors' => $errors, ))); } public function save() { $values = $this->request->getValues(); $name = isset($values['name']) ? $values['name'] : ''; if ($name !== '' && $this->workspaces()->addWorkspace($name)) { $this->flash->success(t('Workspace created successfully.')); $this->backToIndex(); } else { $this->create($values, array('name' => array(t('Invalid name, or a workspace with this name already exists.')))); } } public function edit(array $values = array(), array $errors = array()) { if (empty($values)) { $name = $this->request->getStringParam('name'); $values = array('old' => $name, 'name' => $name); } $this->response->html($this->template->render('workspaceOrg:workspace/edit', array( 'values' => $values, 'errors' => $errors, ))); } public function update() { $values = $this->request->getValues(); $old = isset($values['old']) ? $values['old'] : ''; $name = isset($values['name']) ? $values['name'] : ''; if ($name !== '' && $this->workspaces()->renameWorkspace($old, $name)) { $this->flash->success(t('Workspace renamed successfully.')); $this->backToIndex(); } else { $this->edit($values, array('name' => array(t('Invalid name, or a workspace with this name already exists.')))); } } public function confirm() { $this->response->html($this->template->render('workspaceOrg:workspace/remove', array( 'name' => $this->request->getStringParam('name'), ))); } public function remove() { $this->checkCSRFParam(); if ($this->workspaces()->removeWorkspace($this->request->getStringParam('name'))) { $this->flash->success(t('Workspace removed. Its projects moved to Default.')); } else { $this->flash->failure(t('Unable to remove this workspace.')); } $this->backToIndex(); } public function assign() { $values = $this->request->getValues(); $project_id = isset($values['project_id']) ? (int) $values['project_id'] : 0; $workspace = isset($values['workspace']) ? $values['workspace'] : WorkspaceOrgHelper::DEFAULT_WORKSPACE; if ($project_id > 0) { $this->workspaces()->assign($project_id, $workspace); $this->flash->success(t('Project moved.')); } $this->backToIndex(); } }