Path: blob/master/src/applications/diffusion/management/DiffusionRepositoryBranchesManagementPanel.php
13395 views
<?php12final class DiffusionRepositoryBranchesManagementPanel3extends DiffusionRepositoryManagementPanel {45const PANELKEY = 'branches';67public function getManagementPanelLabel() {8return pht('Branches');9}1011public function getManagementPanelOrder() {12return 1000;13}1415public function shouldEnableForRepository(16PhabricatorRepository $repository) {17return ($repository->isGit() || $repository->isHg());18}1920public function getManagementPanelIcon() {21$repository = $this->getRepository();2223$has_any =24$repository->getDetail('default-branch') ||25$repository->getFetchRules() ||26$repository->getTrackOnlyRules() ||27$repository->getPermanentRefRules();2829if ($has_any) {30return 'fa-code-fork';31} else {32return 'fa-code-fork grey';33}34}3536protected function getEditEngineFieldKeys() {37return array(38'defaultBranch',39'fetchRefs',40'permanentRefs',41'trackOnly',42);43}4445public function buildManagementPanelCurtain() {46$repository = $this->getRepository();47$viewer = $this->getViewer();48$action_list = $this->newActionList();4950$can_edit = PhabricatorPolicyFilter::hasCapability(51$viewer,52$repository,53PhabricatorPolicyCapability::CAN_EDIT);5455$branches_uri = $this->getEditPageURI();5657$action_list->addAction(58id(new PhabricatorActionView())59->setIcon('fa-pencil')60->setName(pht('Edit Branches'))61->setHref($branches_uri)62->setDisabled(!$can_edit)63->setWorkflow(!$can_edit));6465$drequest = DiffusionRequest::newFromDictionary(66array(67'user' => $viewer,68'repository' => $repository,69));7071$view_uri = $drequest->generateURI(72array(73'action' => 'branches',74));7576$action_list->addAction(77id(new PhabricatorActionView())78->setIcon('fa-code-fork')79->setName(pht('View Branches'))80->setHref($view_uri));8182return $this->newCurtainView()83->setActionList($action_list);84}8586public function buildManagementPanelContent() {87$repository = $this->getRepository();88$viewer = $this->getViewer();89$content = array();9091$view = id(new PHUIPropertyListView())92->setViewer($viewer);9394$default_branch = nonempty(95$repository->getDetail('default-branch'),96phutil_tag('em', array(), $repository->getDefaultBranch()));97$view->addProperty(pht('Default Branch'), $default_branch);9899if ($repository->supportsFetchRules()) {100$fetch_only = $repository->getFetchRules();101if ($fetch_only) {102$fetch_display = implode(', ', $fetch_only);103} else {104$fetch_display = phutil_tag('em', array(), pht('Fetch All Refs'));105}106$view->addProperty(pht('Fetch Refs'), $fetch_display);107}108109$track_only_rules = $repository->getTrackOnlyRules();110if ($track_only_rules) {111$track_only_rules = implode(', ', $track_only_rules);112$view->addProperty(pht('Track Only'), $track_only_rules);113}114115$publishing_disabled = $repository->isPublishingDisabled();116if ($publishing_disabled) {117$permanent_display =118phutil_tag('em', array(), pht('Publishing Disabled'));119} else {120$permanent_rules = $repository->getPermanentRefRules();121if ($permanent_rules) {122$permanent_display = implode(', ', $permanent_rules);123} else {124$permanent_display = phutil_tag('em', array(), pht('All Branches'));125}126}127$view->addProperty(pht('Permanent Refs'), $permanent_display);128129$content[] = $this->newBox(pht('Branches'), $view);130131return $content;132}133134}135136137