Differential D11870 Diff 34163 src/applications/harbormaster/controller/HarbormasterBuildViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/controller/HarbormasterBuildViewController.php
Show All 23 Lines | public function handleRequest(AphrontRequest $request) { | ||||
$header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
->setHeader($title) | ->setHeader($title) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setPolicyObject($build); | ->setPolicyObject($build); | ||||
if ($build->isRestarting()) { | if ($build->isRestarting()) { | ||||
$header->setStatus('fa-exclamation-triangle', 'red', pht('Restarting')); | $header->setStatus('fa-exclamation-triangle', 'red', pht('Restarting')); | ||||
} else if ($build->isStopping()) { | } else if ($build->isPausing()) { | ||||
$header->setStatus('fa-exclamation-triangle', 'red', pht('Pausing')); | $header->setStatus('fa-exclamation-triangle', 'red', pht('Pausing')); | ||||
} else if ($build->isResuming()) { | } else if ($build->isResuming()) { | ||||
$header->setStatus('fa-exclamation-triangle', 'red', pht('Resuming')); | $header->setStatus('fa-exclamation-triangle', 'red', pht('Resuming')); | ||||
} else if ($build->isAborting()) { | |||||
$header->setStatus('fa-exclamation-triangle', 'red', pht('Aborting')); | |||||
} | } | ||||
$box = id(new PHUIObjectBoxView()) | $box = id(new PHUIObjectBoxView()) | ||||
->setHeader($header); | ->setHeader($header); | ||||
$actions = $this->buildActionList($build); | $actions = $this->buildActionList($build); | ||||
$this->buildPropertyLists($box, $build, $actions); | $this->buildPropertyLists($box, $build, $actions); | ||||
▲ Show 20 Lines • Show All 398 Lines • ▼ Show 20 Lines | private function buildActionList(HarbormasterBuild $build) { | ||||
$id = $build->getID(); | $id = $build->getID(); | ||||
$list = id(new PhabricatorActionListView()) | $list = id(new PhabricatorActionListView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setObject($build) | ->setObject($build) | ||||
->setObjectURI("/build/{$id}"); | ->setObjectURI("/build/{$id}"); | ||||
$can_restart = $build->canRestartBuild(); | $can_restart = $build->canRestartBuild(); | ||||
$can_stop = $build->canStopBuild(); | $can_pause = $build->canPauseBuild(); | ||||
$can_resume = $build->canResumeBuild(); | $can_resume = $build->canResumeBuild(); | ||||
$can_abort = $build->canAbortBuild(); | |||||
$list->addAction( | $list->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Restart Build')) | ->setName(pht('Restart Build')) | ||||
->setIcon('fa-repeat') | ->setIcon('fa-repeat') | ||||
->setHref($this->getApplicationURI('/build/restart/'.$id.'/')) | ->setHref($this->getApplicationURI('/build/restart/'.$id.'/')) | ||||
->setDisabled(!$can_restart) | ->setDisabled(!$can_restart) | ||||
->setWorkflow(true)); | ->setWorkflow(true)); | ||||
if ($build->canResumeBuild()) { | if ($build->canResumeBuild()) { | ||||
$list->addAction( | $list->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Resume Build')) | ->setName(pht('Resume Build')) | ||||
->setIcon('fa-play') | ->setIcon('fa-play') | ||||
->setHref($this->getApplicationURI('/build/resume/'.$id.'/')) | ->setHref($this->getApplicationURI('/build/resume/'.$id.'/')) | ||||
->setDisabled(!$can_resume) | ->setDisabled(!$can_resume) | ||||
->setWorkflow(true)); | ->setWorkflow(true)); | ||||
} else { | } else { | ||||
$list->addAction( | $list->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setName(pht('Pause Build')) | ->setName(pht('Pause Build')) | ||||
->setIcon('fa-pause') | ->setIcon('fa-pause') | ||||
->setHref($this->getApplicationURI('/build/stop/'.$id.'/')) | ->setHref($this->getApplicationURI('/build/pause/'.$id.'/')) | ||||
->setDisabled(!$can_stop) | ->setDisabled(!$can_pause) | ||||
->setWorkflow(true)); | ->setWorkflow(true)); | ||||
} | } | ||||
$list->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setName(pht('Abort Build')) | |||||
->setIcon('fa-exclamation-triangle') | |||||
->setHref($this->getApplicationURI('/build/abort/'.$id.'/')) | |||||
->setDisabled(!$can_abort) | |||||
->setWorkflow(true)); | |||||
return $list; | return $list; | ||||
} | } | ||||
private function buildPropertyLists( | private function buildPropertyLists( | ||||
PHUIObjectBoxView $box, | PHUIObjectBoxView $box, | ||||
HarbormasterBuild $build, | HarbormasterBuild $build, | ||||
PhabricatorActionListView $actions) { | PhabricatorActionListView $actions) { | ||||
$request = $this->getRequest(); | $request = $this->getRequest(); | ||||
Show All 30 Lines | $properties->addProperty( | ||||
$this->getStatus($build)); | $this->getStatus($build)); | ||||
} | } | ||||
private function getStatus(HarbormasterBuild $build) { | private function getStatus(HarbormasterBuild $build) { | ||||
$status_view = new PHUIStatusListView(); | $status_view = new PHUIStatusListView(); | ||||
$item = new PHUIStatusItemView(); | $item = new PHUIStatusItemView(); | ||||
if ($build->isStopping()) { | if ($build->isPausing()) { | ||||
$status_name = pht('Pausing'); | $status_name = pht('Pausing'); | ||||
$icon = PHUIStatusItemView::ICON_RIGHT; | $icon = PHUIStatusItemView::ICON_RIGHT; | ||||
$color = 'dark'; | $color = 'dark'; | ||||
} else { | } else { | ||||
$status = $build->getBuildStatus(); | $status = $build->getBuildStatus(); | ||||
$status_name = | $status_name = | ||||
HarbormasterBuild::getBuildStatusName($status); | HarbormasterBuild::getBuildStatusName($status); | ||||
$icon = HarbormasterBuild::getBuildStatusIcon($status); | $icon = HarbormasterBuild::getBuildStatusIcon($status); | ||||
▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines |