diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index b563d1ae89..ae713a56fc 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -749,7 +749,6 @@ phutil_register_library_map(array( 'ManiphestTransaction' => 'applications/maniphest/storage/ManiphestTransaction.php', 'ManiphestTransactionComment' => 'applications/maniphest/storage/ManiphestTransactionComment.php', 'ManiphestTransactionEditor' => 'applications/maniphest/editor/ManiphestTransactionEditor.php', - 'ManiphestTransactionEditorPro' => 'applications/maniphest/editor/ManiphestTransactionEditorPro.php', 'ManiphestTransactionPreviewController' => 'applications/maniphest/controller/ManiphestTransactionPreviewController.php', 'ManiphestTransactionQuery' => 'applications/maniphest/query/ManiphestTransactionQuery.php', 'ManiphestTransactionSaveController' => 'applications/maniphest/controller/ManiphestTransactionSaveController.php', @@ -2895,8 +2894,7 @@ phutil_register_library_map(array( 'ManiphestTaskSubscriber' => 'ManiphestDAO', 'ManiphestTransaction' => 'PhabricatorApplicationTransaction', 'ManiphestTransactionComment' => 'PhabricatorApplicationTransactionComment', - 'ManiphestTransactionEditor' => 'PhabricatorEditor', - 'ManiphestTransactionEditorPro' => 'PhabricatorApplicationTransactionEditor', + 'ManiphestTransactionEditor' => 'PhabricatorApplicationTransactionEditor', 'ManiphestTransactionPreviewController' => 'ManiphestController', 'ManiphestTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'ManiphestTransactionSaveController' => 'ManiphestController', diff --git a/src/applications/maniphest/conduit/ConduitAPI_maniphest_Method.php b/src/applications/maniphest/conduit/ConduitAPI_maniphest_Method.php index da831f1415..2de1faa2db 100644 --- a/src/applications/maniphest/conduit/ConduitAPI_maniphest_Method.php +++ b/src/applications/maniphest/conduit/ConduitAPI_maniphest_Method.php @@ -199,7 +199,7 @@ abstract class ConduitAPI_maniphest_Method extends ConduitAPIMethod { PhabricatorContentSource::SOURCE_CONDUIT, array()); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($request->getUser()) ->setContentSource($content_source) ->setContinueOnNoEffect(true); diff --git a/src/applications/maniphest/controller/ManiphestBatchEditController.php b/src/applications/maniphest/controller/ManiphestBatchEditController.php index a9dd8136f2..0a3570afcd 100644 --- a/src/applications/maniphest/controller/ManiphestBatchEditController.php +++ b/src/applications/maniphest/controller/ManiphestBatchEditController.php @@ -37,7 +37,7 @@ final class ManiphestBatchEditController extends ManiphestController { if ($xactions) { // TODO: Set content source to "batch edit". - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setContentSourceFromRequest($request) ->setContinueOnNoEffect(true) diff --git a/src/applications/maniphest/controller/ManiphestSubpriorityController.php b/src/applications/maniphest/controller/ManiphestSubpriorityController.php index 67ed9fd09f..1dc95ad674 100644 --- a/src/applications/maniphest/controller/ManiphestSubpriorityController.php +++ b/src/applications/maniphest/controller/ManiphestSubpriorityController.php @@ -53,7 +53,7 @@ final class ManiphestSubpriorityController extends ManiphestController { ->setTransactionType(ManiphestTransaction::TYPE_PRIORITY) ->setNewValue($after_pri); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setContinueOnMissingFields(true) ->setContinueOnNoEffect(true) diff --git a/src/applications/maniphest/controller/ManiphestSubscribeController.php b/src/applications/maniphest/controller/ManiphestSubscribeController.php index d9a1ad5049..6762888b27 100644 --- a/src/applications/maniphest/controller/ManiphestSubscribeController.php +++ b/src/applications/maniphest/controller/ManiphestSubscribeController.php @@ -39,7 +39,7 @@ final class ManiphestSubscribeController extends ManiphestController { ->setTransactionType(ManiphestTransaction::TYPE_CCS) ->setNewValue($ccs); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setContentSourceFromRequest($request) ->setContinueOnNoEffect(true) diff --git a/src/applications/maniphest/controller/ManiphestTaskEditController.php b/src/applications/maniphest/controller/ManiphestTaskEditController.php index c1a9ec4ce6..82da43a8bc 100644 --- a/src/applications/maniphest/controller/ManiphestTaskEditController.php +++ b/src/applications/maniphest/controller/ManiphestTaskEditController.php @@ -237,7 +237,7 @@ final class ManiphestTaskEditController extends ManiphestController { $task = $event->getValue('task'); $transactions = $event->getValue('transactions'); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setContentSourceFromRequest($request) ->setContinueOnNoEffect(true) diff --git a/src/applications/maniphest/controller/ManiphestTransactionSaveController.php b/src/applications/maniphest/controller/ManiphestTransactionSaveController.php index cc98a9eccf..aac65849e8 100644 --- a/src/applications/maniphest/controller/ManiphestTransactionSaveController.php +++ b/src/applications/maniphest/controller/ManiphestTransactionSaveController.php @@ -222,7 +222,7 @@ final class ManiphestTransactionSaveController extends ManiphestController { $task = $event->getValue('task'); $transactions = $event->getValue('transactions'); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setContentSourceFromRequest($request) ->setContinueOnMissingFields(true) diff --git a/src/applications/maniphest/editor/ManiphestTransactionEditor.php b/src/applications/maniphest/editor/ManiphestTransactionEditor.php index 6f69864562..16dcef309b 100644 --- a/src/applications/maniphest/editor/ManiphestTransactionEditor.php +++ b/src/applications/maniphest/editor/ManiphestTransactionEditor.php @@ -1,16 +1,252 @@ setMailReceiver($task); + public function getTransactionTypes() { + $types = parent::getTransactionTypes(); - return $handler_object; + $types[] = PhabricatorTransactions::TYPE_COMMENT; + $types[] = ManiphestTransaction::TYPE_PRIORITY; + $types[] = ManiphestTransaction::TYPE_STATUS; + $types[] = ManiphestTransaction::TYPE_TITLE; + $types[] = ManiphestTransaction::TYPE_DESCRIPTION; + $types[] = ManiphestTransaction::TYPE_OWNER; + $types[] = ManiphestTransaction::TYPE_CCS; + $types[] = ManiphestTransaction::TYPE_PROJECTS; + $types[] = ManiphestTransaction::TYPE_ATTACH; + $types[] = ManiphestTransaction::TYPE_EDGE; + $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; + $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; + + return $types; + } + + protected function getCustomTransactionOldValue( + PhabricatorLiskDAO $object, + PhabricatorApplicationTransaction $xaction) { + + switch ($xaction->getTransactionType()) { + case ManiphestTransaction::TYPE_PRIORITY: + if ($this->getIsNewObject()) { + return null; + } + return (int)$object->getPriority(); + case ManiphestTransaction::TYPE_STATUS: + if ($this->getIsNewObject()) { + return null; + } + return (int)$object->getStatus(); + case ManiphestTransaction::TYPE_TITLE: + if ($this->getIsNewObject()) { + return null; + } + return $object->getTitle(); + case ManiphestTransaction::TYPE_DESCRIPTION: + if ($this->getIsNewObject()) { + return null; + } + return $object->getDescription(); + case ManiphestTransaction::TYPE_OWNER: + return nonempty($object->getOwnerPHID(), null); + case ManiphestTransaction::TYPE_CCS: + return array_values(array_unique($object->getCCPHIDs())); + case ManiphestTransaction::TYPE_PROJECTS: + return array_values(array_unique($object->getProjectPHIDs())); + case ManiphestTransaction::TYPE_ATTACH: + return $object->getAttached(); + case ManiphestTransaction::TYPE_EDGE: + // These are pre-populated. + return $xaction->getOldValue(); + } + + } + + protected function getCustomTransactionNewValue( + PhabricatorLiskDAO $object, + PhabricatorApplicationTransaction $xaction) { + + switch ($xaction->getTransactionType()) { + case ManiphestTransaction::TYPE_PRIORITY: + case ManiphestTransaction::TYPE_STATUS: + return (int)$xaction->getNewValue(); + case ManiphestTransaction::TYPE_CCS: + case ManiphestTransaction::TYPE_PROJECTS: + return array_values(array_unique($xaction->getNewValue())); + case ManiphestTransaction::TYPE_OWNER: + return nonempty($xaction->getNewValue(), null); + case ManiphestTransaction::TYPE_TITLE: + case ManiphestTransaction::TYPE_DESCRIPTION: + case ManiphestTransaction::TYPE_ATTACH: + case ManiphestTransaction::TYPE_EDGE: + return $xaction->getNewValue(); + } + + } + + protected function transactionHasEffect( + PhabricatorLiskDAO $object, + PhabricatorApplicationTransaction $xaction) { + + $old = $xaction->getOldValue(); + $new = $xaction->getNewValue(); + + switch ($xaction->getTransactionType()) { + case ManiphestTransaction::TYPE_PROJECTS: + case ManiphestTransaction::TYPE_CCS: + sort($old); + sort($new); + return ($old !== $new); + } + + return parent::transactionHasEffect($object, $xaction); + } + + + protected function applyCustomInternalTransaction( + PhabricatorLiskDAO $object, + PhabricatorApplicationTransaction $xaction) { + + switch ($xaction->getTransactionType()) { + case ManiphestTransaction::TYPE_PRIORITY: + return $object->setPriority($xaction->getNewValue()); + case ManiphestTransaction::TYPE_STATUS: + return $object->setStatus($xaction->getNewValue()); + case ManiphestTransaction::TYPE_TITLE: + return $object->setTitle($xaction->getNewValue()); + case ManiphestTransaction::TYPE_DESCRIPTION: + return $object->setDescription($xaction->getNewValue()); + case ManiphestTransaction::TYPE_OWNER: + return $object->setOwnerPHID($xaction->getNewValue()); + case ManiphestTransaction::TYPE_CCS: + return $object->setCCPHIDs($xaction->getNewValue()); + case ManiphestTransaction::TYPE_PROJECTS: + return $object->setProjectPHIDs($xaction->getNewValue()); + case ManiphestTransaction::TYPE_ATTACH: + return $object->setAttached($xaction->getNewValue()); + case ManiphestTransaction::TYPE_EDGE: + // These are a weird, funky mess and are already being applied by the + // time we reach this. + return; + } + + } + + protected function applyCustomExternalTransaction( + PhabricatorLiskDAO $object, + PhabricatorApplicationTransaction $xaction) { + } + + protected function shouldSendMail( + PhabricatorLiskDAO $object, + array $xactions) { + return true; + } + + protected function getMailSubjectPrefix() { + return PhabricatorEnv::getEnvConfig('metamta.maniphest.subject-prefix'); + } + + protected function getMailThreadID(PhabricatorLiskDAO $object) { + return 'maniphest-task-'.$object->getPHID(); + } + + protected function getMailTo(PhabricatorLiskDAO $object) { + return array( + $object->getOwnerPHID(), + $this->requireActor()->getPHID(), + ); + } + + protected function getMailCC(PhabricatorLiskDAO $object) { + return $object->getCCPHIDs(); + } + + protected function buildReplyHandler(PhabricatorLiskDAO $object) { + return id(new ManiphestReplyHandler()) + ->setMailReceiver($object); + } + + protected function buildMailTemplate(PhabricatorLiskDAO $object) { + $id = $object->getID(); + $title = $object->getTitle(); + + return id(new PhabricatorMetaMTAMail()) + ->setSubject("T{$id}: {$title}") + ->addHeader('Thread-Topic', "T{$id}: ".$object->getOriginalTitle()); + } + + protected function buildMailBody( + PhabricatorLiskDAO $object, + array $xactions) { + + $body = parent::buildMailBody($object, $xactions); + + if ($this->getIsNewObject()) { + $body->addTextSection( + pht('TASK DESCRIPTION'), + $object->getDescription()); + } + + $body->addTextSection( + pht('TASK DETAIL'), + PhabricatorEnv::getProductionURI('/T'.$object->getID())); + + return $body; + } + + protected function supportsFeed() { + return true; + } + + protected function supportsSearch() { + return true; + } + + protected function supportsHerald() { + return true; + } + + protected function buildHeraldAdapter( + PhabricatorLiskDAO $object, + array $xactions) { + + return id(new HeraldManiphestTaskAdapter()) + ->setTask($object); + } + + protected function didApplyHeraldRules( + PhabricatorLiskDAO $object, + HeraldAdapter $adapter, + HeraldTranscript $transcript) { + + $save_again = false; + $cc_phids = $adapter->getCcPHIDs(); + if ($cc_phids) { + $existing_cc = $object->getCCPHIDs(); + $new_cc = array_unique(array_merge($cc_phids, $existing_cc)); + $object->setCCPHIDs($new_cc); + $save_again = true; + } + + $assign_phid = $adapter->getAssignPHID(); + if ($assign_phid) { + $object->setOwnerPHID($assign_phid); + $save_again = true; + } + + $project_phids = $adapter->getProjectPHIDs(); + if ($project_phids) { + $existing_projects = $object->getProjectPHIDs(); + $new_projects = array_unique( + array_merge($project_phids, $existing_projects)); + $object->setProjectPHIDs($new_projects); + $save_again = true; + } + + if ($save_again) { + $object->save(); + } } public static function getNextSubpriority($pri, $sub) { diff --git a/src/applications/maniphest/editor/ManiphestTransactionEditorPro.php b/src/applications/maniphest/editor/ManiphestTransactionEditorPro.php deleted file mode 100644 index abff759e5c..0000000000 --- a/src/applications/maniphest/editor/ManiphestTransactionEditorPro.php +++ /dev/null @@ -1,252 +0,0 @@ -getTransactionType()) { - case ManiphestTransaction::TYPE_PRIORITY: - if ($this->getIsNewObject()) { - return null; - } - return (int)$object->getPriority(); - case ManiphestTransaction::TYPE_STATUS: - if ($this->getIsNewObject()) { - return null; - } - return (int)$object->getStatus(); - case ManiphestTransaction::TYPE_TITLE: - if ($this->getIsNewObject()) { - return null; - } - return $object->getTitle(); - case ManiphestTransaction::TYPE_DESCRIPTION: - if ($this->getIsNewObject()) { - return null; - } - return $object->getDescription(); - case ManiphestTransaction::TYPE_OWNER: - return nonempty($object->getOwnerPHID(), null); - case ManiphestTransaction::TYPE_CCS: - return array_values(array_unique($object->getCCPHIDs())); - case ManiphestTransaction::TYPE_PROJECTS: - return array_values(array_unique($object->getProjectPHIDs())); - case ManiphestTransaction::TYPE_ATTACH: - return $object->getAttached(); - case ManiphestTransaction::TYPE_EDGE: - // These are pre-populated. - return $xaction->getOldValue(); - } - - } - - protected function getCustomTransactionNewValue( - PhabricatorLiskDAO $object, - PhabricatorApplicationTransaction $xaction) { - - switch ($xaction->getTransactionType()) { - case ManiphestTransaction::TYPE_PRIORITY: - case ManiphestTransaction::TYPE_STATUS: - return (int)$xaction->getNewValue(); - case ManiphestTransaction::TYPE_CCS: - case ManiphestTransaction::TYPE_PROJECTS: - return array_values(array_unique($xaction->getNewValue())); - case ManiphestTransaction::TYPE_OWNER: - return nonempty($xaction->getNewValue(), null); - case ManiphestTransaction::TYPE_TITLE: - case ManiphestTransaction::TYPE_DESCRIPTION: - case ManiphestTransaction::TYPE_ATTACH: - case ManiphestTransaction::TYPE_EDGE: - return $xaction->getNewValue(); - } - - } - - protected function transactionHasEffect( - PhabricatorLiskDAO $object, - PhabricatorApplicationTransaction $xaction) { - - $old = $xaction->getOldValue(); - $new = $xaction->getNewValue(); - - switch ($xaction->getTransactionType()) { - case ManiphestTransaction::TYPE_PROJECTS: - case ManiphestTransaction::TYPE_CCS: - sort($old); - sort($new); - return ($old !== $new); - } - - return parent::transactionHasEffect($object, $xaction); - } - - - protected function applyCustomInternalTransaction( - PhabricatorLiskDAO $object, - PhabricatorApplicationTransaction $xaction) { - - switch ($xaction->getTransactionType()) { - case ManiphestTransaction::TYPE_PRIORITY: - return $object->setPriority($xaction->getNewValue()); - case ManiphestTransaction::TYPE_STATUS: - return $object->setStatus($xaction->getNewValue()); - case ManiphestTransaction::TYPE_TITLE: - return $object->setTitle($xaction->getNewValue()); - case ManiphestTransaction::TYPE_DESCRIPTION: - return $object->setDescription($xaction->getNewValue()); - case ManiphestTransaction::TYPE_OWNER: - return $object->setOwnerPHID($xaction->getNewValue()); - case ManiphestTransaction::TYPE_CCS: - return $object->setCCPHIDs($xaction->getNewValue()); - case ManiphestTransaction::TYPE_PROJECTS: - return $object->setProjectPHIDs($xaction->getNewValue()); - case ManiphestTransaction::TYPE_ATTACH: - return $object->setAttached($xaction->getNewValue()); - case ManiphestTransaction::TYPE_EDGE: - // These are a weird, funky mess and are already being applied by the - // time we reach this. - return; - } - - } - - protected function applyCustomExternalTransaction( - PhabricatorLiskDAO $object, - PhabricatorApplicationTransaction $xaction) { - } - - protected function shouldSendMail( - PhabricatorLiskDAO $object, - array $xactions) { - return true; - } - - protected function getMailSubjectPrefix() { - return PhabricatorEnv::getEnvConfig('metamta.maniphest.subject-prefix'); - } - - protected function getMailThreadID(PhabricatorLiskDAO $object) { - return 'maniphest-task-'.$object->getPHID(); - } - - protected function getMailTo(PhabricatorLiskDAO $object) { - return array( - $object->getOwnerPHID(), - $this->requireActor()->getPHID(), - ); - } - - protected function getMailCC(PhabricatorLiskDAO $object) { - return $object->getCCPHIDs(); - } - - protected function buildReplyHandler(PhabricatorLiskDAO $object) { - return id(new ManiphestReplyHandler()) - ->setMailReceiver($object); - } - - protected function buildMailTemplate(PhabricatorLiskDAO $object) { - $id = $object->getID(); - $title = $object->getTitle(); - - return id(new PhabricatorMetaMTAMail()) - ->setSubject("T{$id}: {$title}") - ->addHeader('Thread-Topic', "T{$id}: ".$object->getOriginalTitle()); - } - - protected function buildMailBody( - PhabricatorLiskDAO $object, - array $xactions) { - - $body = parent::buildMailBody($object, $xactions); - - if ($this->getIsNewObject()) { - $body->addTextSection( - pht('TASK DESCRIPTION'), - $object->getDescription()); - } - - $body->addTextSection( - pht('TASK DETAIL'), - PhabricatorEnv::getProductionURI('/T'.$object->getID())); - - return $body; - } - - protected function supportsFeed() { - return true; - } - - protected function supportsSearch() { - return true; - } - - protected function supportsHerald() { - return true; - } - - protected function buildHeraldAdapter( - PhabricatorLiskDAO $object, - array $xactions) { - - return id(new HeraldManiphestTaskAdapter()) - ->setTask($object); - } - - protected function didApplyHeraldRules( - PhabricatorLiskDAO $object, - HeraldAdapter $adapter, - HeraldTranscript $transcript) { - - $save_again = false; - $cc_phids = $adapter->getCcPHIDs(); - if ($cc_phids) { - $existing_cc = $object->getCCPHIDs(); - $new_cc = array_unique(array_merge($cc_phids, $existing_cc)); - $object->setCCPHIDs($new_cc); - $save_again = true; - } - - $assign_phid = $adapter->getAssignPHID(); - if ($assign_phid) { - $object->setOwnerPHID($assign_phid); - $save_again = true; - } - - $project_phids = $adapter->getProjectPHIDs(); - if ($project_phids) { - $existing_projects = $object->getProjectPHIDs(); - $new_projects = array_unique( - array_merge($project_phids, $existing_projects)); - $object->setProjectPHIDs($new_projects); - $save_again = true; - } - - if ($save_again) { - $object->save(); - } - } - -} diff --git a/src/applications/maniphest/event/ManiphestEdgeEventListener.php b/src/applications/maniphest/event/ManiphestEdgeEventListener.php index be9fc0115d..89ef2599e4 100644 --- a/src/applications/maniphest/event/ManiphestEdgeEventListener.php +++ b/src/applications/maniphest/event/ManiphestEdgeEventListener.php @@ -63,7 +63,7 @@ final class ManiphestEdgeEventListener extends PhutilEventListener { array()); $new_edges = $this->loadAllEdges($event); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($event->getUser()) ->setContentSource($content_source) ->setContinueOnNoEffect(true) diff --git a/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php b/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php index 801ec899c4..be799e6cb4 100644 --- a/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php +++ b/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php @@ -42,7 +42,7 @@ final class PhabricatorManiphestTaskTestDataGenerator } // Apply Transactions - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($author) ->setContentSource($content_source) ->setContinueOnNoEffect(true) diff --git a/src/applications/maniphest/mail/ManiphestCreateMailReceiver.php b/src/applications/maniphest/mail/ManiphestCreateMailReceiver.php index 090fda420c..6fe476affb 100644 --- a/src/applications/maniphest/mail/ManiphestCreateMailReceiver.php +++ b/src/applications/maniphest/mail/ManiphestCreateMailReceiver.php @@ -63,9 +63,9 @@ final class ManiphestCreateMailReceiver extends PhabricatorMailReceiver { $task = ManiphestTask::initializeNewTask($sender); $task->setOriginalEmailSource($mail->getHeader('From')); - $editor = new ManiphestTransactionEditor(); - $editor->setActor($sender); - $handler = $editor->buildReplyHandler($task); + $handler = PhabricatorEnv::newObjectFromConfig( + 'metamta.maniphest.reply-handler'); + $handler->setMailReceiver($task); $handler->setActor($sender); $handler->setExcludeMailRecipientPHIDs( diff --git a/src/applications/maniphest/mail/ManiphestReplyHandler.php b/src/applications/maniphest/mail/ManiphestReplyHandler.php index e2db4cd91f..9f0504655b 100644 --- a/src/applications/maniphest/mail/ManiphestReplyHandler.php +++ b/src/applications/maniphest/mail/ManiphestReplyHandler.php @@ -165,7 +165,7 @@ final class ManiphestReplyHandler extends PhabricatorMailReplyHandler { $task = $event->getValue('task'); $xactions = $event->getValue('transactions'); - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setParentMessageID($mail->getMessageID()) ->setExcludeMailRecipientPHIDs($this->getExcludeMailRecipientPHIDs()) diff --git a/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php b/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php index 686b8db907..a91f9cf86e 100644 --- a/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php +++ b/src/applications/maniphest/mail/ManiphestTaskMailReceiver.php @@ -27,9 +27,9 @@ final class ManiphestTaskMailReceiver extends PhabricatorObjectMailReceiver { PhabricatorLiskDAO $object, PhabricatorUser $sender) { - $editor = new ManiphestTransactionEditor(); - $editor->setActor($sender); - $handler = $editor->buildReplyHandler($object); + $handler = PhabricatorEnv::newObjectFromConfig( + 'metamta.maniphest.reply-handler'); + $handler->setMailReceiver($object); $handler->setActor($sender); $handler->setExcludeMailRecipientPHIDs( diff --git a/src/applications/search/controller/PhabricatorSearchAttachController.php b/src/applications/search/controller/PhabricatorSearchAttachController.php index 6f4d58c81e..b0b7bae84c 100644 --- a/src/applications/search/controller/PhabricatorSearchAttachController.php +++ b/src/applications/search/controller/PhabricatorSearchAttachController.php @@ -158,7 +158,7 @@ final class PhabricatorSearchAttachController return $response; } - $editor = id(new ManiphestTransactionEditorPro()) + $editor = id(new ManiphestTransactionEditor()) ->setActor($user) ->setContentSourceFromRequest($this->getRequest()) ->setContinueOnNoEffect(true)