private function buildCurtain(PhabricatorCalendarExport $export) { $viewer = $this->getRequest()->getUser(); $id = $export->getID(); $curtain = $this->newCurtainView($export); $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $export, PhabricatorPolicyCapability::CAN_EDIT); $ics_uri = $export->getICSURI(); $edit_uri = "export/edit/{$id}/"; $edit_uri = $this->getApplicationURI($edit_uri); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Edit Export'))->setIcon('fa-pencil')->setDisabled(!$can_edit)->setWorkflow(!$can_edit)->setHref($edit_uri)); $curtain->addAction(id(new PhabricatorActionView())->setName(pht('Export as .ics'))->setIcon('fa-download')->setHref($ics_uri)); $disable_uri = "export/disable/{$id}/"; $disable_uri = $this->getApplicationURI($disable_uri); if ($export->getIsDisabled()) { $disable_name = pht('Enable Export'); $disable_icon = 'fa-check'; } else { $disable_name = pht('Disable Export'); $disable_icon = 'fa-ban'; } $curtain->addAction(id(new PhabricatorActionView())->setName($disable_name)->setIcon($disable_icon)->setDisabled(!$can_edit)->setWorkflow(true)->setHref($disable_uri)); return $curtain; }