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

Convert Nuance sources and queues to two-column + curtain

Summary: Ref T10537. Update the detail views.

Test Plan:
{F1162212}

{F1162213}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10537

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

+46 -87
+16 -33
src/applications/nuance/controller/NuanceQueueViewController.php
··· 19 19 $crumbs = $this->buildApplicationCrumbs(); 20 20 $crumbs->addTextCrumb(pht('Queues'), $this->getApplicationURI('queue/')); 21 21 $crumbs->addTextCrumb($queue->getName()); 22 + $crumbs->setBorder(true); 22 23 23 24 $header = $this->buildHeaderView($queue); 24 - $actions = $this->buildActionView($queue); 25 - $properties = $this->buildPropertyView($queue, $actions); 26 - 27 - $box = id(new PHUIObjectBoxView()) 28 - ->setHeader($header) 29 - ->addPropertyList($properties); 25 + $curtain = $this->buildCurtain($queue); 30 26 31 27 $timeline = $this->buildTransactionTimeline( 32 28 $queue, 33 29 new NuanceQueueTransactionQuery()); 34 30 $timeline->setShouldTerminate(true); 35 31 36 - return $this->buildApplicationPage( 37 - array( 38 - $crumbs, 39 - $box, 40 - $timeline, 41 - ), 42 - array( 43 - 'title' => $title, 44 - )); 32 + $view = id(new PHUITwoColumnView()) 33 + ->setHeader($header) 34 + ->setCurtain($curtain) 35 + ->setMainColumn($timeline); 36 + 37 + return $this->newPage() 38 + ->setTitle($title) 39 + ->setCrumbs($crumbs) 40 + ->appendChild($view); 45 41 } 46 42 47 43 private function buildHeaderView(NuanceQueue $queue) { ··· 55 51 return $header; 56 52 } 57 53 58 - private function buildActionView(NuanceQueue $queue) { 54 + private function buildCurtain(NuanceQueue $queue) { 59 55 $viewer = $this->getViewer(); 60 56 $id = $queue->getID(); 61 - 62 - $actions = id(new PhabricatorActionListView()) 63 - ->setUser($viewer); 64 57 65 58 $can_edit = PhabricatorPolicyFilter::hasCapability( 66 59 $viewer, 67 60 $queue, 68 61 PhabricatorPolicyCapability::CAN_EDIT); 69 62 70 - $actions->addAction( 63 + $curtain = $this->newCurtainView($queue); 64 + 65 + $curtain->addAction( 71 66 id(new PhabricatorActionView()) 72 67 ->setName(pht('Edit Queue')) 73 68 ->setIcon('fa-pencil') ··· 75 70 ->setDisabled(!$can_edit) 76 71 ->setWorkflow(!$can_edit)); 77 72 78 - return $actions; 73 + return $curtain; 79 74 } 80 75 81 - private function buildPropertyView( 82 - NuanceQueue $queue, 83 - PhabricatorActionListView $actions) { 84 - $viewer = $this->getViewer(); 85 - 86 - $properties = id(new PHUIPropertyListView()) 87 - ->setUser($viewer) 88 - ->setObject($queue) 89 - ->setActionList($actions); 90 - 91 - return $properties; 92 - } 93 76 }
+30 -54
src/applications/nuance/controller/NuanceSourceViewController.php
··· 16 16 17 17 $source_id = $source->getID(); 18 18 19 - $timeline = $this->buildTransactionTimeline( 20 - $source, 21 - new NuanceSourceTransactionQuery()); 22 - $timeline->setShouldTerminate(true); 23 - 24 19 $header = $this->buildHeaderView($source); 25 - $actions = $this->buildActionView($source); 26 - $properties = $this->buildPropertyView($source, $actions); 27 - 28 - $box = id(new PHUIObjectBoxView()) 29 - ->setHeader($header) 30 - ->addPropertyList($properties); 20 + $curtain = $this->buildCurtain($source); 21 + $properties = $this->buildPropertyView($source); 31 22 32 23 $title = $source->getName(); 33 - $crumbs = $this->buildApplicationCrumbs(); 34 - $crumbs->addTextCrumb(pht('Sources'), $this->getApplicationURI('source/')); 35 - 36 - $crumbs->addTextCrumb($title); 37 - 38 - 39 - $can_edit = PhabricatorPolicyFilter::hasCapability( 40 - $viewer, 41 - $source, 42 - PhabricatorPolicyCapability::CAN_EDIT); 43 24 44 25 $routing_list = id(new PHUIPropertyListView()) 45 26 ->addProperty( 46 27 pht('Default Queue'), 47 28 $viewer->renderHandle($source->getDefaultQueuePHID())); 48 29 49 - $routing_header = id(new PHUIHeaderView()) 50 - ->setHeader(pht('Routing Rules')); 30 + $crumbs = $this->buildApplicationCrumbs(); 31 + $crumbs->addTextCrumb(pht('Sources'), $this->getApplicationURI('source/')); 32 + $crumbs->addTextCrumb($title); 33 + $crumbs->setBorder(true); 51 34 52 - $routing = id(new PHUIObjectBoxView()) 53 - ->setHeader($routing_header) 54 - ->addPropertyList($routing_list); 35 + $timeline = $this->buildTransactionTimeline( 36 + $source, 37 + new NuanceSourceTransactionQuery()); 38 + $timeline->setShouldTerminate(true); 55 39 56 - return $this->buildApplicationPage( 57 - array( 58 - $crumbs, 59 - $box, 60 - $routing, 61 - $timeline, 62 - ), 63 - array( 64 - 'title' => $title, 65 - )); 40 + $view = id(new PHUITwoColumnView()) 41 + ->setHeader($header) 42 + ->setCurtain($curtain) 43 + ->addPropertySection(pht('DETAILS'), $properties) 44 + ->addPropertySection(pht('ROUTING'), $routing_list) 45 + ->setMainColumn($timeline); 46 + 47 + return $this->newPage() 48 + ->setTitle($title) 49 + ->setCrumbs($crumbs) 50 + ->appendChild($view); 66 51 } 67 52 68 53 private function buildHeaderView(NuanceSource $source) { ··· 76 61 return $header; 77 62 } 78 63 79 - private function buildActionView(NuanceSource $source) { 64 + private function buildCurtain(NuanceSource $source) { 80 65 $viewer = $this->getViewer(); 81 66 $id = $source->getID(); 82 67 ··· 88 73 $source, 89 74 PhabricatorPolicyCapability::CAN_EDIT); 90 75 91 - $actions->addAction( 76 + $curtain = $this->newCurtainView($source); 77 + 78 + $curtain->addAction( 92 79 id(new PhabricatorActionView()) 93 80 ->setName(pht('Edit Source')) 94 81 ->setIcon('fa-pencil') ··· 100 87 $definition = $source->requireDefinition(); 101 88 $source_actions = $definition->getSourceViewActions($request); 102 89 foreach ($source_actions as $source_action) { 103 - $actions->addAction($source_action); 90 + $curtain->addAction($source_action); 104 91 } 105 92 106 - return $actions; 93 + return $curtain; 107 94 } 108 95 109 96 private function buildPropertyView( 110 - NuanceSource $source, 111 - PhabricatorActionListView $actions) { 112 - $viewer = $this->getRequest()->getUser(); 97 + NuanceSource $source) { 98 + $viewer = $this->getViewer(); 113 99 114 100 $properties = id(new PHUIPropertyListView()) 115 - ->setUser($viewer) 116 - ->setObject($source) 117 - ->setActionList($actions); 101 + ->setViewer($viewer); 118 102 119 103 $definition = $source->requireDefinition(); 120 104 $properties->addProperty( 121 105 pht('Source Type'), 122 106 $definition->getName()); 123 - 124 - $descriptions = PhabricatorPolicyQuery::renderPolicyDescriptions( 125 - $viewer, 126 - $source); 127 - 128 - $properties->addProperty( 129 - pht('Editable By'), 130 - $descriptions[PhabricatorPolicyCapability::CAN_EDIT]); 131 107 132 108 return $properties; 133 109 }