Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/storage/PhabricatorProjectTrigger.php
| <?php | <?php | ||||
| final class PhabricatorProjectTrigger | final class PhabricatorProjectTrigger | ||||
| extends PhabricatorProjectDAO | extends PhabricatorProjectDAO | ||||
| implements | implements | ||||
| PhabricatorApplicationTransactionInterface, | PhabricatorApplicationTransactionInterface, | ||||
| PhabricatorPolicyInterface, | PhabricatorPolicyInterface, | ||||
| PhabricatorIndexableInterface, | |||||
| PhabricatorDestructibleInterface { | PhabricatorDestructibleInterface { | ||||
| protected $name; | protected $name; | ||||
| protected $ruleset = array(); | protected $ruleset = array(); | ||||
| protected $editPolicy; | protected $editPolicy; | ||||
| private $triggerRules; | private $triggerRules; | ||||
| private $usage = self::ATTACHABLE; | |||||
| public static function initializeNewTrigger() { | public static function initializeNewTrigger() { | ||||
| $default_edit = PhabricatorPolicies::POLICY_USER; | $default_edit = PhabricatorPolicies::POLICY_USER; | ||||
| return id(new self()) | return id(new self()) | ||||
| ->setName('') | ->setName('') | ||||
| ->setEditPolicy($default_edit); | ->setEditPolicy($default_edit); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 229 Lines • ▼ Show 20 Lines | foreach ($this->getTriggerRules() as $rule) { | ||||
| foreach ($rule->getSoundEffects() as $effect) { | foreach ($rule->getSoundEffects() as $effect) { | ||||
| $sounds[] = $effect; | $sounds[] = $effect; | ||||
| } | } | ||||
| } | } | ||||
| return $sounds; | return $sounds; | ||||
| } | } | ||||
| public function getUsage() { | |||||
| return $this->assertAttached($this->usage); | |||||
| } | |||||
| public function attachUsage(PhabricatorProjectTriggerUsage $usage) { | |||||
| $this->usage = $usage; | |||||
| return $this; | |||||
| } | |||||
| /* -( PhabricatorApplicationTransactionInterface )------------------------- */ | /* -( PhabricatorApplicationTransactionInterface )------------------------- */ | ||||
| public function getApplicationTransactionEditor() { | public function getApplicationTransactionEditor() { | ||||
| return new PhabricatorProjectTriggerEditor(); | return new PhabricatorProjectTriggerEditor(); | ||||
| } | } | ||||
| Show All 37 Lines | $this->openTransaction(); | ||||
| // Remove the reference to this trigger from any columns which use it. | // Remove the reference to this trigger from any columns which use it. | ||||
| queryfx( | queryfx( | ||||
| $conn, | $conn, | ||||
| 'UPDATE %R SET triggerPHID = null WHERE triggerPHID = %s', | 'UPDATE %R SET triggerPHID = null WHERE triggerPHID = %s', | ||||
| new PhabricatorProjectColumn(), | new PhabricatorProjectColumn(), | ||||
| $this->getPHID()); | $this->getPHID()); | ||||
| // Remove the usage index row for this trigger, if one exists. | |||||
| queryfx( | |||||
| $conn, | |||||
| 'DELETE FROM %R WHERE triggerPHID = %s', | |||||
| new PhabricatorProjectTriggerUsage(), | |||||
| $this->getPHID()); | |||||
| $this->delete(); | $this->delete(); | ||||
| $this->saveTransaction(); | $this->saveTransaction(); | ||||
| } | } | ||||
| } | } | ||||