@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
at upstream/main 77 lines 2.1 kB view raw
1<?php 2 3final class PhabricatorConfigCollectorsModule extends PhabricatorConfigModule { 4 5 public function getModuleKey() { 6 return 'collectors'; 7 } 8 9 public function getModuleName() { 10 return pht('Garbage Collectors'); 11 } 12 13 public function renderModuleStatus(AphrontRequest $request) { 14 $viewer = $request->getViewer(); 15 16 $collectors = PhabricatorGarbageCollector::getAllCollectors(); 17 $collectors = msort($collectors, 'getCollectorConstant'); 18 19 $rows = array(); 20 $rowc = array(); 21 foreach ($collectors as $key => $collector) { 22 $class = null; 23 if ($collector->hasAutomaticPolicy()) { 24 $policy_view = phutil_tag('em', array(), pht('Automatic')); 25 } else { 26 $policy = $collector->getRetentionPolicy(); 27 if ($policy === null) { 28 $policy_view = pht('Indefinite'); 29 } else { 30 $days = ceil($policy / phutil_units('1 day in seconds')); 31 $policy_view = pht( 32 '%s Day(s)', 33 new PhutilNumber($days)); 34 } 35 36 $default = $collector->getDefaultRetentionPolicy(); 37 if ($policy !== $default) { 38 $class = 'highlighted'; 39 $policy_view = phutil_tag('strong', array(), $policy_view); 40 } 41 } 42 43 $rowc[] = $class; 44 $rows[] = array( 45 $collector->getCollectorConstant(), 46 $collector->getCollectorName(), 47 $policy_view, 48 ); 49 } 50 51 $info = id(new PHUIInfoView()) 52 ->setSeverity(PHUIInfoView::SEVERITY_NOTICE) 53 ->appendChild(pht( 54 'Collectors with custom policies are highlighted. Use '. 55 '%s to change retention policies.', 56 phutil_tag('tt', array(), 'bin/garbage set-policy'))); 57 58 $table = id(new AphrontTableView($rows)) 59 ->setNotice($info) 60 ->setRowClasses($rowc) 61 ->setHeaders( 62 array( 63 pht('Constant'), 64 pht('Name'), 65 pht('Retention Policy'), 66 )) 67 ->setColumnClasses( 68 array( 69 null, 70 'pri wide', 71 null, 72 )); 73 74 return $table; 75 } 76 77}