@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
at upstream/main 83 lines 2.6 kB view raw
1<?php 2 3final class PHUIHovercardUIExample extends PhabricatorUIExample { 4 5 public function getName() { 6 return pht('Hovercard'); 7 } 8 9 public function getDescription() { 10 return pht( 11 'Use %s to render hovercards.', 12 phutil_tag('tt', array(), 'PHUIHovercardView')); 13 } 14 15 public function getCategory() { 16 return pht('Single Use'); 17 } 18 19 public function renderExample() { 20 $request = $this->getRequest(); 21 $user = $request->getUser(); 22 23 $elements = array(); 24 25 $diff_handle = $this->createBasicDummyHandle( 26 'D123', 27 DifferentialRevisionPHIDType::TYPECONST, 28 pht('Introduce cooler Differential Revisions')); 29 30 $panel = $this->createPanel(pht('Differential Hovercard')); 31 $panel->appendChild(id(new PHUIHovercardView()) 32 ->setObjectHandle($diff_handle) 33 ->addField(pht('Author'), $user->getUsername()) 34 ->addField(pht('Updated'), phabricator_datetime(time(), $user)) 35 ->addAction(pht('Subscribe'), '/dev/random') 36 ->setUser($user)); 37 $elements[] = $panel; 38 39 $task_handle = $this->createBasicDummyHandle( 40 'T123', 41 ManiphestTaskPHIDType::TYPECONST, 42 pht('Improve Mobile Experience')); 43 44 $tag = id(new PHUITagView()) 45 ->setType(PHUITagView::TYPE_STATE) 46 ->setName(pht('Closed, Resolved')); 47 $panel = $this->createPanel(pht('Maniphest Hovercard')); 48 $panel->appendChild(id(new PHUIHovercardView()) 49 ->setObjectHandle($task_handle) 50 ->setUser($user) 51 ->addField(pht('Assigned to'), $user->getUsername()) 52 ->addField(pht('Dependent Tasks'), 'T123, T124, T125') 53 ->addAction(pht('Subscribe'), '/dev/random') 54 ->addAction(pht('Create Subtask'), '/dev/urandom') 55 ->addTag($tag)); 56 $elements[] = $panel; 57 58 $user_handle = $this->createBasicDummyHandle( 59 'gwashington', 60 PhabricatorPeopleUserPHIDType::TYPECONST, 61 'George Washington'); 62 $user_handle->setImageURI( 63 celerity_get_resource_uri('/rsrc/image/people/washington.png')); 64 $panel = $this->createPanel(pht('Whatevery Hovercard')); 65 $panel->appendChild(id(new PHUIHovercardView()) 66 ->setObjectHandle($user_handle) 67 ->addField(pht('Status'), pht('Available')) 68 ->addField(pht('Member since'), '30. February 1750') 69 ->addAction(pht('Send a Message'), '/dev/null') 70 ->setUser($user)); 71 $elements[] = $panel; 72 73 return phutil_implode_html('', $elements); 74 } 75 76 private function createPanel($header) { 77 $panel = new PHUIBoxView(); 78 $panel->addClass('grouped'); 79 $panel->addClass('ml'); 80 return $panel; 81 } 82 83}