Path: blob/master/src/applications/diffusion/view/DiffusionCloneURIView.php
12242 views
<?php123final class DiffusionCloneURIView extends AphrontView {45private $repository;6private $repositoryURI;7private $displayURI;89public function setRepository(PhabricatorRepository $repository) {10$this->repository = $repository;11return $this;12}1314public function getRepository() {15return $this->repository;16}1718public function setRepositoryURI(PhabricatorRepositoryURI $repository_uri) {19$this->repositoryURI = $repository_uri;20return $this;21}2223public function getRepositoryURI() {24return $this->repositoryURI;25}2627public function setDisplayURI($display_uri) {28$this->displayURI = $display_uri;29return $this;30}3132public function getDisplayURI() {33return $this->displayURI;34}3536public function render() {37$viewer = $this->getViewer();3839require_celerity_resource('diffusion-icons-css');4041Javelin::initBehavior('select-content');4243$uri_id = celerity_generate_unique_node_id();4445$display = $this->getDisplayURI();4647$input = javelin_tag(48'input',49array(50'id' => $uri_id,51'type' => 'text',52'value' => $display,53'class' => 'diffusion-clone-uri',54'readonly' => 'true',55));5657$uri = $this->getRepositoryURI();58switch ($uri->getEffectiveIOType()) {59case PhabricatorRepositoryURI::IO_READ:60$io_icon = 'fa-eye';61$io_tip = pht('Read-Only');62break;63case PhabricatorRepositoryURI::IO_READWRITE:64$io_icon = 'fa-download';65$io_tip = pht('Read / Write');66break;67default:68$io_icon = 'fa-cloud';69$io_tip = pht('External');70break;71}7273$io = id(new PHUIButtonView())74->setTag('a')75->setColor(PHUIButtonView::GREY)76->setIcon($io_icon)77->setHref('#')78->addSigil('select-content')79->addSigil('has-tooltip')80->setMetadata(81array(82'tip' => $io_tip,83'selectID' => $uri_id,84));8586switch ($uri->getEffectiveIOType()) {87case PhabricatorRepositoryURI::IO_READ:88case PhabricatorRepositoryURI::IO_READWRITE:89switch ($uri->getBuiltinProtocol()) {90case PhabricatorRepositoryURI::BUILTIN_PROTOCOL_SSH:91$auth_uri = id(new PhabricatorSSHKeysSettingsPanel())92->setViewer($viewer)93->setUser($viewer)94->getPanelURI();95$auth_tip = pht('Manage SSH Keys');96$auth_disabled = false;97break;98default:99$auth_uri = id(new DiffusionSetPasswordSettingsPanel())100->setViewer($viewer)101->setUser($viewer)102->getPanelURI();103$auth_tip = pht('Manage Password');104$auth_disabled = false;105break;106}107break;108default:109$auth_disabled = true;110$auth_tip = pht('External');111$auth_uri = '#';112break;113}114115$credentials = id(new PHUIButtonView())116->setTag('a')117->setColor(PHUIButtonView::GREY)118->setIcon('fa-key')119->setTooltip($auth_tip)120->setHref($auth_uri)121->setDisabled($auth_disabled);122123$cells = array();124$cells[] = phutil_tag('td', array(), $input);125$cells[] = phutil_tag('th', array(), $io);126$cells[] = phutil_tag('th', array(), $credentials);127128$row = phutil_tag('tr', array(), $cells);129130return phutil_tag(131'table',132array(133'class' => 'diffusion-clone-uri-table',134),135$row);136}137138}139140141