Path: blob/master/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
12256 views
<?php12final class ManiphestTaskMergeInRelationship3extends ManiphestTaskRelationship {45const RELATIONSHIPKEY = 'task.merge-in';67public function getEdgeConstant() {8return ManiphestTaskHasDuplicateTaskEdgeType::EDGECONST;9}1011protected function getActionName() {12return pht('Merge Duplicates In');13}1415protected function getActionIcon() {16return 'fa-compress';17}1819public function canRelateObjects($src, $dst) {20return ($dst instanceof ManiphestTask);21}2223public function shouldAppearInActionMenu() {24return false;25}2627public function getDialogTitleText() {28return pht('Merge Duplicates Into This Task');29}3031public function getDialogHeaderText() {32return pht('Tasks to Close and Merge');33}3435public function getDialogButtonText() {36return pht('Close and Merge Selected Tasks');37}3839protected function newRelationshipSource() {40return id(new ManiphestTaskRelationshipSource())41->setSelectedFilter('open');42}4344public function getRequiredRelationshipCapabilities() {45return array(46PhabricatorPolicyCapability::CAN_VIEW,47PhabricatorPolicyCapability::CAN_EDIT,48);49}5051public function canUndoRelationship() {52return false;53}5455public function willUpdateRelationships($object, array $add, array $rem) {56return $this->newMergeFromTransactions($add);57}5859public function didUpdateRelationships($object, array $add, array $rem) {60$viewer = $this->getViewer();61$content_source = $this->getContentSource();6263foreach ($add as $task) {64$xactions = $this->newMergeIntoTransactions($object);6566$task->getApplicationTransactionEditor()67->setActor($viewer)68->setContentSource($content_source)69->setContinueOnMissingFields(true)70->setContinueOnNoEffect(true)71->applyTransactions($task, $xactions);72}73}7475}767778