Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
2.4 kB · 108 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109<?php
final class DiffusionPullLogListView extends AphrontView {
private $logs;
/** * @param array<PhabricatorRepositoryPullEvent> $logs */ public function setLogs(array $logs) { assert_instances_of($logs, PhabricatorRepositoryPullEvent::class); $this->logs = $logs; return $this; }
public function render() { $events = $this->logs; $viewer = $this->getViewer();
$handle_phids = array(); foreach ($events as $event) { if ($event->getPullerPHID()) { $handle_phids[] = $event->getPullerPHID(); } } $handles = $viewer->loadHandles($handle_phids);
// Only administrators can view remote addresses. $remotes_visible = $viewer->getIsAdmin();
$rows = array(); foreach ($events as $event) { if ($event->getRepositoryPHID()) { $repository = $event->getRepository(); } else { $repository = null; }
if ($remotes_visible) { $remote_address = $event->getRemoteAddress(); } else { $remote_address = null; }
$event_id = $event->getID();
$repository_link = null; if ($repository) { $repository_link = phutil_tag( 'a', array( 'href' => $repository->getURI(), ), $repository->getDisplayName()); }
$puller_link = null; if ($event->getPullerPHID()) { $puller_link = $viewer->renderHandle($event->getPullerPHID()); }
$rows[] = array( $event_id, $repository_link, $puller_link, $remote_address, $event->getRemoteProtocolDisplayName(), $event->newResultIcon(), $event->getResultCode(), phabricator_datetime($event->getEpoch(), $viewer), ); }
$table = id(new AphrontTableView($rows)) ->setHeaders( array( pht('Pull'), pht('Repository'), pht('Puller'), pht('From'), pht('Via'), null, pht('Code'), pht('Date'), )) ->setColumnClasses( array( 'n', '', '', 'n', 'wide', '', 'n', 'right', )) ->setColumnVisibility( array( true, true, true, $remotes_visible, ));
return $table; }
}