Path: blob/master/src/applications/diffusion/management/DiffusionRepositoryManagementPanel.php
13395 views
<?php12abstract class DiffusionRepositoryManagementPanel3extends Phobject {45private $viewer;6private $repository;7private $controller;89final public function setViewer(PhabricatorUser $viewer) {10$this->viewer = $viewer;11return $this;12}1314final public function getViewer() {15return $this->viewer;16}1718final public function setRepository(PhabricatorRepository $repository) {19$this->repository = $repository;20return $this;21}2223final public function getRepository() {24return $this->repository;25}2627final public function getRequest() {28return $this->controller->getRequest();29}3031final public function setController(PhabricatorController $controller) {32$this->controller = $controller;33return $this;34}3536final public function getManagementPanelKey() {37return $this->getPhobjectClassConstant('PANELKEY');38}3940abstract public function getManagementPanelLabel();41abstract public function getManagementPanelOrder();42abstract public function buildManagementPanelContent();43public function buildManagementPanelCurtain() { return null; }4445public function getManagementPanelIcon() {46return 'fa-pencil';47}4849public function getManagementPanelGroupKey() {50return DiffusionRepositoryManagementMainPanelGroup::PANELGROUPKEY;51}5253public function shouldEnableForRepository(54PhabricatorRepository $repository) {55return true;56}5758public static function getAllPanels() {59return id(new PhutilClassMapQuery())60->setAncestorClass(__CLASS__)61->setUniqueMethod('getManagementPanelKey')62->setSortMethod('getManagementPanelOrder')63->execute();64}6566final protected function newTimeline() {67return $this->controller->newTimeline($this->getRepository());68}6970final public function getPanelURI() {71$repository = $this->getRepository();72$key = $this->getManagementPanelKey();73return $repository->getPathURI("manage/{$key}/");74}7576final public function newEditEnginePage() {77$field_keys = $this->getEditEngineFieldKeys();78if (!$field_keys) {79return null;80}8182$key = $this->getManagementPanelKey();83$label = $this->getManagementPanelLabel();84$panel_uri = $this->getPanelURI();8586return id(new PhabricatorEditPage())87->setKey($key)88->setLabel($label)89->setViewURI($panel_uri)90->setFieldKeys($field_keys);91}9293protected function getEditEngineFieldKeys() {94return array();95}9697protected function getEditPageURI($page = null) {98if ($page === null) {99$page = $this->getManagementPanelKey();100}101102$repository = $this->getRepository();103$id = $repository->getID();104return "/diffusion/edit/{$id}/page/{$page}/";105}106107public function getPanelNavigationURI() {108return $this->getPanelURI();109}110111final protected function newActionList() {112$viewer = $this->getViewer();113$action_id = celerity_generate_unique_node_id();114115return id(new PhabricatorActionListView())116->setViewer($viewer)117->setID($action_id);118}119120final protected function newCurtainView() {121$viewer = $this->getViewer();122123return id(new PHUICurtainView())124->setViewer($viewer);125}126127final protected function newBox($header_text, $body) {128$viewer = $this->getViewer();129130$header = id(new PHUIHeaderView())131->setViewer($viewer)132->setHeader($header_text);133134$view = id(new PHUIObjectBoxView())135->setViewer($viewer)136->setHeader($header)137->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)138->appendChild($body);139140return $view;141}142143}144145146