@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 140 lines 3.2 kB view raw
1<?php 2 3/** 4 * @task commitmessage Integration with Commit Messages 5 * @task diff Integration with Diff Properties 6 */ 7abstract class DifferentialCustomField 8 extends PhabricatorCustomField { 9 10 /** 11 * TODO: It would be nice to remove this, but a lot of different code is 12 * bound together by it. Until everything is modernized, retaining the old 13 * field keys is the only reasonable way to update things one piece 14 * at a time. 15 */ 16 public function getFieldKeyForConduit() { 17 return $this->getFieldKey(); 18 } 19 20 // TODO: As above. 21 public function getModernFieldKey() { 22 return $this->getFieldKeyForConduit(); 23 } 24 25 protected function parseObjectList( 26 $value, 27 array $types, 28 $allow_partial = false, 29 array $suffixes = array()) { 30 return id(new PhabricatorObjectListQuery()) 31 ->setViewer($this->getViewer()) 32 ->setAllowedTypes($types) 33 ->setObjectList($value) 34 ->setAllowPartialResults($allow_partial) 35 ->setSuffixes($suffixes) 36 ->execute(); 37 } 38 39 protected function renderObjectList( 40 array $handles, 41 array $suffixes = array()) { 42 43 if (!$handles) { 44 return null; 45 } 46 47 $out = array(); 48 foreach ($handles as $handle) { 49 $phid = $handle->getPHID(); 50 51 if ($handle->getPolicyFiltered()) { 52 $token = $phid; 53 } else if ($handle->isComplete()) { 54 $token = $handle->getCommandLineObjectName(); 55 } 56 57 $suffix = idx($suffixes, $phid); 58 $token = $token.$suffix; 59 60 $out[] = $token; 61 } 62 63 return implode(', ', $out); 64 } 65 66 public function getWarningsForDetailView() { 67 if ($this->getProxy()) { 68 return $this->getProxy()->getWarningsForDetailView(); 69 } 70 return array(); 71 } 72 73 protected function getActiveDiff() { 74 $object = $this->getObject(); 75 try { 76 return $object->getActiveDiff(); 77 } catch (Exception $ex) { 78 return null; 79 } 80 } 81 82 public function getRequiredHandlePHIDsForRevisionHeaderWarnings() { 83 return array(); 84 } 85 86 public function getWarningsForRevisionHeader(array $handles) { 87 return array(); 88 } 89 90 91/* -( Integration with Commit Messages )----------------------------------- */ 92 93 94 /** 95 * @task commitmessage 96 */ 97 public function getProTips() { 98 if ($this->getProxy()) { 99 return $this->getProxy()->getProTips(); 100 } 101 return array(); 102 } 103 104 105/* -( Integration with Diff Properties )----------------------------------- */ 106 107 108 /** 109 * @task diff 110 */ 111 public function shouldAppearInDiffPropertyView() { 112 if ($this->getProxy()) { 113 return $this->getProxy()->shouldAppearInDiffPropertyView(); 114 } 115 return false; 116 } 117 118 119 /** 120 * @task diff 121 */ 122 public function renderDiffPropertyViewLabel(DifferentialDiff $diff) { 123 if ($this->getProxy()) { 124 return $this->getProxy()->renderDiffPropertyViewLabel($diff); 125 } 126 return $this->getFieldName(); 127 } 128 129 130 /** 131 * @task diff 132 */ 133 public function renderDiffPropertyViewValue(DifferentialDiff $diff) { 134 if ($this->getProxy()) { 135 return $this->getProxy()->renderDiffPropertyViewValue($diff); 136 } 137 throw new PhabricatorCustomFieldImplementationIncompleteException($this); 138 } 139 140}