@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 recaptime-dev/main 56 lines 1.4 kB view raw
1<?php 2 3final class DiffusionBlockHeraldAction 4 extends HeraldAction { 5 6 const ACTIONCONST = 'diffusion.block'; 7 8 const DO_BLOCK = 'do.block'; 9 10 public function getHeraldActionName() { 11 return pht('Block push with message'); 12 } 13 14 public function getActionGroupKey() { 15 return HeraldApplicationActionGroup::ACTIONGROUPKEY; 16 } 17 18 public function supportsObject($object) { 19 return ($object instanceof PhabricatorRepositoryPushLog); 20 } 21 22 public function supportsRuleType($rule_type) { 23 return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL); 24 } 25 26 public function applyEffect($object, HeraldEffect $effect) { 27 // This rule intentionally has no direct effect: the caller handles it 28 // after executing Herald. 29 $this->logEffect(self::DO_BLOCK); 30 } 31 32 public function getHeraldActionStandardType() { 33 return self::STANDARD_TEXT; 34 } 35 36 public function renderActionDescription($value) { 37 return pht('Block push with message: %s', $value); 38 } 39 40 protected function getActionEffectMap() { 41 return array( 42 self::DO_BLOCK => array( 43 'icon' => 'fa-stop', 44 'color' => 'red', 45 'name' => pht('Blocked Push'), 46 ), 47 ); 48 } 49 50 protected function renderActionEffectDescription($type, $data) { 51 switch ($type) { 52 case self::DO_BLOCK: 53 return pht('Blocked push.'); 54 } 55 } 56}