Differential D11870 Diff 34163 src/applications/harbormaster/controller/HarbormasterBuildableViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/controller/HarbormasterBuildableViewController.php
Show First 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | private function buildActionList(HarbormasterBuildable $buildable) { | ||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | $viewer, | ||||
$buildable, | $buildable, | ||||
PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
$can_restart = false; | $can_restart = false; | ||||
$can_resume = false; | $can_resume = false; | ||||
$can_stop = false; | $can_pause = false; | ||||
$can_abort = false; | |||||
foreach ($buildable->getBuilds() as $build) { | foreach ($buildable->getBuilds() as $build) { | ||||
if ($build->canRestartBuild()) { | if ($build->canRestartBuild()) { | ||||
$can_restart = true; | $can_restart = true; | ||||
} | } | ||||
if ($build->canResumeBuild()) { | if ($build->canResumeBuild()) { | ||||
$can_resume = true; | $can_resume = true; | ||||
} | } | ||||
if ($build->canStopBuild()) { | if ($build->canPauseBuild()) { | ||||
$can_stop = true; | $can_pause = true; | ||||
} | |||||
if ($build->canAbortBuild()) { | |||||
$can_abort = true; | |||||
} | } | ||||
} | } | ||||
$restart_uri = "buildable/{$id}/restart/"; | $restart_uri = "buildable/{$id}/restart/"; | ||||
$stop_uri = "buildable/{$id}/stop/"; | $pause_uri = "buildable/{$id}/pause/"; | ||||
$resume_uri = "buildable/{$id}/resume/"; | $resume_uri = "buildable/{$id}/resume/"; | ||||
$abort_uri = "buildable/{$id}/abort/"; | |||||
$list->addAction( | $list->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setIcon('fa-repeat') | ->setIcon('fa-repeat') | ||||
->setName(pht('Restart All Builds')) | ->setName(pht('Restart All Builds')) | ||||
->setHref($this->getApplicationURI($restart_uri)) | ->setHref($this->getApplicationURI($restart_uri)) | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(!$can_restart || !$can_edit)); | ->setDisabled(!$can_restart || !$can_edit)); | ||||
$list->addAction( | $list->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setIcon('fa-pause') | ->setIcon('fa-pause') | ||||
->setName(pht('Pause All Builds')) | ->setName(pht('Pause All Builds')) | ||||
->setHref($this->getApplicationURI($stop_uri)) | ->setHref($this->getApplicationURI($pause_uri)) | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(!$can_stop || !$can_edit)); | ->setDisabled(!$can_pause || !$can_edit)); | ||||
$list->addAction( | $list->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setIcon('fa-play') | ->setIcon('fa-play') | ||||
->setName(pht('Resume All Builds')) | ->setName(pht('Resume All Builds')) | ||||
->setHref($this->getApplicationURI($resume_uri)) | ->setHref($this->getApplicationURI($resume_uri)) | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(!$can_resume || !$can_edit)); | ->setDisabled(!$can_resume || !$can_edit)); | ||||
$list->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setIcon('fa-exclamation-triangle') | |||||
->setName(pht('Abort All Builds')) | |||||
->setHref($this->getApplicationURI($abort_uri)) | |||||
->setWorkflow(true) | |||||
->setDisabled(!$can_abort || !$can_edit)); | |||||
return $list; | return $list; | ||||
} | } | ||||
private function buildPropertyLists( | private function buildPropertyLists( | ||||
PHUIObjectBoxView $box, | PHUIObjectBoxView $box, | ||||
HarbormasterBuildable $buildable, | HarbormasterBuildable $buildable, | ||||
PhabricatorActionListView $actions) { | PhabricatorActionListView $actions) { | ||||
$request = $this->getRequest(); | $request = $this->getRequest(); | ||||
Show All 39 Lines | foreach ($buildable->getBuilds() as $build) { | ||||
$item->setStatusIcon( | $item->setStatusIcon( | ||||
'fa-dot-circle-o '.HarbormasterBuild::getBuildStatusColor($status), | 'fa-dot-circle-o '.HarbormasterBuild::getBuildStatusColor($status), | ||||
HarbormasterBuild::getBuildStatusName($status)); | HarbormasterBuild::getBuildStatusName($status)); | ||||
$item->addAttribute(HarbormasterBuild::getBuildStatusName($status)); | $item->addAttribute(HarbormasterBuild::getBuildStatusName($status)); | ||||
if ($build->isRestarting()) { | if ($build->isRestarting()) { | ||||
$item->addIcon('fa-repeat', pht('Restarting')); | $item->addIcon('fa-repeat', pht('Restarting')); | ||||
} else if ($build->isStopping()) { | } else if ($build->isPausing()) { | ||||
$item->addIcon('fa-pause', pht('Pausing')); | $item->addIcon('fa-pause', pht('Pausing')); | ||||
} else if ($build->isResuming()) { | } else if ($build->isResuming()) { | ||||
$item->addIcon('fa-play', pht('Resuming')); | $item->addIcon('fa-play', pht('Resuming')); | ||||
} | } | ||||
$build_id = $build->getID(); | $build_id = $build->getID(); | ||||
$restart_uri = "build/restart/{$build_id}/buildable/"; | $restart_uri = "build/restart/{$build_id}/buildable/"; | ||||
$resume_uri = "build/resume/{$build_id}/buildable/"; | $resume_uri = "build/resume/{$build_id}/buildable/"; | ||||
$stop_uri = "build/stop/{$build_id}/buildable/"; | $pause_uri = "build/pause/{$build_id}/buildable/"; | ||||
$abort_uri = "build/abort/{$build_id}/buildable/"; | |||||
$item->addAction( | $item->addAction( | ||||
id(new PHUIListItemView()) | id(new PHUIListItemView()) | ||||
->setIcon('fa-repeat') | ->setIcon('fa-repeat') | ||||
->setName(pht('Restart')) | ->setName(pht('Restart')) | ||||
->setHref($this->getApplicationURI($restart_uri)) | ->setHref($this->getApplicationURI($restart_uri)) | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(!$build->canRestartBuild())); | ->setDisabled(!$build->canRestartBuild())); | ||||
if ($build->canResumeBuild()) { | if ($build->canResumeBuild()) { | ||||
$item->addAction( | $item->addAction( | ||||
id(new PHUIListItemView()) | id(new PHUIListItemView()) | ||||
->setIcon('fa-play') | ->setIcon('fa-play') | ||||
->setName(pht('Resume')) | ->setName(pht('Resume')) | ||||
->setHref($this->getApplicationURI($resume_uri)) | ->setHref($this->getApplicationURI($resume_uri)) | ||||
->setWorkflow(true)); | ->setWorkflow(true)); | ||||
} else { | } else { | ||||
$item->addAction( | $item->addAction( | ||||
id(new PHUIListItemView()) | id(new PHUIListItemView()) | ||||
->setIcon('fa-pause') | ->setIcon('fa-pause') | ||||
->setName(pht('Pause')) | ->setName(pht('Pause')) | ||||
->setHref($this->getApplicationURI($stop_uri)) | ->setHref($this->getApplicationURI($pause_uri)) | ||||
->setWorkflow(true) | ->setWorkflow(true) | ||||
->setDisabled(!$build->canStopBuild())); | ->setDisabled(!$build->canPauseBuild())); | ||||
} | } | ||||
$targets = $build->getBuildTargets(); | $targets = $build->getBuildTargets(); | ||||
if ($targets) { | if ($targets) { | ||||
$target_list = id(new PHUIStatusListView()); | $target_list = id(new PHUIStatusListView()); | ||||
foreach ($targets as $target) { | foreach ($targets as $target) { | ||||
$status = $target->getTargetStatus(); | $status = $target->getTargetStatus(); | ||||
▲ Show 20 Lines • Show All 114 Lines • Show Last 20 Lines |