[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorRepositoryArcanistProjectEditController 4 extends PhabricatorRepositoryController { 5 6 private $id; 7 8 public function willProcessRequest(array $data) { 9 $this->id = $data['id']; 10 } 11 12 public function processRequest() { 13 14 $request = $this->getRequest(); 15 $user = $request->getUser(); 16 17 $project = id(new PhabricatorRepositoryArcanistProject())->load($this->id); 18 if (!$project) { 19 return new Aphront404Response(); 20 } 21 22 $repositories = id(new PhabricatorRepositoryQuery()) 23 ->setViewer($user) 24 ->execute(); 25 $repos = array( 26 0 => 'None', 27 ); 28 foreach ($repositories as $repository) { 29 $callsign = $repository->getCallsign(); 30 $name = $repository->getname(); 31 $repos[$repository->getID()] = "r{$callsign} ({$name})"; 32 } 33 // note "None" will still be first thanks to 'r' prefix 34 asort($repos); 35 36 if ($request->isFormPost()) { 37 38 $indexed = $request->getStrList('symbolIndexLanguages'); 39 $indexed = array_map('strtolower', $indexed); 40 $project->setSymbolIndexLanguages($indexed); 41 42 $project->setSymbolIndexProjects($request->getArr('symbolIndexProjects')); 43 44 $repo_id = $request->getInt('repository', 0); 45 if (isset($repos[$repo_id])) { 46 $project->setRepositoryID($repo_id); 47 $project->save(); 48 49 return id(new AphrontRedirectResponse()) 50 ->setURI('/repository/'); 51 } 52 } 53 54 $langs = $project->getSymbolIndexLanguages(); 55 if ($langs) { 56 $langs = implode(', ', $langs); 57 } else { 58 $langs = null; 59 } 60 61 if ($project->getSymbolIndexProjects()) { 62 $uses = id(new PhabricatorHandleQuery()) 63 ->setViewer($user) 64 ->withPHIDs($project->getSymbolIndexProjects()) 65 ->execute(); 66 } else { 67 $uses = array(); 68 } 69 70 $form = id(new AphrontFormView()) 71 ->setUser($user) 72 ->appendChild( 73 id(new AphrontFormStaticControl()) 74 ->setLabel('Name') 75 ->setValue($project->getName())) 76 ->appendChild( 77 id(new AphrontFormStaticControl()) 78 ->setLabel('PHID') 79 ->setValue($project->getPHID())) 80 ->appendChild( 81 id(new AphrontFormSelectControl()) 82 ->setLabel('Repository') 83 ->setOptions($repos) 84 ->setName('repository') 85 ->setValue($project->getRepositoryID())) 86 ->appendChild( 87 id(new AphrontFormTextControl()) 88 ->setLabel('Indexed Languages') 89 ->setName('symbolIndexLanguages') 90 ->setCaption(pht( 91 'Separate with commas, for example: %s', 92 phutil_tag('tt', array(), 'php, py'))) 93 ->setValue($langs)) 94 ->appendChild( 95 id(new AphrontFormTokenizerControl()) 96 ->setLabel('Uses Symbols From') 97 ->setName('symbolIndexProjects') 98 ->setDatasource(new DiffusionArcanistProjectDatasource()) 99 ->setValue($uses)) 100 ->appendChild( 101 id(new AphrontFormSubmitControl()) 102 ->addCancelButton('/repository/') 103 ->setValue('Save')); 104 105 $panel = new AphrontPanelView(); 106 $panel->setWidth(AphrontPanelView::WIDTH_WIDE); 107 $panel->setHeader('Edit Arcanist Project'); 108 $panel->appendChild($form); 109 110 return $this->buildStandardPageResponse( 111 $panel, 112 array( 113 'title' => 'Edit Project', 114 )); 115 } 116 117 }
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 |