Path: blob/master/src/applications/diffusion/view/DiffusionPullLogListView.php
12242 views
<?php12final class DiffusionPullLogListView extends AphrontView {34private $logs;56public function setLogs(array $logs) {7assert_instances_of($logs, 'PhabricatorRepositoryPullEvent');8$this->logs = $logs;9return $this;10}1112public function render() {13$events = $this->logs;14$viewer = $this->getViewer();1516$handle_phids = array();17foreach ($events as $event) {18if ($event->getPullerPHID()) {19$handle_phids[] = $event->getPullerPHID();20}21}22$handles = $viewer->loadHandles($handle_phids);2324// Only administrators can view remote addresses.25$remotes_visible = $viewer->getIsAdmin();2627$rows = array();28foreach ($events as $event) {29if ($event->getRepositoryPHID()) {30$repository = $event->getRepository();31} else {32$repository = null;33}3435if ($remotes_visible) {36$remote_address = $event->getRemoteAddress();37} else {38$remote_address = null;39}4041$event_id = $event->getID();4243$repository_link = null;44if ($repository) {45$repository_link = phutil_tag(46'a',47array(48'href' => $repository->getURI(),49),50$repository->getDisplayName());51}5253$puller_link = null;54if ($event->getPullerPHID()) {55$puller_link = $viewer->renderHandle($event->getPullerPHID());56}5758$rows[] = array(59$event_id,60$repository_link,61$puller_link,62$remote_address,63$event->getRemoteProtocolDisplayName(),64$event->newResultIcon(),65$event->getResultCode(),66phabricator_datetime($event->getEpoch(), $viewer),67);68}6970$table = id(new AphrontTableView($rows))71->setHeaders(72array(73pht('Pull'),74pht('Repository'),75pht('Puller'),76pht('From'),77pht('Via'),78null,79pht('Code'),80pht('Date'),81))82->setColumnClasses(83array(84'n',85'',86'',87'n',88'wide',89'',90'n',91'right',92))93->setColumnVisibility(94array(95true,96true,97true,98$remotes_visible,99));100101return $table;102}103104}105106107