public function processRequest() { $request = $this->getDiffusionRequest(); $branch_query = DiffusionContainsQuery::newFromDiffusionRequest($request); $branches = $branch_query->loadContainingBranches(); $branch_links = array(); foreach ($branches as $branch => $commit) { $branch_links[] = phutil_render_tag('a', array('href' => $request->generateURI(array('action' => 'browse', 'branch' => $branch))), phutil_escape_html($branch)); } return id(new AphrontAjaxResponse())->setContent($branch_links ? implode(', ', $branch_links) : 'None'); }
private function getCommitProperties(PhabricatorRepositoryCommit $commit, PhabricatorRepositoryCommitData $data, array $parents) { assert_instances_of($parents, 'PhabricatorRepositoryCommit'); $user = $this->getRequest()->getUser(); $task_phids = PhabricatorEdgeQuery::loadDestinationPHIDs($commit->getPHID(), PhabricatorEdgeConfig::TYPE_COMMIT_HAS_TASK); $phids = $task_phids; if ($data->getCommitDetail('authorPHID')) { $phids[] = $data->getCommitDetail('authorPHID'); } if ($data->getCommitDetail('reviewerPHID')) { $phids[] = $data->getCommitDetail('reviewerPHID'); } if ($data->getCommitDetail('differential.revisionPHID')) { $phids[] = $data->getCommitDetail('differential.revisionPHID'); } if ($parents) { foreach ($parents as $parent) { $phids[] = $parent->getPHID(); } } $handles = array(); if ($phids) { $handles = id(new PhabricatorObjectHandleData($phids))->loadHandles(); } $props = array(); if ($commit->getAuditStatus()) { $status = PhabricatorAuditCommitStatusConstants::getStatusName($commit->getAuditStatus()); $props['Status'] = phutil_render_tag('strong', array(), phutil_escape_html($status)); } $props['Committed'] = phabricator_datetime($commit->getEpoch(), $user); $author_phid = $data->getCommitDetail('authorPHID'); if ($data->getCommitDetail('authorPHID')) { $props['Author'] = $handles[$author_phid]->renderLink(); } else { $props['Author'] = phutil_escape_html($data->getAuthorName()); } $reviewer_phid = $data->getCommitDetail('reviewerPHID'); $reviewer_name = $data->getCommitDetail('reviewerName'); if ($reviewer_phid) { $props['Reviewer'] = $handles[$reviewer_phid]->renderLink(); } else { if ($reviewer_name) { $props['Reviewer'] = phutil_escape_html($reviewer_name); } } $revision_phid = $data->getCommitDetail('differential.revisionPHID'); if ($revision_phid) { $props['Differential Revision'] = $handles[$revision_phid]->renderLink(); } if ($parents) { $parent_links = array(); foreach ($parents as $parent) { $parent_links[] = $handles[$parent->getPHID()]->renderLink(); } $props['Parents'] = implode(' · ', $parent_links); } $request = $this->getDiffusionRequest(); $contains = DiffusionContainsQuery::newFromDiffusionRequest($request); $branches = $contains->loadContainingBranches(); if ($branches) { // TODO: Separate these into 'tracked' and other; link tracked branches. $branches = implode(', ', array_keys($branches)); $branches = phutil_escape_html($branches); $props['Branches'] = $branches; } if ($task_phids) { $task_list = array(); foreach ($task_phids as $phid) { $task_list[] = $handles[$phid]->renderLink(); } $task_list = implode('<br />', $task_list); $props['Tasks'] = $task_list; } return $props; }
private function buildBranches(DiffusionRequest $request) { $branch_query = DiffusionContainsQuery::newFromDiffusionRequest($request); $branches = $branch_query->loadContainingBranches(); if (!$branches) { return null; } $branch_links = array(); foreach ($branches as $branch => $commit) { $branch_links[] = phutil_render_tag('a', array('href' => $request->generateURI(array('action' => 'browse', 'branch' => $branch))), phutil_escape_html($branch)); } $branch_links = implode(', ', $branch_links); return $branch_links; }