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 · 91 lines
PHP
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192<?php
final class DarkConsoleErrorLogPlugin extends DarkConsolePlugin {
public function getName() { $count = count($this->getData()); if ($count) { return pht('Error Log (%d)', $count); } return pht('Error Log'); }
public function getOrder() { return 0; }
public function getColor() { if (count($this->getData())) { return '#ff0000'; } return null; }
public function getDescription() { return pht('Shows errors and warnings.'); }
public function generateData() { return DarkConsoleErrorLogPluginAPI::getErrors(); }
public function renderPanel() { $data = $this->getData();
$rows = array(); $details = array();
foreach ($data as $index => $row) { $file = $row['file']; $line = $row['line'];
$tag = javelin_tag( 'a', array( 'sigil' => 'darkconsole-expand', 'meta' => array( 'expandID' => 'row-details-'.$index, ), ), $row['str'].' at ['.basename($file).':'.$line.']'); $rows[] = array($tag);
$details[] = hsprintf( '<div class="dark-console-panel-error-details" id="row-details-%s">'. "%s\nStack trace:\n", $index, $row['details']);
foreach ($row['trace'] as $key => $entry) { $line = ''; if (isset($entry['class'])) { $line .= $entry['class'].'::'; } $line .= idx($entry, 'function', ''); $href = null; if (isset($entry['file'])) { $line .= ' called at ['.$entry['file'].':'.$entry['line'].']';
} $details[] = $line; $details[] = "\n"; }
$details[] = hsprintf('</div>'); }
$table = new AphrontTableView($rows); $table->setClassName('error-log'); $table->setHeaders(array(pht('Error'))); $table->setNoDataString(pht('No errors.'));
return phutil_tag( 'div', array(), array( phutil_tag('div', array(), $table->render()), phutil_tag('pre', array('class' => 'PhabricatorMonospaced'), $details), )); }
}