Path: blob/master/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
12242 views
<?php12final class DiffusionRepositoryEditController3extends DiffusionRepositoryManageController {45public function handleRequest(AphrontRequest $request) {6$engine = id(new DiffusionRepositoryEditEngine())7->setController($this);89$id = $request->getURIData('id');10if (!$id) {11$this->requireApplicationCapability(12DiffusionCreateRepositoriesCapability::CAPABILITY);1314$vcs = $request->getStr('vcs');15$vcs_types = PhabricatorRepositoryType::getRepositoryTypeMap();16if (empty($vcs_types[$vcs])) {17return $this->buildVCSTypeResponse();18}1920$engine21->addContextParameter('vcs', $vcs)22->setVersionControlSystem($vcs);23}2425return $engine->buildResponse();26}2728private function buildVCSTypeResponse() {29$vcs_types = PhabricatorRepositoryType::getRepositoryTypeMap();3031$request = $this->getRequest();32$viewer = $this->getViewer();3334$crumbs = $this->buildApplicationCrumbs();35$crumbs->addTextCrumb(pht('Create Repository'));36$crumbs->setBorder(true);3738$title = pht('Choose Repository Type');3940$layout = id(new AphrontMultiColumnView())41->setFluidLayout(true);4243$create_uri = $request->getRequestURI();4445foreach ($vcs_types as $vcs_key => $vcs_type) {46$image = idx($vcs_type, 'image');47$image = PhabricatorFile::loadBuiltin($viewer, $image);48$action = id(new PHUIActionPanelView())49->setImage($image->getBestURI())50->setHeader(idx($vcs_type, 'create.header'))51->setHref($create_uri->alter('vcs', $vcs_key))52->setSubheader(idx($vcs_type, 'create.subheader'));5354$layout->addColumn($action);55}5657$hints = id(new AphrontMultiColumnView())58->setFluidLayout(true);5960$observe_href = PhabricatorEnv::getDoclink(61'Diffusion User Guide: Existing Repositories');6263require_celerity_resource('diffusion-css');6465$image = PhabricatorFile::loadBuiltin($viewer, 'repo/repo.png');66$hints->addColumn(67id(new PHUIActionPanelView())68->setImage($image->getBestURI())69->setHeader(pht('Import or Observe an Existing Repository'))70->setHref($observe_href)71->setSubheader(72pht(73'Review the documentation describing how to import or observe an '.74'existing repository.')));7576$layout = id(new PHUIBoxView())77->addClass('diffusion-create-repo')78->appendChild($layout);7980$launcher_view = id(new PHUILauncherView())81->appendChild(82array(83$layout,84$hints,85));8687$view = id(new PHUITwoColumnView())88->setFooter($launcher_view);8990return $this->newPage()91->setTitle($title)92->setCrumbs($crumbs)93->appendChild($view);94}9596}979899