@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.

Remove "Primary Owner" from Owners

Summary:
Ref T8320. This field doesn't have any special effects and has no reason to exist. Primary owners are always already owners.

This makes one minor implicit change to Owners: it is now possible to create a package with no owners. That seems fine; it is reasonable to create a package purely as an organizational tool and use it in, e.g., Herald.

Test Plan: Created and edited packages.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T8320

Differential Revision: https://secure.phabricator.com/D13921

+4 -78
-1
src/applications/owners/conduit/OwnersQueryConduitAPIMethod.php
··· 110 110 'phid' => $package->getPHID(), 111 111 'name' => $package->getName(), 112 112 'description' => $package->getDescription(), 113 - 'primaryOwner' => $package->getPrimaryOwnerPHID(), 114 113 'owners' => $owners, 115 114 'paths' => $paths, 116 115 );
-8
src/applications/owners/controller/PhabricatorOwnersDetailController.php
··· 150 150 $view = id(new PHUIPropertyListView()) 151 151 ->setUser($viewer); 152 152 153 - $primary_phid = $package->getPrimaryOwnerPHID(); 154 - if ($primary_phid) { 155 - $primary_owner = $viewer->renderHandle($primary_phid); 156 - } else { 157 - $primary_owner = phutil_tag('em', array(), pht('None')); 158 - } 159 - $view->addProperty(pht('Primary Owner'), $primary_owner); 160 - 161 153 // TODO: needOwners() this on the Query. 162 154 $owners = $package->loadOwners(); 163 155 if ($owners) {
-28
src/applications/owners/controller/PhabricatorOwnersEditController.php
··· 28 28 } 29 29 30 30 $e_name = true; 31 - $e_primary = true; 32 31 33 32 $v_name = $package->getName(); 34 - $v_primary = $package->getPrimaryOwnerPHID(); 35 33 // TODO: Pull these off needOwners() on the Query. 36 34 $v_owners = mpull($package->loadOwners(), 'getUserPHID'); 37 35 $v_auditing = $package->getAuditingEnabled(); ··· 43 41 $xactions = array(); 44 42 45 43 $v_name = $request->getStr('name'); 46 - $v_primary = head($request->getArr('primary')); 47 44 $v_owners = $request->getArr('owners'); 48 45 $v_auditing = ($request->getStr('auditing') == 'enabled'); 49 46 $v_description = $request->getStr('description'); 50 47 51 - if ($v_primary) { 52 - $v_owners[] = $v_primary; 53 - $v_owners = array_unique($v_owners); 54 - } 55 - 56 48 $type_name = PhabricatorOwnersPackageTransaction::TYPE_NAME; 57 - $type_primary = PhabricatorOwnersPackageTransaction::TYPE_PRIMARY; 58 49 $type_owners = PhabricatorOwnersPackageTransaction::TYPE_OWNERS; 59 50 $type_auditing = PhabricatorOwnersPackageTransaction::TYPE_AUDITING; 60 51 $type_description = PhabricatorOwnersPackageTransaction::TYPE_DESCRIPTION; ··· 62 53 $xactions[] = id(new PhabricatorOwnersPackageTransaction()) 63 54 ->setTransactionType($type_name) 64 55 ->setNewValue($v_name); 65 - 66 - $xactions[] = id(new PhabricatorOwnersPackageTransaction()) 67 - ->setTransactionType($type_primary) 68 - ->setNewValue($v_primary); 69 56 70 57 $xactions[] = id(new PhabricatorOwnersPackageTransaction()) 71 58 ->setTransactionType($type_owners) ··· 102 89 $validation_exception = $ex; 103 90 104 91 $e_name = $ex->getShortMessage($type_name); 105 - $e_primary = $ex->getShortMessage($type_primary); 106 92 } 107 93 } 108 94 109 - if ($v_primary) { 110 - $value_primary_owner = array($v_primary); 111 - } else { 112 - $value_primary_owner = array(); 113 - } 114 - 115 95 if ($is_new) { 116 96 $cancel_uri = '/owners/'; 117 97 $title = pht('New Package'); ··· 130 110 ->setName('name') 131 111 ->setValue($v_name) 132 112 ->setError($e_name)) 133 - ->appendControl( 134 - id(new AphrontFormTokenizerControl()) 135 - ->setDatasource(new PhabricatorProjectOrUserDatasource()) 136 - ->setLabel(pht('Primary Owner')) 137 - ->setName('primary') 138 - ->setLimit(1) 139 - ->setValue($value_primary_owner) 140 - ->setError($e_primary)) 141 113 ->appendControl( 142 114 id(new AphrontFormTokenizerControl()) 143 115 ->setDatasource(new PhabricatorProjectOrUserDatasource())
-25
src/applications/owners/editor/PhabricatorOwnersPackageTransactionEditor.php
··· 15 15 $types = parent::getTransactionTypes(); 16 16 17 17 $types[] = PhabricatorOwnersPackageTransaction::TYPE_NAME; 18 - $types[] = PhabricatorOwnersPackageTransaction::TYPE_PRIMARY; 19 18 $types[] = PhabricatorOwnersPackageTransaction::TYPE_OWNERS; 20 19 $types[] = PhabricatorOwnersPackageTransaction::TYPE_AUDITING; 21 20 $types[] = PhabricatorOwnersPackageTransaction::TYPE_DESCRIPTION; ··· 31 30 switch ($xaction->getTransactionType()) { 32 31 case PhabricatorOwnersPackageTransaction::TYPE_NAME: 33 32 return $object->getName(); 34 - case PhabricatorOwnersPackageTransaction::TYPE_PRIMARY: 35 - return $object->getPrimaryOwnerPHID(); 36 33 case PhabricatorOwnersPackageTransaction::TYPE_OWNERS: 37 34 // TODO: needOwners() this on the Query. 38 35 $phids = mpull($object->loadOwners(), 'getUserPHID'); ··· 54 51 55 52 switch ($xaction->getTransactionType()) { 56 53 case PhabricatorOwnersPackageTransaction::TYPE_NAME: 57 - case PhabricatorOwnersPackageTransaction::TYPE_PRIMARY: 58 54 case PhabricatorOwnersPackageTransaction::TYPE_DESCRIPTION: 59 55 case PhabricatorOwnersPackageTransaction::TYPE_PATHS: 60 56 return $xaction->getNewValue(); ··· 93 89 switch ($xaction->getTransactionType()) { 94 90 case PhabricatorOwnersPackageTransaction::TYPE_NAME: 95 91 $object->setName($xaction->getNewValue()); 96 - return; 97 - case PhabricatorOwnersPackageTransaction::TYPE_PRIMARY: 98 - $object->setPrimaryOwnerPHID($xaction->getNewValue()); 99 92 return; 100 93 case PhabricatorOwnersPackageTransaction::TYPE_DESCRIPTION: 101 94 $object->setDescription($xaction->getNewValue()); ··· 117 110 118 111 switch ($xaction->getTransactionType()) { 119 112 case PhabricatorOwnersPackageTransaction::TYPE_NAME: 120 - case PhabricatorOwnersPackageTransaction::TYPE_PRIMARY: 121 113 case PhabricatorOwnersPackageTransaction::TYPE_DESCRIPTION: 122 114 case PhabricatorOwnersPackageTransaction::TYPE_AUDITING: 123 115 return; ··· 200 192 $errors[] = $error; 201 193 } 202 194 break; 203 - case PhabricatorOwnersPackageTransaction::TYPE_PRIMARY: 204 - $missing = $this->validateIsEmptyTextField( 205 - $object->getPrimaryOwnerPHID(), 206 - $xactions); 207 - 208 - if ($missing) { 209 - $error = new PhabricatorApplicationTransactionValidationError( 210 - $type, 211 - pht('Required'), 212 - pht('Packages must have a primary owner.'), 213 - nonempty(last($xactions), null)); 214 - 215 - $error->setIsMissingFieldError(true); 216 - $errors[] = $error; 217 - } 218 - break; 219 195 } 220 196 221 197 return $errors; ··· 245 221 246 222 protected function getMailTo(PhabricatorLiskDAO $object) { 247 223 return array( 248 - $object->getPrimaryOwnerPHID(), 249 224 $this->requireActor()->getPHID(), 250 225 ); 251 226 }
+1 -2
src/applications/owners/storage/PhabricatorOwnersPackage.php
··· 17 17 18 18 public static function initializeNewPackage(PhabricatorUser $actor) { 19 19 return id(new PhabricatorOwnersPackage()) 20 - ->setAuditingEnabled(0) 21 - ->setPrimaryOwnerPHID($actor->getPHID()); 20 + ->setAuditingEnabled(0); 22 21 } 23 22 24 23 public function getCapabilities() {
+3 -14
src/applications/owners/storage/PhabricatorOwnersPackageTransaction.php
··· 25 25 $new = $this->getNewValue(); 26 26 27 27 switch ($this->getTransactionType()) { 28 - case self::TYPE_PRIMARY: 29 - if ($old) { 30 - $phids[] = $old; 31 - } 32 - if ($new) { 33 - $phids[] = $new; 34 - } 35 - break; 36 28 case self::TYPE_OWNERS: 37 29 $add = array_diff($new, $old); 38 30 foreach ($add as $phid) { ··· 55 47 switch ($this->getTransactionType()) { 56 48 case self::TYPE_DESCRIPTION: 57 49 return ($old === null); 50 + case self::TYPE_PRIMARY: 51 + // TODO: Eventually, remove these transactions entirely. 52 + return true; 58 53 } 59 54 } 60 55 ··· 76 71 $old, 77 72 $new); 78 73 } 79 - case self::TYPE_PRIMARY: 80 - return pht( 81 - '%s changed the primary owner for this package from %s to %s.', 82 - $this->renderHandleLink($author_phid), 83 - $this->renderHandleLink($old), 84 - $this->renderHandleLink($new)); 85 74 case self::TYPE_OWNERS: 86 75 $add = array_diff($new, $old); 87 76 $rem = array_diff($old, $new);