Differential D15181 Diff 36650 src/applications/project/controller/PhabricatorProjectMoveController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/PhabricatorProjectMoveController.php
| Show First 20 Lines • Show All 189 Lines • ▼ Show 20 Lines | $object = id(new ManiphestTaskQuery()) | ||||
| ->needProjectPHIDs(true) | ->needProjectPHIDs(true) | ||||
| ->requireCapabilities( | ->requireCapabilities( | ||||
| array( | array( | ||||
| PhabricatorPolicyCapability::CAN_VIEW, | PhabricatorPolicyCapability::CAN_VIEW, | ||||
| PhabricatorPolicyCapability::CAN_EDIT, | PhabricatorPolicyCapability::CAN_EDIT, | ||||
| )) | )) | ||||
| ->executeOne(); | ->executeOne(); | ||||
| $except_phids = array($board_phid); | |||||
| if ($project->getHasSubprojects() || $project->getHasMilestones()) { | |||||
| $descendants = id(new PhabricatorProjectQuery()) | |||||
| ->setViewer($viewer) | |||||
| ->withAncestorProjectPHIDs($except_phids) | |||||
| ->execute(); | |||||
| foreach ($descendants as $descendant) { | |||||
| $except_phids[] = $descendant->getPHID(); | |||||
| } | |||||
| } | |||||
| $except_phids = array_fuse($except_phids); | |||||
| $handle_phids = array_fuse($object->getProjectPHIDs()); | |||||
| $handle_phids = array_diff_key($handle_phids, $except_phids); | |||||
| $project_handles = $viewer->loadHandles($handle_phids); | |||||
| $project_handles = iterator_to_array($project_handles); | |||||
| $card = id(new ProjectBoardTaskCard()) | $card = id(new ProjectBoardTaskCard()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->setTask($object) | ->setTask($object) | ||||
| ->setOwner($owner) | ->setOwner($owner) | ||||
| ->setCanEdit(true) | ->setCanEdit(true) | ||||
| ->setProject($project) | ->setProjectHandles($project_handles) | ||||
| ->getItem(); | ->getItem(); | ||||
| $card->addClass('phui-workcard'); | $card->addClass('phui-workcard'); | ||||
| return id(new AphrontAjaxResponse())->setContent( | return id(new AphrontAjaxResponse())->setContent( | ||||
| array('task' => $card)); | array('task' => $card)); | ||||
| } | } | ||||
| } | } | ||||