Differential D16483 Diff 39675 src/applications/differential/controller/DifferentialRevisionViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/controller/DifferentialRevisionViewController.php
Show First 20 Lines • Show All 286 Lines • ▼ Show 20 Lines | if ($repository) { | ||||
$changeset_view->setRepository($repository); | $changeset_view->setRepository($repository); | ||||
} | } | ||||
if (!$viewer_is_anonymous) { | if (!$viewer_is_anonymous) { | ||||
$changeset_view->setInlineCommentControllerURI( | $changeset_view->setInlineCommentControllerURI( | ||||
'/differential/comment/inline/edit/'.$revision->getID().'/'); | '/differential/comment/inline/edit/'.$revision->getID().'/'); | ||||
} | } | ||||
$broken_diffs = $this->loadHistoryDiffStatus($diffs); | |||||
$history = id(new DifferentialRevisionUpdateHistoryView()) | $history = id(new DifferentialRevisionUpdateHistoryView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setDiffs($diffs) | ->setDiffs($diffs) | ||||
->setDiffUnitStatuses($broken_diffs) | |||||
->setSelectedVersusDiffID($diff_vs) | ->setSelectedVersusDiffID($diff_vs) | ||||
->setSelectedDiffID($target->getID()) | ->setSelectedDiffID($target->getID()) | ||||
->setSelectedWhitespace($whitespace) | ->setSelectedWhitespace($whitespace) | ||||
->setCommitsForLinks($commits_for_links); | ->setCommitsForLinks($commits_for_links); | ||||
$local_table = id(new DifferentialLocalCommitsView()) | $local_table = id(new DifferentialLocalCommitsView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setLocalCommits(idx($props, 'local:commits')) | ->setLocalCommits(idx($props, 'local:commits')) | ||||
▲ Show 20 Lines • Show All 465 Lines • ▼ Show 20 Lines | private function getRevisionCommentActions(DifferentialRevision $revision) { | ||||
$actions_dict = array(); | $actions_dict = array(); | ||||
foreach ($actions as $action) { | foreach ($actions as $action) { | ||||
$actions_dict[$action] = DifferentialAction::getActionVerb($action); | $actions_dict[$action] = DifferentialAction::getActionVerb($action); | ||||
} | } | ||||
return $actions_dict; | return $actions_dict; | ||||
} | } | ||||
private function loadHistoryDiffStatus(array $diffs) { | |||||
assert_instances_of($diffs, 'DifferentialDiff'); | |||||
$diff_phids = mpull($diffs, 'getPHID'); | |||||
$bad_unit_status = array( | |||||
ArcanistUnitTestResult::RESULT_FAIL, | |||||
ArcanistUnitTestResult::RESULT_BROKEN, | |||||
); | |||||
$message = new HarbormasterBuildUnitMessage(); | |||||
$target = new HarbormasterBuildTarget(); | |||||
$build = new HarbormasterBuild(); | |||||
$buildable = new HarbormasterBuildable(); | |||||
$broken_diffs = queryfx_all( | |||||
$message->establishConnection('r'), | |||||
'SELECT distinct a.buildablePHID | |||||
FROM %T m | |||||
JOIN %T t ON m.buildTargetPHID = t.phid | |||||
JOIN %T b ON t.buildPHID = b.phid | |||||
JOIN %T a ON b.buildablePHID = a.phid | |||||
WHERE a.buildablePHID IN (%Ls) | |||||
AND m.result in (%Ls)', | |||||
$message->getTableName(), | |||||
$target->getTableName(), | |||||
$build->getTableName(), | |||||
$buildable->getTableName(), | |||||
$diff_phids, | |||||
$bad_unit_status); | |||||
$unit_status = array(); | |||||
foreach ($broken_diffs as $broken) { | |||||
$phid = $broken['buildablePHID']; | |||||
$unit_status[$phid] = DifferentialUnitStatus::UNIT_FAIL; | |||||
} | |||||
return $unit_status; | |||||
} | |||||
private function loadChangesetsAndVsMap( | private function loadChangesetsAndVsMap( | ||||
DifferentialDiff $target, | DifferentialDiff $target, | ||||
DifferentialDiff $diff_vs = null, | DifferentialDiff $diff_vs = null, | ||||
PhabricatorRepository $repository = null) { | PhabricatorRepository $repository = null) { | ||||
$load_diffs = array($target); | $load_diffs = array($target); | ||||
if ($diff_vs) { | if ($diff_vs) { | ||||
$load_diffs[] = $diff_vs; | $load_diffs[] = $diff_vs; | ||||
▲ Show 20 Lines • Show All 447 Lines • Show Last 20 Lines |