[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorSearchEditController 4 extends PhabricatorSearchBaseController { 5 6 private $queryKey; 7 8 public function willProcessRequest(array $data) { 9 $this->queryKey = idx($data, 'queryKey'); 10 } 11 12 public function processRequest() { 13 $request = $this->getRequest(); 14 $user = $request->getUser(); 15 16 $saved_query = id(new PhabricatorSavedQueryQuery()) 17 ->setViewer($user) 18 ->withQueryKeys(array($this->queryKey)) 19 ->executeOne(); 20 21 if (!$saved_query) { 22 return new Aphront404Response(); 23 } 24 25 $engine = $saved_query->newEngine()->setViewer($user); 26 27 $complete_uri = $engine->getQueryManagementURI(); 28 $cancel_uri = $complete_uri; 29 30 $named_query = id(new PhabricatorNamedQueryQuery()) 31 ->setViewer($user) 32 ->withQueryKeys(array($saved_query->getQueryKey())) 33 ->withUserPHIDs(array($user->getPHID())) 34 ->executeOne(); 35 if (!$named_query) { 36 $named_query = id(new PhabricatorNamedQuery()) 37 ->setUserPHID($user->getPHID()) 38 ->setQueryKey($saved_query->getQueryKey()) 39 ->setEngineClassName($saved_query->getEngineClassName()); 40 41 // If we haven't saved the query yet, this is a "Save..." operation, so 42 // take the user back to the query if they cancel instead of back to the 43 // management interface. 44 $cancel_uri = $engine->getQueryResultsPageURI( 45 $saved_query->getQueryKey()); 46 } 47 48 $e_name = true; 49 $errors = array(); 50 51 if ($request->isFormPost()) { 52 $named_query->setQueryName($request->getStr('name')); 53 if (!strlen($named_query->getQueryName())) { 54 $e_name = pht('Required'); 55 $errors[] = pht('You must name the query.'); 56 } else { 57 $e_name = null; 58 } 59 60 if (!$errors) { 61 $named_query->save(); 62 return id(new AphrontRedirectResponse())->setURI($complete_uri); 63 } 64 } 65 66 $form = id(new AphrontFormView()) 67 ->setUser($user); 68 69 $form->appendChild( 70 id(new AphrontFormTextControl()) 71 ->setName('name') 72 ->setLabel(pht('Query Name')) 73 ->setValue($named_query->getQueryName()) 74 ->setError($e_name)); 75 76 $form->appendChild( 77 id(new AphrontFormSubmitControl()) 78 ->setValue(pht('Save Query')) 79 ->addCancelButton($cancel_uri)); 80 81 if ($named_query->getID()) { 82 $title = pht('Edit Saved Query'); 83 } else { 84 $title = pht('Save Query'); 85 } 86 87 $form_box = id(new PHUIObjectBoxView()) 88 ->setHeaderText($title) 89 ->setFormErrors($errors) 90 ->setForm($form); 91 92 $crumbs = $this->buildApplicationCrumbs(); 93 $crumbs->addTextCrumb($title); 94 95 return $this->buildApplicationPage( 96 array( 97 $crumbs, 98 $form_box, 99 ), 100 array( 101 'title' => $title, 102 )); 103 } 104 105 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |