@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 74 lines 2.2 kB view raw
1<?php 2 3final class PhabricatorEditEngineConfigurationListController 4 extends PhabricatorEditEngineController { 5 6 public function shouldAllowPublic() { 7 return true; 8 } 9 10 public function handleRequest(AphrontRequest $request) { 11 $viewer = $this->getViewer(); 12 13 $engine_key = $request->getURIData('engineKey'); 14 $this->setEngineKey($engine_key); 15 16 $engine = PhabricatorEditEngine::getByKey($viewer, $engine_key); 17 if (!$engine || !$engine->isEngineConfigurable()) { 18 return new Aphront404Response(); 19 } 20 $engine->setViewer($viewer); 21 22 $items = array(); 23 $items[] = id(new PHUIListItemView()) 24 ->setType(PHUIListItemView::TYPE_LABEL) 25 ->setName(pht('Form Order')); 26 27 $sort_create_uri = "/transactions/editengine/{$engine_key}/sort/create/"; 28 $sort_edit_uri = "/transactions/editengine/{$engine_key}/sort/edit/"; 29 30 $builtins = $engine->getBuiltinEngineConfigurations(); 31 $builtin = head($builtins); 32 33 $can_sort = PhabricatorPolicyFilter::hasCapability( 34 $viewer, 35 $builtin, 36 PhabricatorPolicyCapability::CAN_EDIT); 37 38 $items[] = id(new PHUIListItemView()) 39 ->setType(PHUIListItemView::TYPE_LINK) 40 ->setName(pht('Reorder Create Forms')) 41 ->setHref($sort_create_uri) 42 ->setWorkflow(true) 43 ->setDisabled(!$can_sort); 44 45 $items[] = id(new PHUIListItemView()) 46 ->setType(PHUIListItemView::TYPE_LINK) 47 ->setName(pht('Reorder Edit Forms')) 48 ->setHref($sort_edit_uri) 49 ->setWorkflow(true) 50 ->setDisabled(!$can_sort); 51 52 return id(new PhabricatorEditEngineConfigurationSearchEngine()) 53 ->setController($this) 54 ->setEngineKey($this->getEngineKey()) 55 ->setNavigationItems($items) 56 ->buildResponse(); 57 } 58 59 protected function buildApplicationCrumbs() { 60 $viewer = $this->getViewer(); 61 $crumbs = parent::buildApplicationCrumbs(); 62 63 $target_key = $this->getEngineKey(); 64 $target_engine = PhabricatorEditEngine::getByKey($viewer, $target_key); 65 66 id(new PhabricatorEditEngineConfigurationEditEngine()) 67 ->setTargetEngine($target_engine) 68 ->setViewer($viewer) 69 ->addActionToCrumbs($crumbs); 70 71 return $crumbs; 72 } 73 74}