Differential D21691 Diff 51704 src/applications/harbormaster/controller/HarbormasterBuildViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/controller/HarbormasterBuildViewController.php
Show First 20 Lines • Show All 527 Lines • ▼ Show 20 Lines | final class HarbormasterBuildViewController | ||||
} | } | ||||
private function buildCurtainView(HarbormasterBuild $build) { | private function buildCurtainView(HarbormasterBuild $build) { | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$id = $build->getID(); | $id = $build->getID(); | ||||
$curtain = $this->newCurtainView($build); | $curtain = $this->newCurtainView($build); | ||||
$can_restart = | $messages = array( | ||||
$build->canRestartBuild() && | new HarbormasterBuildMessageRestartTransaction(), | ||||
$build->canIssueCommand( | new HarbormasterBuildMessagePauseTransaction(), | ||||
$viewer, | new HarbormasterBuildMessageResumeTransaction(), | ||||
HarbormasterBuildCommand::COMMAND_RESTART); | new HarbormasterBuildMessageAbortTransaction(), | ||||
); | |||||
$can_pause = | |||||
$build->canPauseBuild() && | foreach ($messages as $message) { | ||||
$build->canIssueCommand( | $can_send = $message->canSendMessage($viewer, $build); | ||||
$viewer, | |||||
HarbormasterBuildCommand::COMMAND_PAUSE); | $message_uri = urisprintf( | ||||
'/build/%s/%d/', | |||||
$can_resume = | $message->getHarbormasterBuildMessageType(), | ||||
$build->canResumeBuild() && | $id); | ||||
$build->canIssueCommand( | $message_uri = $this->getApplicationURI($message_uri); | ||||
$viewer, | |||||
HarbormasterBuildCommand::COMMAND_RESUME); | $action = id(new PhabricatorActionView()) | ||||
->setName($message->getHarbormasterBuildMessageName()) | |||||
$can_abort = | ->setIcon($message->getIcon()) | ||||
$build->canAbortBuild() && | ->setHref($message_uri) | ||||
$build->canIssueCommand( | ->setDisabled(!$can_send) | ||||
$viewer, | ->setWorkflow(true); | ||||
HarbormasterBuildCommand::COMMAND_ABORT); | |||||
$curtain->addAction($action); | |||||
$curtain->addAction( | } | ||||
id(new PhabricatorActionView()) | |||||
->setName(pht('Restart Build')) | |||||
->setIcon('fa-repeat') | |||||
->setHref($this->getApplicationURI('/build/restart/'.$id.'/')) | |||||
->setDisabled(!$can_restart) | |||||
->setWorkflow(true)); | |||||
if ($build->canResumeBuild()) { | |||||
$curtain->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setName(pht('Resume Build')) | |||||
->setIcon('fa-play') | |||||
->setHref($this->getApplicationURI('/build/resume/'.$id.'/')) | |||||
->setDisabled(!$can_resume) | |||||
->setWorkflow(true)); | |||||
} else { | |||||
$curtain->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setName(pht('Pause Build')) | |||||
->setIcon('fa-pause') | |||||
->setHref($this->getApplicationURI('/build/pause/'.$id.'/')) | |||||
->setDisabled(!$can_pause) | |||||
->setWorkflow(true)); | |||||
} | |||||
$curtain->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setName(pht('Abort Build')) | |||||
->setIcon('fa-exclamation-triangle') | |||||
->setHref($this->getApplicationURI('/build/abort/'.$id.'/')) | |||||
->setDisabled(!$can_abort) | |||||
->setWorkflow(true)); | |||||
return $curtain; | return $curtain; | ||||
} | } | ||||
private function buildPropertyList(HarbormasterBuild $build) { | private function buildPropertyList(HarbormasterBuild $build) { | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$properties = id(new PHUIPropertyListView()) | $properties = id(new PHUIPropertyListView()) | ||||
▲ Show 20 Lines • Show All 143 Lines • Show Last 20 Lines |