@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
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 149 lines 3.8 kB view raw
1<?php 2 3final class PhabricatorFileImageMacro extends PhabricatorFileDAO 4 implements 5 PhabricatorSubscribableInterface, 6 PhabricatorApplicationTransactionInterface, 7 PhabricatorFlaggableInterface, 8 PhabricatorTokenReceiverInterface, 9 PhabricatorPolicyInterface { 10 11 protected $authorPHID; 12 protected $filePHID; 13 protected $name; 14 protected $isDisabled = 0; 15 protected $audioPHID; 16 protected $audioBehavior = self::AUDIO_BEHAVIOR_NONE; 17 protected $mailKey; 18 19 private $file = self::ATTACHABLE; 20 private $audio = self::ATTACHABLE; 21 22 const AUDIO_BEHAVIOR_NONE = 'audio:none'; 23 const AUDIO_BEHAVIOR_ONCE = 'audio:once'; 24 const AUDIO_BEHAVIOR_LOOP = 'audio:loop'; 25 26 public function attachFile(PhabricatorFile $file) { 27 $this->file = $file; 28 return $this; 29 } 30 31 public function getFile() { 32 return $this->assertAttached($this->file); 33 } 34 35 public function attachAudio(?PhabricatorFile $audio = null) { 36 $this->audio = $audio; 37 return $this; 38 } 39 40 public function getAudio() { 41 return $this->assertAttached($this->audio); 42 } 43 44 public static function initializeNewFileImageMacro(PhabricatorUser $actor) { 45 $macro = id(new self()) 46 ->setAuthorPHID($actor->getPHID()); 47 return $macro; 48 } 49 50 protected function getConfiguration() { 51 return array( 52 self::CONFIG_AUX_PHID => true, 53 self::CONFIG_COLUMN_SCHEMA => array( 54 'name' => 'text128', 55 'authorPHID' => 'phid?', 56 'isDisabled' => 'bool', 57 'audioPHID' => 'phid?', 58 'audioBehavior' => 'text64', 59 'mailKey' => 'bytes20', 60 ), 61 self::CONFIG_KEY_SCHEMA => array( 62 'name' => array( 63 'columns' => array('name'), 64 'unique' => true, 65 ), 66 'key_disabled' => array( 67 'columns' => array('isDisabled'), 68 ), 69 'key_dateCreated' => array( 70 'columns' => array('dateCreated'), 71 ), 72 ), 73 ) + parent::getConfiguration(); 74 } 75 76 public function generatePHID() { 77 return PhabricatorPHID::generateNewPHID( 78 PhabricatorMacroMacroPHIDType::TYPECONST); 79 } 80 81 82 public function save() { 83 if (!$this->getMailKey()) { 84 $this->setMailKey(Filesystem::readRandomCharacters(20)); 85 } 86 return parent::save(); 87 } 88 89 public function getViewURI() { 90 return '/macro/view/'.$this->getID().'/'; 91 } 92 93 94/* -( PhabricatorApplicationTransactionInterface )------------------------- */ 95 96 97 public function getApplicationTransactionEditor() { 98 return new PhabricatorMacroEditor(); 99 } 100 101 public function getApplicationTransactionTemplate() { 102 return new PhabricatorMacroTransaction(); 103 } 104 105 106/* -( PhabricatorSubscribableInterface )----------------------------------- */ 107 108 109 public function isAutomaticallySubscribed($phid) { 110 return false; 111 } 112 113 114/* -( PhabricatorTokenRecevierInterface )---------------------------------- */ 115 116 117 public function getUsersToNotifyOfTokenGiven() { 118 return array( 119 $this->getAuthorPHID(), 120 ); 121 } 122 123 124/* -( PhabricatorPolicyInterface )----------------------------------------- */ 125 126 127 public function getCapabilities() { 128 return array( 129 PhabricatorPolicyCapability::CAN_VIEW, 130 PhabricatorPolicyCapability::CAN_EDIT, 131 ); 132 } 133 134 public function getPolicy($capability) { 135 switch ($capability) { 136 case PhabricatorPolicyCapability::CAN_VIEW: 137 return PhabricatorPolicies::getMostOpenPolicy(); 138 case PhabricatorPolicyCapability::CAN_EDIT: 139 $app = PhabricatorApplication::getByClass( 140 PhabricatorMacroApplication::class); 141 return $app->getPolicy(PhabricatorMacroManageCapability::CAPABILITY); 142 } 143 } 144 145 public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { 146 return false; 147 } 148 149}