Differential D20259 Diff 48367 src/applications/harbormaster/controller/HarbormasterPlanViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/controller/HarbormasterPlanViewController.php
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | public function handleRequest(AphrontRequest $request) { | ||||
if ($error) { | if ($error) { | ||||
$error = id(new PHUIInfoView()) | $error = id(new PHUIInfoView()) | ||||
->setSeverity(PHUIInfoView::SEVERITY_WARNING) | ->setSeverity(PHUIInfoView::SEVERITY_WARNING) | ||||
->appendChild($error); | ->appendChild($error); | ||||
} | } | ||||
$builds_view = $this->newBuildsView($plan); | $builds_view = $this->newBuildsView($plan); | ||||
$options_view = $this->newOptionsView($plan); | $options_view = $this->newOptionsView($plan); | ||||
$rules_view = $this->newRulesView($plan); | |||||
$timeline = $this->buildTransactionTimeline( | $timeline = $this->buildTransactionTimeline( | ||||
$plan, | $plan, | ||||
new HarbormasterBuildPlanTransactionQuery()); | new HarbormasterBuildPlanTransactionQuery()); | ||||
$timeline->setShouldTerminate(true); | $timeline->setShouldTerminate(true); | ||||
$view = id(new PHUITwoColumnView()) | $view = id(new PHUITwoColumnView()) | ||||
->setHeader($header) | ->setHeader($header) | ||||
->setCurtain($curtain) | ->setCurtain($curtain) | ||||
->setMainColumn( | ->setMainColumn( | ||||
array( | array( | ||||
$error, | $error, | ||||
$step_list, | $step_list, | ||||
$options_view, | $options_view, | ||||
$rules_view, | |||||
$builds_view, | $builds_view, | ||||
$timeline, | $timeline, | ||||
)); | )); | ||||
return $this->newPage() | return $this->newPage() | ||||
->setTitle($title) | ->setTitle($title) | ||||
->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
->setPageObjectPHIDs(array($plan->getPHID())) | ->setPageObjectPHIDs(array($plan->getPHID())) | ||||
▲ Show 20 Lines • Show All 394 Lines • ▼ Show 20 Lines | $header = id(new PHUIHeaderView()) | ||||
->addActionLink($more_link); | ->addActionLink($more_link); | ||||
return id(new PHUIObjectBoxView()) | return id(new PHUIObjectBoxView()) | ||||
->setHeader($header) | ->setHeader($header) | ||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
->appendChild($list); | ->appendChild($list); | ||||
} | } | ||||
private function newRulesView(HarbormasterBuildPlan $plan) { | |||||
$viewer = $this->getViewer(); | |||||
$rules = id(new HeraldRuleQuery()) | |||||
->setViewer($viewer) | |||||
->withDisabled(false) | |||||
->withAffectedObjectPHIDs(array($plan->getPHID())) | |||||
->needValidateAuthors(true) | |||||
->execute(); | |||||
$list = id(new HeraldRuleListView()) | |||||
->setViewer($viewer) | |||||
->setRules($rules) | |||||
->newObjectList(); | |||||
$list->setNoDataString(pht('No active Herald rules trigger this build.')); | |||||
$more_href = new PhutilURI( | |||||
'/herald/', | |||||
array('affectedPHID' => $plan->getPHID())); | |||||
$more_link = id(new PHUIButtonView()) | |||||
->setTag('a') | |||||
->setIcon('fa-list-ul') | |||||
->setText(pht('View All Rules')) | |||||
->setHref($more_href); | |||||
$header = id(new PHUIHeaderView()) | |||||
->setHeader(pht('Run By Herald Rules')) | |||||
->addActionLink($more_link); | |||||
return id(new PHUIObjectBoxView()) | |||||
->setHeader($header) | |||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | |||||
->appendChild($list); | |||||
} | |||||
private function newOptionsView(HarbormasterBuildPlan $plan) { | private function newOptionsView(HarbormasterBuildPlan $plan) { | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | $viewer, | ||||
$plan, | $plan, | ||||
PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
▲ Show 20 Lines • Show All 64 Lines • Show Last 20 Lines |