Path: blob/master/src/applications/diffusion/management/DiffusionRepositoryURIsManagementPanel.php
13395 views
<?php12final class DiffusionRepositoryURIsManagementPanel3extends DiffusionRepositoryManagementPanel {45const PANELKEY = 'uris';67public function getManagementPanelLabel() {8return pht('URIs');9}1011public function getManagementPanelIcon() {12return 'fa-globe';13}1415public function getManagementPanelOrder() {16return 400;17}1819public function buildManagementPanelCurtain() {20$repository = $this->getRepository();21$viewer = $this->getViewer();22$action_list = $this->newActionList();2324$can_edit = PhabricatorPolicyFilter::hasCapability(25$viewer,26$repository,27PhabricatorPolicyCapability::CAN_EDIT);2829$doc_href = PhabricatorEnv::getDoclink('Diffusion User Guide: URIs');30$add_href = $repository->getPathURI('uri/edit/');3132$action_list->addAction(33id(new PhabricatorActionView())34->setIcon('fa-plus')35->setHref($add_href)36->setDisabled(!$can_edit)37->setName(pht('Add New URI')));3839$action_list->addAction(40id(new PhabricatorActionView())41->setIcon('fa-book')42->setHref($doc_href)43->setName(pht('URI Documentation')));4445return $this->newCurtainView()46->setActionList($action_list);47}4849public function buildManagementPanelContent() {50$repository = $this->getRepository();51$viewer = $this->getViewer();52$uris = $repository->getURIs();5354Javelin::initBehavior('phabricator-tooltips');55$rows = array();56foreach ($uris as $uri) {5758$uri_name = $uri->getDisplayURI();59$uri_name = phutil_tag(60'a',61array(62'href' => $uri->getViewURI(),63),64$uri_name);6566if ($uri->getIsDisabled()) {67$status_icon = 'fa-times grey';68} else {69$status_icon = 'fa-check green';70}7172$uri_status = id(new PHUIIconView())->setIcon($status_icon);7374$io_type = $uri->getEffectiveIOType();75$io_map = PhabricatorRepositoryURI::getIOTypeMap();76$io_spec = idx($io_map, $io_type, array());7778$io_icon = idx($io_spec, 'icon');79$io_color = idx($io_spec, 'color');80$io_label = idx($io_spec, 'label', $io_type);8182$uri_io = array(83id(new PHUIIconView())->setIcon("{$io_icon} {$io_color}"),84' ',85$io_label,86);8788$display_type = $uri->getEffectiveDisplayType();89$display_map = PhabricatorRepositoryURI::getDisplayTypeMap();90$display_spec = idx($display_map, $display_type, array());9192$display_icon = idx($display_spec, 'icon');93$display_color = idx($display_spec, 'color');94$display_label = idx($display_spec, 'label', $display_type);9596$uri_display = array(97id(new PHUIIconView())->setIcon("{$display_icon} {$display_color}"),98' ',99$display_label,100);101102$rows[] = array(103$uri_status,104$uri_name,105$uri_io,106$uri_display,107);108}109110$table = id(new AphrontTableView($rows))111->setNoDataString(pht('This repository has no URIs.'))112->setHeaders(113array(114null,115pht('URI'),116pht('I/O'),117pht('Display'),118))119->setColumnClasses(120array(121null,122'pri wide',123null,124null,125));126127$is_new = $repository->isNewlyInitialized();128129$messages = array();130if ($repository->isHosted()) {131if ($is_new) {132$host_message = pht('This repository will be hosted.');133} else {134$host_message = pht('This repository is observed.');135}136137$messages[] = $host_message;138} else {139if ($is_new) {140$observe_message = pht(141'This repository will be observed.');142} else {143$observe_message = pht(144'This remote repository is being observed.');145}146147$messages[] = $observe_message;148}149150$info_view = id(new PHUIInfoView())151->setSeverity(PHUIInfoView::SEVERITY_NOTICE)152->setErrors($messages);153154$box = $this->newBox(pht('Repository URIs'), $table);155156return array($info_view, $box);157}158159}160161162