Path: blob/master/src/applications/config/module/PhabricatorConfigCollectorsModule.php
12262 views
<?php12final class PhabricatorConfigCollectorsModule extends PhabricatorConfigModule {34public function getModuleKey() {5return 'collectors';6}78public function getModuleName() {9return pht('Garbage Collectors');10}1112public function renderModuleStatus(AphrontRequest $request) {13$viewer = $request->getViewer();1415$collectors = PhabricatorGarbageCollector::getAllCollectors();16$collectors = msort($collectors, 'getCollectorConstant');1718$rows = array();19$rowc = array();20foreach ($collectors as $key => $collector) {21$class = null;22if ($collector->hasAutomaticPolicy()) {23$policy_view = phutil_tag('em', array(), pht('Automatic'));24} else {25$policy = $collector->getRetentionPolicy();26if ($policy === null) {27$policy_view = pht('Indefinite');28} else {29$days = ceil($policy / phutil_units('1 day in seconds'));30$policy_view = pht(31'%s Day(s)',32new PhutilNumber($days));33}3435$default = $collector->getDefaultRetentionPolicy();36if ($policy !== $default) {37$class = 'highlighted';38$policy_view = phutil_tag('strong', array(), $policy_view);39}40}4142$rowc[] = $class;43$rows[] = array(44$collector->getCollectorConstant(),45$collector->getCollectorName(),46$policy_view,47);48}4950$info = id(new PHUIInfoView())51->setSeverity(PHUIInfoView::SEVERITY_NOTICE)52->appendChild(pht(53'Collectors with custom policies are highlighted. Use '.54'%s to change retention policies.',55phutil_tag('tt', array(), 'bin/garbage set-policy')));5657$table = id(new AphrontTableView($rows))58->setNotice($info)59->setRowClasses($rowc)60->setHeaders(61array(62pht('Constant'),63pht('Name'),64pht('Retention Policy'),65))66->setColumnClasses(67array(68null,69'pri wide',70null,71));7273return $table;74}7576}777879