private function buildActionList(HarbormasterBuildPlan $plan) { $request = $this->getRequest(); $viewer = $request->getUser(); $id = $plan->getID(); $list = id(new PhabricatorActionListView())->setUser($viewer)->setObject($plan)->setObjectURI($this->getApplicationURI("plan/{$id}/")); $can_edit = $this->hasApplicationCapability(HarbormasterManagePlansCapability::CAPABILITY); $list->addAction(id(new PhabricatorActionView())->setName(pht('Edit Plan'))->setHref($this->getApplicationURI("plan/edit/{$id}/"))->setWorkflow(!$can_edit)->setDisabled(!$can_edit)->setIcon('fa-pencil')); if ($plan->isDisabled()) { $list->addAction(id(new PhabricatorActionView())->setName(pht('Enable Plan'))->setHref($this->getApplicationURI("plan/disable/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-check')); } else { $list->addAction(id(new PhabricatorActionView())->setName(pht('Disable Plan'))->setHref($this->getApplicationURI("plan/disable/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-ban')); } $list->addAction(id(new PhabricatorActionView())->setName(pht('Add Build Step'))->setHref($this->getApplicationURI("step/add/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-plus')); $list->addAction(id(new PhabricatorActionView())->setName(pht('Run Plan Manually'))->setHref($this->getApplicationURI("plan/run/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-play-circle')); return $list; }
private function buildActionList(HarbormasterBuildPlan $plan) { $viewer = $this->getViewer(); $id = $plan->getID(); $list = id(new PhabricatorActionListView())->setUser($viewer)->setObject($plan)->setObjectURI($this->getApplicationURI("plan/{$id}/")); $has_manage = $this->hasApplicationCapability(HarbormasterManagePlansCapability::CAPABILITY); $has_edit = PhabricatorPolicyFilter::hasCapability($viewer, $plan, PhabricatorPolicyCapability::CAN_EDIT); $can_edit = $has_manage && $has_edit; $list->addAction(id(new PhabricatorActionView())->setName(pht('Edit Plan'))->setHref($this->getApplicationURI("plan/edit/{$id}/"))->setWorkflow(!$can_edit)->setDisabled(!$can_edit)->setIcon('fa-pencil')); if ($plan->isDisabled()) { $list->addAction(id(new PhabricatorActionView())->setName(pht('Enable Plan'))->setHref($this->getApplicationURI("plan/disable/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-check')); } else { $list->addAction(id(new PhabricatorActionView())->setName(pht('Disable Plan'))->setHref($this->getApplicationURI("plan/disable/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-ban')); } $can_run = $has_manage && $plan->canRunManually(); $list->addAction(id(new PhabricatorActionView())->setName(pht('Run Plan Manually'))->setHref($this->getApplicationURI("plan/run/{$id}/"))->setWorkflow(true)->setDisabled(!$can_run)->setIcon('fa-play-circle')); return $list; }
private function buildCurtainView(HarbormasterBuildPlan $plan) { $viewer = $this->getViewer(); $id = $plan->getID(); $curtain = $this->newCurtainView($plan); $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $plan, PhabricatorPolicyCapability::CAN_EDIT); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Edit Plan'))->setHref($this->getApplicationURI("plan/edit/{$id}/"))->setWorkflow(!$can_edit)->setDisabled(!$can_edit)->setIcon('fa-pencil')); if ($plan->isDisabled()) { $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Enable Plan'))->setHref($this->getApplicationURI("plan/disable/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-check')); } else { $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Disable Plan'))->setHref($this->getApplicationURI("plan/disable/{$id}/"))->setWorkflow(true)->setDisabled(!$can_edit)->setIcon('fa-ban')); } $can_run = $can_edit && $plan->canRunManually(); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Run Plan Manually'))->setHref($this->getApplicationURI("plan/run/{$id}/"))->setWorkflow(true)->setDisabled(!$can_run)->setIcon('fa-play-circle')); $curtain->addPanel(id(new PHUICurtainPanelView())->setHeaderText(pht('Created'))->appendChild(phabricator_datetime($plan->getDateCreated(), $viewer))); return $curtain; }