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

Uniformized handle data

Summary:
This sets more reasonable values for the object handle fields imo. It's not like I ever want to find out what letter to use and then do `substr($handle->getType(), 0, 1).$handle->getID()` to get `D1` each time I use handles.

Name:

- D1
- T1
- M1
- P1
- etc.

Fullname:

- D1: Something
- T1: Something
- etc.

In addition, this helps me to reasonable prefill Hovercards in case there is no application-specific event listener.

Also deletes `title` and `alternateID` completely. They deserved that.

Test Plan:
Visited places, nothing broke (We only ever used `$handle->getName()` for users and commits).

Tested mail reply handler. Did not test the other way around, but should be fine.

Hovercards broken until D5572 (would love to induce a cyclic dependency)

Reviewers: epriestley, chad, btrahan

Reviewed By: epriestley

CC: aran, Korvin

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

authored by

Anh Nhan Nguyen and committed by
epriestley
d3020af9 1d4c9b8d

+26 -33
+1 -1
src/applications/differential/field/specification/DifferentialManiphestTasksFieldSpecification.php
··· 115 115 $names = array(); 116 116 foreach ($this->maniphestTasks as $phid) { 117 117 $handle = $this->getHandle($phid); 118 - $names[] = 'T'.$handle->getAlternateID(); 118 + $names[] = $handle->getName(); 119 119 } 120 120 return implode(', ', $names); 121 121 }
+5 -1
src/applications/metamta/replyhandler/PhabricatorMailReplyHandler.php
··· 285 285 return null; 286 286 } 287 287 288 + $user = head(id(new PhabricatorPeopleQuery()) 289 + ->withPhids(array($handle->getPHID())) 290 + ->execute()); 291 + 288 292 $receiver = $this->getMailReceiver(); 289 293 $receiver_id = $receiver->getID(); 290 - $user_id = $handle->getAlternateID(); 294 + $user_id = $user->getID(); 291 295 $hash = PhabricatorMetaMTAReceivedMail::computeMailHash( 292 296 $receiver->getMailKey(), 293 297 $handle->getPHID());
-19
src/applications/phid/PhabricatorObjectHandle.php
··· 6 6 private $phid; 7 7 private $type; 8 8 private $name; 9 - private $email; 10 9 private $fullName; 11 10 private $imageURI; 12 11 private $timestamp; 13 - private $alternateID; 14 12 private $status = PhabricatorObjectHandleStatus::STATUS_OPEN; 15 - private $title; 16 13 private $complete; 17 14 private $disabled; 18 15 ··· 52 49 return $this->status; 53 50 } 54 51 55 - public function setTitle($title) { 56 - $this->title = $title; 57 - return $this; 58 - } 59 - 60 52 public function setFullName($full_name) { 61 53 $this->fullName = $full_name; 62 54 return $this; ··· 96 88 return $this->timestamp; 97 89 } 98 90 99 - public function setAlternateID($alternate_id) { 100 - $this->alternateID = $alternate_id; 101 - return $this; 102 - } 103 - 104 - public function getAlternateID() { 105 - return $this->alternateID; 106 - } 107 - 108 91 public function getTypeName() { 109 92 static $map = array( 110 93 PhabricatorPHIDConstants::PHID_TYPE_USER => 'User', ··· 190 173 191 174 if ($this->status != PhabricatorObjectHandleStatus::STATUS_OPEN) { 192 175 $class .= ' handle-status-'.$this->status; 193 - $title = (isset($this->title) ? $this->title : $this->status); 194 176 } 195 177 196 178 if ($this->disabled) { ··· 203 185 array( 204 186 'href' => $this->getURI(), 205 187 'class' => $class, 206 - 'title' => $title, 207 188 ), 208 189 $name); 209 190 }
+20 -11
src/applications/phid/handle/PhabricatorObjectHandleData.php
··· 41 41 switch ($type) { 42 42 43 43 case PhabricatorPHIDConstants::PHID_TYPE_USER: 44 + // TODO: Update query + Batch User Images 44 45 $user_dao = new PhabricatorUser(); 45 46 $users = $user_dao->loadAllWhere( 46 47 'phid in (%Ls)', ··· 55 56 return mpull($commits, null, 'getPHID'); 56 57 57 58 case PhabricatorPHIDConstants::PHID_TYPE_TASK: 59 + // TODO: Update this to ManiphestTaskQuery, //especially// after we have 60 + // policy-awareness 58 61 $task_dao = new ManiphestTask(); 59 62 $tasks = $task_dao->loadAllWhere( 60 63 'phid IN (%Ls)', ··· 69 72 return mpull($entries, null, 'getPHID'); 70 73 71 74 case PhabricatorPHIDConstants::PHID_TYPE_FILE: 75 + // TODO: Update this to PhabricatorFileQuery 72 76 $object = new PhabricatorFile(); 73 77 $files = $object->loadAllWhere('phid IN (%Ls)', $phids); 74 78 return mpull($files, null, 'getPHID'); ··· 81 85 return mpull($projects, null, 'getPHID'); 82 86 83 87 case PhabricatorPHIDConstants::PHID_TYPE_REPO: 88 + // TODO: Update this to PhabricatorRepositoryQuery 84 89 $object = new PhabricatorRepository(); 85 90 $repositories = $object->loadAllWhere('phid in (%Ls)', $phids); 86 91 return mpull($repositories, null, 'getPHID'); ··· 103 108 return mpull($lists, null, 'getPHID'); 104 109 105 110 case PhabricatorPHIDConstants::PHID_TYPE_DREV: 111 + // TODO: Update this to DifferentialRevisionQuery 106 112 $revision_dao = new DifferentialRevision(); 107 113 $revisions = $revision_dao->loadAllWhere( 108 114 'phid IN (%Ls)', ··· 110 116 return mpull($revisions, null, 'getPHID'); 111 117 112 118 case PhabricatorPHIDConstants::PHID_TYPE_WIKI: 119 + // TODO: Update this to PhrictionDocumentQuery, already pre-package 120 + // content DAO 113 121 $document_dao = new PhrictionDocument(); 114 122 $documents = $document_dao->loadAllWhere( 115 123 'phid IN (%Ls)', ··· 260 268 $handle->setURI('/p/'.$user->getUsername().'/'); 261 269 $handle->setFullName( 262 270 $user->getUsername().' ('.$user->getRealName().')'); 263 - $handle->setAlternateID($user->getID()); 264 271 $handle->setComplete(true); 265 272 if (isset($statuses[$phid])) { 266 273 $handle->setStatus($statuses[$phid]->getTextStatus()); 267 - $handle->setTitle( 268 - $statuses[$phid]->getTerseSummary($this->viewer)); 269 274 } 270 275 $handle->setDisabled($user->getIsDisabled()); 271 276 ··· 308 313 $handle->setName('Unknown Revision'); 309 314 } else { 310 315 $rev = $objects[$phid]; 311 - $handle->setName($rev->getTitle()); 316 + $handle->setName('D'.$rev->getID()); 312 317 $handle->setURI('/D'.$rev->getID()); 313 318 $handle->setFullName('D'.$rev->getID().': '.$rev->getTitle()); 314 319 $handle->setComplete(true); ··· 367 372 $handle->setName('Unknown Task'); 368 373 } else { 369 374 $task = $objects[$phid]; 370 - $handle->setName($task->getTitle()); 375 + $handle->setName('T'.$task->getID()); 371 376 $handle->setURI('/T'.$task->getID()); 372 377 $handle->setFullName('T'.$task->getID().': '.$task->getTitle()); 373 378 $handle->setComplete(true); 374 - $handle->setAlternateID($task->getID()); 375 379 if ($task->getStatus() != ManiphestTaskStatus::STATUS_OPEN) { 376 380 $closed = PhabricatorObjectHandleStatus::STATUS_CLOSED; 377 381 $handle->setStatus($closed); ··· 408 412 $handle->setName('Unknown File'); 409 413 } else { 410 414 $file = $objects[$phid]; 411 - $handle->setName($file->getName()); 415 + $handle->setName('F'.$file->getID()); 416 + $handle->setFullName('F'.$file->getID().' '.$file->getName()); 412 417 $handle->setURI($file->getBestURI()); 413 418 $handle->setComplete(true); 414 419 } ··· 442 447 $handle->setName('Unknown Repository'); 443 448 } else { 444 449 $repository = $objects[$phid]; 445 - $handle->setName($repository->getCallsign()); 450 + $handle->setName('r'.$repository->getCallsign()); 446 451 $handle->setFullName("r" . $repository->getCallsign() . 447 452 " (" . $repository->getName() . ")"); 448 453 $handle->setURI('/diffusion/'.$repository->getCallsign().'/'); ··· 486 491 break; 487 492 488 493 case PhabricatorPHIDConstants::PHID_TYPE_WIKI: 494 + // TODO: Update this 489 495 $document_dao = new PhrictionDocument(); 490 496 $content_dao = new PhrictionContent(); 491 497 ··· 510 516 $info = $documents[$phid]; 511 517 $handle->setName($info['title']); 512 518 $handle->setURI(PhrictionDocument::getSlugURI($info['slug'])); 519 + $handle->setFullName($info['title']); 513 520 $handle->setComplete(true); 514 521 if ($info['status'] != PhrictionDocumentStatus::STATUS_EXISTS) { 515 522 $closed = PhabricatorObjectHandleStatus::STATUS_CLOSED; ··· 529 536 $handle->setName('Unknown Ponder Question'); 530 537 } else { 531 538 $question = $objects[$phid]; 532 - $handle->setName(phutil_utf8_shorten($question->getTitle(), 60)); 539 + $handle->setName('Q' . $question->getID()); 540 + $handle->setFullName( 541 + phutil_utf8_shorten($question->getTitle(), 60)); 533 542 $handle->setURI(new PhutilURI('/Q' . $question->getID())); 534 543 $handle->setComplete(true); 535 544 } ··· 546 555 $handle->setName('Unknown Paste'); 547 556 } else { 548 557 $paste = $objects[$phid]; 549 - $handle->setName($paste->getTitle()); 558 + $handle->setName('P'.$paste->getID()); 550 559 $handle->setFullName($paste->getFullName()); 551 560 $handle->setURI('/P'.$paste->getID()); 552 561 $handle->setComplete(true); ··· 600 609 $handle->setName('Unknown Mock'); 601 610 } else { 602 611 $mock = $objects[$phid]; 603 - $handle->setName($mock->getName()); 612 + $handle->setName('M'.$mock->getID()); 604 613 $handle->setFullName('M'.$mock->getID().': '.$mock->getName()); 605 614 $handle->setURI('/M'.$mock->getID()); 606 615 $handle->setComplete(true);
-1
src/applications/uiexample/examples/PhabricatorUIExample.php
··· 22 22 23 23 $id = mt_rand(15, 9999); 24 24 $handle = new PhabricatorObjectHandle(); 25 - $handle->setAlternateID(mt_rand(15, 9999)); 26 25 $handle->setName($name); 27 26 $handle->setType($type); 28 27 $handle->setPHID(PhabricatorPHID::generateNewPHID($type));