public function runEditSavedSearch(TBGRequest $request) { if ($request->isPost()) { if ($request['delete_saved_search']) { try { if (!$this->search_object instanceof TBGSavedSearch || !$this->search_object->getB2DBID()) { throw new Exception('not a saved search'); } if ($this->search_object->getUserID() == TBGContext::getUser()->getID() || $this->search_object->isPublic() && TBGContext::getUser()->canCreatePublicSearches()) { $search->delete(); return $this->renderJSON(array('failed' => false, 'message' => TBGContext::getI18n()->__('The saved search was deleted successfully'))); } } catch (Exception $e) { return $this->renderJSON(array('failed' => true, 'message' => TBGContext::getI18n()->__('Cannot delete this saved search'))); } } elseif ($request['saved_search_name'] != '') { // $project_id = (TBGContext::isProjectContext()) ? TBGContext::getCurrentProject()->getID() : 0; // TBGSavedSearchesTable::getTable()->saveSearch($request['saved_search_name'], $request['saved_search_description'], $request['saved_search_public'], $this->filters, $this->groupby, $this->grouporder, $this->ipp, $this->templatename, $this->template_parameter, $project_id, $request['saved_search_id']); if (!$search instanceof TBGSavedSearch) { $search = new TBGSavedSearch(); } $search->setName($request['saved_search_name']); $search->setDescription($request['saved_search_description']); $search->setIsPublic((bool) $request['saved_search_public']); $search->save(); if ($request['saved_search_id']) { TBGContext::setMessage('search_message', TBGContext::getI18n()->__('The saved search was updated')); } else { TBGContext::setMessage('search_message', TBGContext::getI18n()->__('The saved search has been created')); } $params = array(); } else { TBGContext::setMessage('search_error', TBGContext::getI18n()->__('You have to specify a name for the saved search')); $params = array('fs' => $this->filters, 'groupby' => $this->groupby, 'grouporder' => $this->grouporder, 'templatename' => $this->templatename, 'saved_search' => $request['saved_search_id'], 'issues_per_page' => $this->ipp); } if (TBGContext::isProjectContext()) { $route = 'project_issues'; $params['project_key'] = TBGContext::getCurrentProject()->getKey(); } else { $route = 'search'; } $this->forward(TBGContext::getRouting()->generate($route, $params)); } }