@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 91 lines 2.3 kB view raw
1<?php 2 3final class DiffusionRepositorySymbolsManagementPanel 4 extends DiffusionRepositoryManagementPanel { 5 6 const PANELKEY = 'symbols'; 7 8 public function getManagementPanelLabel() { 9 return pht('Symbols'); 10 } 11 12 public function getManagementPanelOrder() { 13 return 900; 14 } 15 16 public function getManagementPanelGroupKey() { 17 return DiffusionRepositoryManagementIntegrationsPanelGroup::PANELGROUPKEY; 18 } 19 20 public function getManagementPanelIcon() { 21 $repository = $this->getRepository(); 22 23 $has_any = 24 $repository->getSymbolLanguages() || 25 $repository->getSymbolSources(); 26 27 if ($has_any) { 28 return 'fa-link'; 29 } else { 30 return 'fa-link grey'; 31 } 32 } 33 34 protected function getEditEngineFieldKeys() { 35 return array( 36 'symbolLanguages', 37 'symbolRepositoryPHIDs', 38 ); 39 } 40 41 public function buildManagementPanelCurtain() { 42 $repository = $this->getRepository(); 43 $viewer = $this->getViewer(); 44 $action_list = $this->newActionList(); 45 46 $can_edit = PhabricatorPolicyFilter::hasCapability( 47 $viewer, 48 $repository, 49 PhabricatorPolicyCapability::CAN_EDIT); 50 51 $symbols_uri = $this->getEditPageURI(); 52 53 $action_list->addAction( 54 id(new PhabricatorActionView()) 55 ->setIcon('fa-pencil') 56 ->setName(pht('Edit Symbols')) 57 ->setHref($symbols_uri) 58 ->setDisabled(!$can_edit) 59 ->setWorkflow(!$can_edit)); 60 61 return $this->newCurtainView() 62 ->setActionList($action_list); 63 } 64 65 public function buildManagementPanelContent() { 66 $repository = $this->getRepository(); 67 $viewer = $this->getViewer(); 68 69 $view = id(new PHUIPropertyListView()) 70 ->setViewer($viewer); 71 72 $languages = $repository->getSymbolLanguages(); 73 if ($languages) { 74 $languages = implode(', ', $languages); 75 } else { 76 $languages = phutil_tag('em', array(), pht('Any')); 77 } 78 $view->addProperty(pht('Languages'), $languages); 79 80 $sources = $repository->getSymbolSources(); 81 if ($sources) { 82 $sources = $viewer->renderHandleList($sources); 83 } else { 84 $sources = phutil_tag('em', array(), pht('This Repository Only')); 85 } 86 $view->addProperty(pht('Uses Symbols From'), $sources); 87 88 return $this->newBox(pht('Symbols'), $view); 89 } 90 91}