Path: blob/master/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
12256 views
<?php12final class ManiphestTaskCloseAsDuplicateRelationship3extends ManiphestTaskRelationship {45const RELATIONSHIPKEY = 'task.close-as-duplicate';67public function getEdgeConstant() {8return ManiphestTaskIsDuplicateOfTaskEdgeType::EDGECONST;9}1011protected function getActionName() {12return pht('Close As Duplicate');13}1415protected function getActionIcon() {16return 'fa-times';17}1819public function canRelateObjects($src, $dst) {20return ($dst instanceof ManiphestTask);21}2223public function shouldAppearInActionMenu() {24return false;25}2627public function getDialogTitleText() {28return pht('Close As Duplicate');29}3031public function getDialogHeaderText() {32return pht('Close This Task As a Duplicate Of');33}3435public function getDialogButtonText() {36return pht('Merge Into Selected Task');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 getMaximumSelectionSize() {56return 1;57}5859public function willUpdateRelationships($object, array $add, array $rem) {60$task = head($add);61return $this->newMergeIntoTransactions($task);62}6364public function didUpdateRelationships($object, array $add, array $rem) {65$viewer = $this->getViewer();66$content_source = $this->getContentSource();6768$task = head($add);69$xactions = $this->newMergeFromTransactions(array($object));7071$task->getApplicationTransactionEditor()72->setActor($viewer)73->setContentSource($content_source)74->setContinueOnMissingFields(true)75->setContinueOnNoEffect(true)76->applyTransactions($task, $xactions);77}7879}808182