[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class DifferentialProjectsField 4 extends DifferentialCoreCustomField { 5 6 public function getFieldKey() { 7 return 'phabricator:projects'; 8 } 9 10 public function getFieldName() { 11 return pht('Projects'); 12 } 13 14 public function getFieldDescription() { 15 return pht('Tag projects.'); 16 } 17 18 public function shouldAppearInPropertyView() { 19 return false; 20 } 21 22 public function shouldAppearInEditView() { 23 return true; 24 } 25 26 public function shouldAppearInApplicationTransactions() { 27 return true; 28 } 29 30 protected function readValueFromRevision( 31 DifferentialRevision $revision) { 32 if (!$revision->getPHID()) { 33 return array(); 34 } 35 36 $projects = PhabricatorEdgeQuery::loadDestinationPHIDs( 37 $revision->getPHID(), 38 PhabricatorProjectObjectHasProjectEdgeType::EDGECONST); 39 $projects = array_reverse($projects); 40 41 return $projects; 42 } 43 44 public function getNewValueForApplicationTransactions() { 45 return array('=' => array_fuse($this->getValue())); 46 } 47 48 public function readValueFromRequest(AphrontRequest $request) { 49 $this->setValue($request->getArr($this->getFieldKey())); 50 } 51 52 public function getRequiredHandlePHIDsForEdit() { 53 return $this->getValue(); 54 } 55 56 public function renderEditControl(array $handles) { 57 return id(new AphrontFormTokenizerControl()) 58 ->setName($this->getFieldKey()) 59 ->setDatasource(new PhabricatorProjectDatasource()) 60 ->setValue($handles) 61 ->setLabel($this->getFieldName()); 62 } 63 64 public function getApplicationTransactionType() { 65 return PhabricatorTransactions::TYPE_EDGE; 66 } 67 68 public function shouldAppearInCommitMessage() { 69 return true; 70 } 71 72 public function shouldAllowEditInCommitMessage() { 73 return true; 74 } 75 76 public function shouldOverwriteWhenCommitMessageIsEdited() { 77 return true; 78 } 79 80 public function getCommitMessageLabels() { 81 return array( 82 'Project', 83 'Projects', 84 ); 85 } 86 87 public function getRequiredHandlePHIDsForCommitMessage() { 88 return $this->getValue(); 89 } 90 91 public function renderCommitMessageValue(array $handles) { 92 return $this->renderObjectList($handles); 93 } 94 95 public function shouldAppearInConduitDictionary() { 96 return true; 97 } 98 99 public function getApplicationTransactionMetadata() { 100 return array( 101 'edge:type' => PhabricatorProjectObjectHasProjectEdgeType::EDGECONST, 102 ); 103 } 104 105 public function parseValueFromCommitMessage($value) { 106 return $this->parseObjectList( 107 $value, 108 array( 109 PhabricatorProjectProjectPHIDType::TYPECONST, 110 )); 111 } 112 113 }
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 |