Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/PhabricatorProjectController.php
| Show First 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | protected function setProfilePanelEngine( | ||||
| PhabricatorProjectProfilePanelEngine $engine) { | PhabricatorProjectProfilePanelEngine $engine) { | ||||
| $this->profilePanelEngine = $engine; | $this->profilePanelEngine = $engine; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| protected function newCardResponse($board_phid, $object_phid) { | protected function newCardResponse($board_phid, $object_phid) { | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| $project = id(new PhabricatorProjectQuery()) | $request = $this->getRequest(); | ||||
| ->setViewer($viewer) | $visible_phids = $request->getStrList('visiblePHIDs'); | ||||
| ->withPHIDs(array($board_phid)) | if (!$visible_phids) { | ||||
| ->executeOne(); | $visible_phids = array(); | ||||
| if (!$project) { | |||||
| return new Aphront404Response(); | |||||
| } | |||||
| // Reload the object so it reflects edits which have been applied. | |||||
| $object = id(new ManiphestTaskQuery()) | |||||
| ->setViewer($viewer) | |||||
| ->withPHIDs(array($object_phid)) | |||||
| ->needProjectPHIDs(true) | |||||
| ->executeOne(); | |||||
| if (!$object) { | |||||
| return new Aphront404Response(); | |||||
| } | |||||
| $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(); | |||||
| } | |||||
| } | } | ||||
| $rendering_engine = id(new PhabricatorBoardRenderingEngine()) | return id(new PhabricatorBoardResponseEngine()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->setObjects(array($object)) | ->setBoardPHID($board_phid) | ||||
| ->setExcludedProjectPHIDs($except_phids); | ->setObjectPHID($object_phid) | ||||
| ->setVisiblePHIDs($visible_phids) | |||||
| $card = $rendering_engine->renderCard($object->getPHID()); | ->buildResponse(); | ||||
| $item = $card->getItem(); | |||||
| $item->addClass('phui-workcard'); | |||||
| return id(new AphrontAjaxResponse()) | |||||
| ->setContent( | |||||
| array( | |||||
| 'objectPHID' => $object->getPHID(), | |||||
| 'cardHTML' => $item, | |||||
| )); | |||||
| } | } | ||||
| } | } | ||||