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.1 kB · 95 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596<?php
final class DarkConsoleEventPlugin extends DarkConsolePlugin {
public function getName() { return pht('Events'); }
public function getDescription() { return pht('Information about events and event listeners.'); }
public function generateData() { $listeners = PhutilEventEngine::getInstance()->getAllListeners(); foreach ($listeners as $key => $listener) { $listeners[$key] = array( 'id' => $listener->getListenerID(), 'class' => get_class($listener), ); }
$events = DarkConsoleEventPluginAPI::getEvents(); foreach ($events as $key => $event) { $events[$key] = array( 'type' => $event->getType(), 'stopped' => $event->isStopped(), ); }
return array( 'listeners' => $listeners, 'events' => $events, ); }
public function renderPanel() { $data = $this->getData();
$out = array();
$out[] = phutil_tag( 'div', array('class' => 'dark-console-panel-header'), phutil_tag('h1', array(), pht('Registered Event Listeners')));
$rows = array(); foreach ($data['listeners'] as $listener) { $rows[] = array($listener['id'], $listener['class']); }
$table = new AphrontTableView($rows); $table->setHeaders( array( pht('Internal ID'), pht('Listener Class'), )); $table->setColumnClasses( array( '', 'wide', ));
$out[] = $table->render();
$out[] = phutil_tag( 'div', array('class' => 'dark-console-panel-header'), phutil_tag('h1', array(), pht('Event Log')));
$rows = array(); foreach ($data['events'] as $event) { $rows[] = array( $event['type'], $event['stopped'] ? pht('STOPPED') : null, ); }
$table = new AphrontTableView($rows); $table->setColumnClasses( array( 'wide', )); $table->setHeaders( array( pht('Event Type'), pht('Stopped'), ));
$out[] = $table->render();
return phutil_implode_html("\n", $out); }
}